ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PclMeasurementTools.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 // LOCAL
11 #include <Utils/PCLCloud.h>
12 
13 #include "qPCL.h"
14 
15 // CV_DB_LIB
17 #include <ecvGenericVisualizer3D.h>
18 
19 namespace PclUtils {
20 class PCLVis;
21 }
22 
24 
27  Q_OBJECT
28 public:
29  explicit PclMeasurementTools(
30  MeasurementType type = MeasurementType::DISTANCE_WIDGET);
31  explicit PclMeasurementTools(
32  ecvGenericVisualizer3D* viewer,
33  MeasurementType type = MeasurementType::DISTANCE_WIDGET);
34  virtual ~PclMeasurementTools() override;
35 
36  void setVisualizer(ecvGenericVisualizer3D* viewer = nullptr);
37 
38 public: // implemented from ecvGenericMeasurementTools interface
39  virtual bool setInputData(ccHObject* entity) override;
40  virtual bool start() override;
41  virtual void reset() override;
42  virtual void clear() override;
43  virtual QWidget* getMeasurementWidget() override;
44  virtual ccHObject* getOutput() const override;
45 
46  virtual double getMeasurementValue() const override;
47  virtual void getPoint1(double pos[3]) const override;
48  virtual void getPoint2(double pos[3]) const override;
49  virtual void getCenter(double pos[3]) const override;
50  virtual void setPoint1(double pos[3]) override;
51  virtual void setPoint2(double pos[3]) override;
52  virtual void setCenter(double pos[3]) override;
53  virtual void setColor(double r, double g, double b) override;
56  virtual bool getColor(double& r, double& g, double& b) const;
57  virtual void lockInteraction() override;
58  virtual void unlockInteraction() override;
59  virtual void setInstanceLabel(const QString& label) override;
60  virtual void setFontFamily(const QString& family) override;
61  virtual void setFontSize(int size) override;
62  virtual void setBold(bool bold) override;
63  virtual void setItalic(bool italic) override;
64  virtual void setShadow(bool shadow) override;
65  virtual void setFontOpacity(double opacity) override;
66  virtual void setFontColor(double r, double g, double b) override;
67 
69  QString getFontFamily() const;
70  int getFontSize() const;
71  void getFontColor(double& r, double& g, double& b) const;
72  bool getFontBold() const;
73  bool getFontItalic() const;
74  bool getFontShadow() const;
75  double getFontOpacity() const;
76  QString getHorizontalJustification() const;
77  QString getVerticalJustification() const;
78  virtual void setHorizontalJustification(
79  const QString& justification) override;
80  virtual void setVerticalJustification(
81  const QString& justification) override;
82  virtual void setupShortcuts(QWidget* win) override;
83  virtual void disableShortcuts() override;
84  virtual void clearPickingCache() override;
85 
86 protected:
87  virtual void initialize() override;
88 
89 private:
90  PclUtils::PCLVis* m_viewer;
92 };
int size
char type
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
Generic Measurement Tools interface.
virtual ccHObject * getOutput() const =0
Returns the output (if any)
virtual void getCenter(double pos[3]) const =0
Get center point coordinates (for angle/protractor)
virtual void lockInteraction()=0
Lock tool interaction (disable VTK widget and UI controls)
virtual void setFontColor(double r, double g, double b)=0
Set font color for measurement labels (RGB values 0.0-1.0)
virtual void reset()=0
Resets the measurement tool.
virtual bool setInputData(ccHObject *entity)=0
Sets the input entity.
virtual void setFontFamily(const QString &family)=0
virtual void setupShortcuts(QWidget *win)
Setup keyboard shortcuts bound to the render window widget.
virtual void setVerticalJustification(const QString &justification)=0
virtual void getPoint1(double pos[3]) const =0
Get point 1 coordinates.
virtual void setItalic(bool italic)=0
Set font italic state for measurement labels.
virtual void setColor(double r, double g, double b)=0
Set measurement color (RGB values in range [0.0, 1.0])
virtual void setPoint2(double pos[3])=0
Set point 2 coordinates.
virtual QWidget * getMeasurementWidget()=0
Returns the measurement widget.
virtual void getPoint2(double pos[3]) const =0
Get point 2 coordinates.
virtual void setHorizontalJustification(const QString &justification)=0
virtual bool start()=0
Starts the measurement tool.
virtual void setFontOpacity(double opacity)=0
Set font opacity for measurement labels (0.0 to 1.0)
virtual void unlockInteraction()=0
Unlock tool interaction (enable VTK widget and UI controls)
virtual void initialize()=0
virtual void clearPickingCache()
Clear picking cache (called when scene/camera changes)
virtual void setFontSize(int size)=0
Set font size for measurement labels.
virtual void setBold(bool bold)=0
Set font bold state for measurement labels.
virtual void setShadow(bool shadow)=0
Set font shadow state for measurement labels.
virtual void disableShortcuts()
Disable keyboard shortcuts (called before tool destruction)
virtual double getMeasurementValue() const =0
Get measurement value (distance or angle)
virtual void clear()=0
Clears the measurement tool.
virtual void setInstanceLabel(const QString &label)=0
Set instance label suffix (e.g., "#1", "#2") for display in 3D view.
virtual void setPoint1(double pos[3])=0
Set point 1 coordinates.
virtual void setCenter(double pos[3])=0
Set center point coordinates (for angle/protractor)
Generic visualizer 3D interface.
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15