23 return m_fittingPoints;
28 return m_measurementPoints;
32 return static_cast<unsigned int>(m_fittingPoints.size());
36 return static_cast<unsigned int>(m_fittingPoints.size());
42 loadMeasurementPoints();
43 loadAndDeleteFittingPlane();
51 m_fittingPointFolder->
addChild(newLabel);
52 m_app->
addToDB(newLabel,
false,
true,
false,
false);
58 QString measurementName = QString(
"#%1").arg(m_measurementPoints.size());
61 m_measurementFolder->
addChild(measureLabel);
62 m_app->
addToDB(measureLabel,
false,
true,
false,
false);
65 m_measurementPoints.back().setDistance(distance);
68 void ccMeasurementRecorder::loadFolders() {
77 void ccMeasurementRecorder::loadFittingPoints() {
78 std::vector<ccHObject*> fittingPointLabels;
81 std::transform(std::begin(fittingPointLabels), std::end(fittingPointLabels),
82 std::back_inserter(m_fittingPoints), [](
ccHObject* item) {
87 void ccMeasurementRecorder::loadMeasurementPoints() {
88 std::vector<ccHObject*> measurementLabels;
91 std::transform(std::begin(measurementLabels), std::end(measurementLabels),
92 std::back_inserter(m_measurementPoints),
98 void ccMeasurementRecorder::loadAndDeleteFittingPlane() {
106 unsigned int measurementIndex) {
107 auto element = std::find_if(std::begin(m_measurementPoints),
108 std::end(m_measurementPoints),
110 return point.getName() == newName;
113 if (element != std::end(m_measurementPoints)) {
117 m_measurementPoints[measurementIndex].setName(newName);
118 m_measurementPoints[measurementIndex].getLabel()->redrawDisplay();
123 unsigned int measurementIndex) {
124 m_measurementPoints[measurementIndex].setDistance(distance);
131 m_plane =
const_cast<ccPlane*
>(plane);
141 m_measurementFolder->
addChild(m_plane);
156 m_fittingPoints.erase(m_fittingPoints.begin() + index);
160 unsigned int fittingPointIndex) {
161 m_fittingPoints[fittingPointIndex].getLabel()->setName(
162 QString(
"Point %1").arg(fittingPointIndex));
float PointCoordinateType
Type of the coordinates of a (N-D) point.
constexpr char const * MPLANE_PLANE_NAME
constexpr char const * MPLANE_SCALARFIELD_NAME
constexpr char const * MEASUREMENT_FOLDER_NAME
constexpr char const * ROOT_FOLDER_NAME
constexpr char const * FITTING_POINT_FOLDER_NAME
2D label (typically attached to points)
Hierarchical CLOUDVIEWER Object.
virtual bool addChild(ccHObject *child, int dependencyFlags=DP_PARENT_OF_OTHER, int insertIndex=-1)
Adds a child.
unsigned filterChildren(Container &filteredChildren, bool recursive=false, CV_CLASS_ENUM filter=CV_TYPES::OBJECT, bool strict=false) const
Collects the children corresponding to a certain pattern.
unsigned int getActualFittingPointIndex() const
const std::vector< ccMPlanePoint > & getFittingPoints() const
bool renameMeasurement(const QString &newName, unsigned int measurementIndex)
unsigned int getFittingPointAmount() const
void setPlane(const ccPlane *plane)
ccPlane * getPlane() const
void loadDataFromSelectedCloud()
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)
void setXWidth(PointCoordinateType w, bool autoUpdate=true)
Sets 'X' width.
void setYWidth(PointCoordinateType h, bool autoUpdate=true)
Sets 'Y' width.
void getBoundingBox(CCVector3 &bbMin, CCVector3 &bbMax) override
virtual void addToDB(ccHObject *obj, bool updateZoom=false, bool autoExpandDBTree=true, bool checkDimensions=false, bool autoRedraw=true)=0
virtual void removeFromDB(ccHObject *obj, bool autoDelete=true)=0
Removes an entity from main db tree.
__host__ __device__ float length(float2 v)
__host__ __device__ int2 abs(int2 v)
ccHObject * findItemInHierarchy(ccHObject *root, CC_TYPES_MAP itemType, QString itemName=nullptr)
ccHObject * findOrCreateContainer(ccHObject *parent, const QString &containerName, ecvMainAppInterface *app)
cc2DLabel * createPointLabel2D(QString labelText, ccPointCloud *parentCloud, QPoint clickPoint, unsigned int pointIdx)