ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccMeasurementRecorder.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 // CC
11 #include "ecv2DLabel.h"
12 #include "ecvHObject.h"
13 #include "ecvMainAppInterface.h"
14 #include "ecvPickingListener.h"
15 #include "ecvPlane.h"
16 #include "ecvPointCloud.h"
17 
18 // Local dependencies
19 #include "ccMPlanePoint.h"
20 
22 public:
24  : m_rootCloud(rootCloud), m_app(app) {}
25 
27 
29  void deleteFittingPoint(unsigned int index);
30  void renameFittingPoint(const QString &newName,
31  unsigned int fittingPointIndex);
32  const std::vector<ccMPlanePoint> &getFittingPoints() const;
33  unsigned int getActualFittingPointIndex() const;
34  unsigned int getFittingPointAmount() const;
35 
37  float distance);
38  const std::vector<ccMPlanePoint> &getMeasurementPoints() const;
39  bool renameMeasurement(const QString &newName,
40  unsigned int measurementIndex);
41  void updateMeasurement(float distance, unsigned int measurementIndex);
42 
43  ccPlane *getPlane() const;
44  void setPlane(const ccPlane *plane);
45  void deletePlane();
46 
47 private:
48  ecvMainAppInterface *m_app = nullptr;
49  ccPointCloud *m_rootCloud = nullptr;
50  ccPlane *m_plane = nullptr;
51 
52  ccHObject *m_rootFolder = nullptr;
53  ccHObject *m_fittingPointFolder = nullptr;
54  ccHObject *m_measurementFolder = nullptr;
55 
56  std::vector<ccMPlanePoint> m_fittingPoints;
57  std::vector<ccMPlanePoint> m_measurementPoints;
58 
59 private:
60  void loadFolders();
61  void loadFittingPoints();
62  void loadMeasurementPoints();
63  void loadAndDeleteFittingPlane();
64 };
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
unsigned int getActualFittingPointIndex() const
const std::vector< ccMPlanePoint > & getFittingPoints() const
bool renameMeasurement(const QString &newName, unsigned int measurementIndex)
unsigned int getFittingPointAmount() const
ccMeasurementRecorder(ccPointCloud *rootCloud, ecvMainAppInterface *app)
void setPlane(const ccPlane *plane)
void deleteFittingPoint(unsigned int index)
void addFittingPoint(const ccPickingListener::PickedItem &item)
const std::vector< ccMPlanePoint > & getMeasurementPoints() const
void updateMeasurement(float distance, unsigned int measurementIndex)
void renameFittingPoint(const QString &newName, unsigned int fittingPointIndex)
void addMeasurementPoint(const ccPickingListener::PickedItem &item, float distance)
Plane (primitive)
Definition: ecvPlane.h:18
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Main application interface (for plugins)