ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
ecvGenericMeasurementTools.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
#include "
CV_db.h
"
11
12
// QT
13
#include <QObject>
14
15
class
ccHObject
;
16
class
QWidget;
17
19
class
CV_DB_LIB_API
ecvGenericMeasurementTools
:
public
QObject {
20
Q_OBJECT
21
public
:
22
enum
MeasurementType
{ DISTANCE_WIDGET,
CONTOUR_WIDGET
, PROTRACTOR_WIDGET };
23
25
28
ecvGenericMeasurementTools
(
29
MeasurementType
type
= MeasurementType::DISTANCE_WIDGET);
30
32
virtual
~ecvGenericMeasurementTools
();
33
35
virtual
bool
setInputData
(
ccHObject
* entity) = 0;
36
38
virtual
bool
start
() = 0;
39
41
virtual
void
reset
() = 0;
42
44
virtual
void
clear
() = 0;
45
47
virtual
void
update
();
48
50
virtual
QWidget*
getMeasurementWidget
() = 0;
51
53
virtual
ccHObject
*
getOutput
()
const
= 0;
54
56
virtual
double
getMeasurementValue
()
const
= 0;
57
59
virtual
void
getPoint1
(
double
pos[3])
const
= 0;
60
62
virtual
void
getPoint2
(
double
pos[3])
const
= 0;
63
65
virtual
void
getCenter
(
double
pos[3])
const
= 0;
66
68
virtual
void
setPoint1
(
double
pos[3]) = 0;
69
71
virtual
void
setPoint2
(
double
pos[3]) = 0;
72
74
virtual
void
setCenter
(
double
pos[3]) = 0;
75
77
virtual
void
setColor
(
double
r,
double
g,
double
b) = 0;
78
80
virtual
void
lockInteraction
() = 0;
81
83
virtual
void
unlockInteraction
() = 0;
84
86
virtual
void
setInstanceLabel
(
const
QString& label) = 0;
87
90
virtual
void
setFontFamily
(
const
QString& family) = 0;
91
93
virtual
void
setFontSize
(
int
size
) = 0;
94
96
virtual
void
setBold
(
bool
bold) = 0;
97
99
virtual
void
setItalic
(
bool
italic) = 0;
100
102
virtual
void
setShadow
(
bool
shadow) = 0;
103
105
virtual
void
setFontOpacity
(
double
opacity) = 0;
106
108
virtual
void
setFontColor
(
double
r,
double
g,
double
b) = 0;
109
112
virtual
void
setHorizontalJustification
(
const
QString& justification) = 0;
113
116
virtual
void
setVerticalJustification
(
const
QString& justification) = 0;
117
119
virtual
void
setupShortcuts
(QWidget* win) { Q_UNUSED(win); }
120
122
virtual
void
disableShortcuts
() {}
123
125
virtual
void
clearPickingCache
() {}
126
127
public
:
128
inline
MeasurementType
getMeasurementType
() {
return
m_measurementType; }
129
130
signals
:
132
void
measurementChanged
();
133
136
void
pointPickingRequested
(
int
pointIndex);
137
139
void
pointPickingCancelled
();
140
141
protected
:
142
virtual
void
initialize
() = 0;
143
144
MeasurementType
m_measurementType
;
145
ccHObject
*
m_associatedEntity
;
146
};
CV_db.h
CV_DB_LIB_API
#define CV_DB_LIB_API
Definition:
CV_db.h:15
size
int size
Definition:
FileIOFactory.cpp:130
type
char type
Definition:
FileIOFactory.cpp:131
signals
#define signals
Definition:
PythonPlugin.cpp:26
ccHObject
Hierarchical CLOUDVIEWER Object.
Definition:
ecvHObject.h:25
ecvGenericMeasurementTools
Generic Measurement Tools interface.
Definition:
ecvGenericMeasurementTools.h:19
ecvGenericMeasurementTools::getOutput
virtual ccHObject * getOutput() const =0
Returns the output (if any)
ecvGenericMeasurementTools::getMeasurementType
MeasurementType getMeasurementType()
Definition:
ecvGenericMeasurementTools.h:128
ecvGenericMeasurementTools::getCenter
virtual void getCenter(double pos[3]) const =0
Get center point coordinates (for angle/protractor)
ecvGenericMeasurementTools::lockInteraction
virtual void lockInteraction()=0
Lock tool interaction (disable VTK widget and UI controls)
ecvGenericMeasurementTools::MeasurementType
MeasurementType
Definition:
ecvGenericMeasurementTools.h:22
ecvGenericMeasurementTools::CONTOUR_WIDGET
@ CONTOUR_WIDGET
Definition:
ecvGenericMeasurementTools.h:22
ecvGenericMeasurementTools::setFontColor
virtual void setFontColor(double r, double g, double b)=0
Set font color for measurement labels (RGB values 0.0-1.0)
ecvGenericMeasurementTools::reset
virtual void reset()=0
Resets the measurement tool.
ecvGenericMeasurementTools::setInputData
virtual bool setInputData(ccHObject *entity)=0
Sets the input entity.
ecvGenericMeasurementTools::pointPickingCancelled
void pointPickingCancelled()
Signal sent when point picking is cancelled.
ecvGenericMeasurementTools::setFontFamily
virtual void setFontFamily(const QString &family)=0
ecvGenericMeasurementTools::setupShortcuts
virtual void setupShortcuts(QWidget *win)
Setup keyboard shortcuts bound to the render window widget.
Definition:
ecvGenericMeasurementTools.h:119
ecvGenericMeasurementTools::setVerticalJustification
virtual void setVerticalJustification(const QString &justification)=0
ecvGenericMeasurementTools::getPoint1
virtual void getPoint1(double pos[3]) const =0
Get point 1 coordinates.
ecvGenericMeasurementTools::update
virtual void update()
Updates the display.
ecvGenericMeasurementTools::setItalic
virtual void setItalic(bool italic)=0
Set font italic state for measurement labels.
ecvGenericMeasurementTools::setColor
virtual void setColor(double r, double g, double b)=0
Set measurement color (RGB values in range [0.0, 1.0])
ecvGenericMeasurementTools::m_measurementType
MeasurementType m_measurementType
Definition:
ecvGenericMeasurementTools.h:144
ecvGenericMeasurementTools::setPoint2
virtual void setPoint2(double pos[3])=0
Set point 2 coordinates.
ecvGenericMeasurementTools::m_associatedEntity
ccHObject * m_associatedEntity
Definition:
ecvGenericMeasurementTools.h:145
ecvGenericMeasurementTools::ecvGenericMeasurementTools
ecvGenericMeasurementTools(MeasurementType type=MeasurementType::DISTANCE_WIDGET)
Default constructor.
ecvGenericMeasurementTools::getMeasurementWidget
virtual QWidget * getMeasurementWidget()=0
Returns the measurement widget.
ecvGenericMeasurementTools::getPoint2
virtual void getPoint2(double pos[3]) const =0
Get point 2 coordinates.
ecvGenericMeasurementTools::setHorizontalJustification
virtual void setHorizontalJustification(const QString &justification)=0
ecvGenericMeasurementTools::start
virtual bool start()=0
Starts the measurement tool.
ecvGenericMeasurementTools::setFontOpacity
virtual void setFontOpacity(double opacity)=0
Set font opacity for measurement labels (0.0 to 1.0)
ecvGenericMeasurementTools::unlockInteraction
virtual void unlockInteraction()=0
Unlock tool interaction (enable VTK widget and UI controls)
ecvGenericMeasurementTools::initialize
virtual void initialize()=0
ecvGenericMeasurementTools::clearPickingCache
virtual void clearPickingCache()
Clear picking cache (called when scene/camera changes)
Definition:
ecvGenericMeasurementTools.h:125
ecvGenericMeasurementTools::setFontSize
virtual void setFontSize(int size)=0
Set font size for measurement labels.
ecvGenericMeasurementTools::~ecvGenericMeasurementTools
virtual ~ecvGenericMeasurementTools()
Destructor.
ecvGenericMeasurementTools::setBold
virtual void setBold(bool bold)=0
Set font bold state for measurement labels.
ecvGenericMeasurementTools::pointPickingRequested
void pointPickingRequested(int pointIndex)
ecvGenericMeasurementTools::setShadow
virtual void setShadow(bool shadow)=0
Set font shadow state for measurement labels.
ecvGenericMeasurementTools::disableShortcuts
virtual void disableShortcuts()
Disable keyboard shortcuts (called before tool destruction)
Definition:
ecvGenericMeasurementTools.h:122
ecvGenericMeasurementTools::measurementChanged
void measurementChanged()
Signal sent when the measurement changes.
ecvGenericMeasurementTools::getMeasurementValue
virtual double getMeasurementValue() const =0
Get measurement value (distance or angle)
ecvGenericMeasurementTools::clear
virtual void clear()=0
Clears the measurement tool.
ecvGenericMeasurementTools::setInstanceLabel
virtual void setInstanceLabel(const QString &label)=0
Set instance label suffix (e.g., "#1", "#2") for display in 3D view.
ecvGenericMeasurementTools::setPoint1
virtual void setPoint1(double pos[3])=0
Set point 1 coordinates.
ecvGenericMeasurementTools::setCenter
virtual void setCenter(double pos[3])=0
Set center point coordinates (for angle/protractor)
libs
CV_db
include
ecvGenericMeasurementTools.h
Generated on Wed Jan 28 2026 09:00:58 for ACloudViewer by
1.9.1