ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
ccMPlaneDlgController.h
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - CloudViewer: www.cloudViewer.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.cloudViewer.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#pragma once
9
10
// Std
11
#include <memory>
12
13
// Qt
14
#include <QtGui>
15
16
// CC
17
#include <
ecvPickingListener.h
>
18
19
#include "
ecvMainAppInterface.h
"
20
21
// Local dependencies
22
#include "
ccMPlaneDlg.h
"
23
#include "
ccMeasurementDevice.h
"
24
#include "
ccMeasurementRecorder.h
"
25
26
class
ccMPlaneDlgController
:
public
QObject,
public
ccPickingListener
{
27
Q_OBJECT
28
29
public
:
30
explicit
ccMPlaneDlgController
(
ecvMainAppInterface
*app);
31
void
openDialog
(
ccPointCloud
*selectedCloud);
32
33
protected
slots
:
34
void
onCloseButtonPressed
();
35
void
onNewTab
(
int
tabIndex);
36
void
onMeasureNameChanged
(QTableWidgetItem *);
37
void
onMeasurementModeChanged
();
38
void
onFittingPointDelete
(
int
index);
39
void
onNormalCheckBoxClicked
(
bool
checked);
40
void
onSaveButtonClicked
();
41
virtual
void
onItemPicked
(
const
ccPickingListener::PickedItem
&pi)
override
;
42
43
private
:
44
void
loadDataFromSelectedCloud();
45
void
registerDialog();
46
void
startPicking();
47
void
stopPicking();
48
void
pickFittingPoint(
const
ccPickingListener::PickedItem
&item);
49
void
pickMeasurementPoint(
const
ccPickingListener::PickedItem
&item);
50
void
updatePlane();
51
void
updateScalarfield();
52
void
updateMeasurements();
53
void
updateFittingPoints();
54
void
updatAllMeasurementEntities();
55
56
private
:
57
ecvMainAppInterface
*m_app;
58
ccMPlaneDlg
*m_dialog;
59
std::unique_ptr<ccMeasurementRecorder> m_data;
60
std::unique_ptr<ccMeasurementDevice> m_device;
61
ccPointCloud
*m_selectedCloud =
nullptr
;
62
63
enum
CC_Mode { CC_POINT_SELECTION, CC_MEASUREMENT };
64
CC_Mode m_mode = CC_POINT_SELECTION;
65
66
bool
m_signedMeasurement =
false
;
67
bool
m_showNormal =
false
;
68
};
slots
#define slots
Definition:
PythonPlugin.cpp:25
ccMPlaneDlg.h
ccMeasurementDevice.h
ccMeasurementRecorder.h
ccMPlaneDlgController
Definition:
ccMPlaneDlgController.h:26
ccMPlaneDlgController::onMeasureNameChanged
void onMeasureNameChanged(QTableWidgetItem *)
Definition:
ccMPlaneDlgController.cpp:72
ccMPlaneDlgController::onSaveButtonClicked
void onSaveButtonClicked()
Definition:
ccMPlaneDlgController.cpp:113
ccMPlaneDlgController::onItemPicked
virtual void onItemPicked(const ccPickingListener::PickedItem &pi) override
Definition:
ccMPlaneDlgController.cpp:131
ccMPlaneDlgController::ccMPlaneDlgController
ccMPlaneDlgController(ecvMainAppInterface *app)
Definition:
ccMPlaneDlgController.cpp:20
ccMPlaneDlgController::onCloseButtonPressed
void onCloseButtonPressed()
Definition:
ccMPlaneDlgController.cpp:52
ccMPlaneDlgController::onFittingPointDelete
void onFittingPointDelete(int index)
Definition:
ccMPlaneDlgController.cpp:90
ccMPlaneDlgController::onNormalCheckBoxClicked
void onNormalCheckBoxClicked(bool checked)
Definition:
ccMPlaneDlgController.cpp:102
ccMPlaneDlgController::onMeasurementModeChanged
void onMeasurementModeChanged()
Definition:
ccMPlaneDlgController.cpp:84
ccMPlaneDlgController::onNewTab
void onNewTab(int tabIndex)
Definition:
ccMPlaneDlgController.cpp:67
ccMPlaneDlgController::openDialog
void openDialog(ccPointCloud *selectedCloud)
Definition:
ccMPlaneDlgController.cpp:42
ccMPlaneDlg
Definition:
ccMPlaneDlg.h:24
ccPickingListener
Point/triangle picking listener interface.
Definition:
ecvPickingListener.h:21
ccPointCloud
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Definition:
ecvPointCloud.h:147
ecvMainAppInterface
Main application interface (for plugins)
Definition:
ecvMainAppInterface.h:24
ecvMainAppInterface.h
ecvPickingListener.h
ccPickingListener::PickedItem
Picked item.
Definition:
ecvPickingListener.h:26
plugins
core
Standard
qMPlane
src
ccMPlaneDlgController.h
Generated on Wed Jan 28 2026 09:01:07 for ACloudViewer by
1.9.1