ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccMPlaneDlg.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 // Qt
11 #include <qcheckbox.h>
12 #include <qradiobutton.h>
13 #include <qtablewidget.h>
14 
15 // CC
16 #include <ecvOverlayDialog.h>
17 
18 // Local
19 #include <ui_mplaneDlg.h>
20 
21 // REMOVE!!!
22 #include "ecvMainAppInterface.h"
23 // class encapsulating the map-mode overlay dialog
24 class ccMPlaneDlg : public ccOverlayDialog, public Ui::MPlaneDialog {
25  Q_OBJECT
26 
27 public:
29  explicit ccMPlaneDlg(QWidget *parent = 0);
30 
31  // Point Fitting
33  void addFittingPoint(int rowIndex, const CCVector3 &point);
34  void selectFittingPoint(unsigned int rowIndex);
35  void clearFittingPoints();
36 
37  // Distance Measurement
38  void addMeasurementPoint(const QString &name, float distance);
39  void renameMeasurement(const QString &name, unsigned int rowIndex);
40  void enableMeasurementTab(bool enable);
42  bool isSignedMeasurement() const;
43  bool isNormalVectorChecked() const;
44 
45 private:
46  void createPlaneFittingTab();
47  void createMeasurementTab();
48  int getFittingPointContentWidth() const;
49  int getFittingPointTableWidth() const;
50  QPushButton *createDeleteButton();
51 
52 protected slots:
53  void onMeasurementPointNameChanged(QTableWidgetItem *item);
54  void onCloseButtonPressed();
55  void onTabChanged(int tab);
56  void onRadioButtonClicked();
57  void onDeleteButtonClicked();
58  void onShowNormalCheckBox(bool checked);
59  void onSaveButtonClicked();
60 
61 signals:
62  void signalMeasureNameChanged(QTableWidgetItem *item);
64  void signalFittingPointClicked(int index);
65  void signalTabChanged(int tab);
67  void signalFittingPointDelete(int index);
68  void signalShowNormalCheckBoxClicked(bool checked);
70 
71 private:
72  QTabWidget *m_tabWidget = nullptr;
73 
74  // Point Selection Tab
75  QWidget *m_tabPlaneFitting = nullptr;
76  QTableWidget *m_pointTableWidget = nullptr;
77  unsigned int m_pointTableMinWidth = 0;
78  unsigned int m_pointTableMinHeight = 0;
79 
80  // Measurement Tab
81  QWidget *m_tabMeasurement = nullptr;
82  QTableWidget *m_measurementTableWidget = nullptr;
83  QRadioButton *m_radioButtonSignedMeasurement = nullptr;
84  QRadioButton *m_radioButtonUnsignedMeasurement = nullptr;
85  QCheckBox *m_checkBoxShowNormal = nullptr;
86 };
std::string name
#define slots
#define signals
void onMeasurementPointNameChanged(QTableWidgetItem *item)
void onTabChanged(int tab)
void signalShowNormalCheckBoxClicked(bool checked)
void onRadioButtonClicked()
void onDeleteButtonClicked()
void enableMeasurementTab(bool enable)
void onSaveButtonClicked()
void signalMeasureNameChanged(QTableWidgetItem *item)
ccMPlaneDlg(QWidget *parent=0)
Default constructor.
Definition: ccMPlaneDlg.cpp:19
void selectFittingPoint(unsigned int rowIndex)
void addFittingPoint(int rowIndex, const CCVector3 &point)
void initializeFittingPointTable()
void renameMeasurement(const QString &name, unsigned int rowIndex)
void onCloseButtonPressed()
void onShowNormalCheckBox(bool checked)
void signalFittingPointDelete(int index)
void clearFittingPoints()
bool isSignedMeasurement() const
void signalTabChanged(int tab)
void addMeasurementPoint(const QString &name, float distance)
bool isNormalVectorChecked() const
void signalSaveButtonClicked()
void clearMeasurementPoints()
void signalFittingPointClicked(int index)
void signalCloseButtonPressed()
void signalMeasurementModeChanged()
Generic overlay dialog interface.
Definition: lsd.c:149