ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
ccPinchNodeTool.cpp
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
#include "
ccPinchNodeTool.h
"
9
10
ccPinchNodeTool::ccPinchNodeTool
() :
ccTool
() {}
11
12
ccPinchNodeTool::~ccPinchNodeTool
() {}
13
14
// called when a point in a point cloud gets picked while this tool is active
15
void
ccPinchNodeTool::pointPicked
(
ccHObject
* insertPoint,
16
unsigned
itemIdx,
17
ccPointCloud
* cloud,
18
const
CCVector3
& P) {
19
// get insert-point if there is an active GeoObject
20
ccGeoObject
* geoObj =
ccGeoObject::getGeoObjectParent
(insertPoint);
21
if
(geoObj)
// there is an active GeoObject
22
{
23
insertPoint = geoObj->
getRegion
(
24
ccGeoObject::INTERIOR
);
// add pinch-points to GeoObject
25
// interior
26
}
else
{
27
// throw error
28
m_app
->
dispToConsole
(
29
"[Compass] PinchNodes can only be added to GeoObjects. Please "
30
"select one!"
,
31
ecvMainAppInterface::ERR_CONSOLE_MESSAGE
);
32
return
;
33
}
34
35
// create a 1-point lineation object (highlights node-location)
36
ccPointPair
* l =
new
ccPinchNode
(cloud);
37
l->
setName
(
"tip"
);
38
l->
showNameIn3D
(
false
);
39
l->
addPointIndex
(itemIdx);
40
41
// add to scene graph
42
insertPoint->
addChild
(l);
43
m_app
->
addToDB
(l);
44
}
45
46
// called when the tool is set to active (for initialization)
47
void
ccPinchNodeTool::toolActivated
() {
48
// donothing
49
}
50
51
// called when the tool is set to disactive (for cleanup)
52
void
ccPinchNodeTool::toolDisactivated
() {
53
// donothing
54
}
ccPinchNodeTool.h
Vector3Tpl< PointCoordinateType >
ccDrawableObject::showNameIn3D
virtual void showNameIn3D(bool state)
Sets whether name should be displayed in 3D.
Definition:
ecvDrawableObject.h:125
ccGeoObject
Definition:
ccGeoObject.h:26
ccGeoObject::getGeoObjectParent
static ccGeoObject * getGeoObjectParent(ccHObject *object)
Definition:
ccGeoObject.cpp:382
ccGeoObject::INTERIOR
static const int INTERIOR
Definition:
ccGeoObject.h:54
ccGeoObject::getRegion
ccHObject * getRegion(int mappingRegion)
Definition:
ccGeoObject.cpp:73
ccHObject
Hierarchical CLOUDVIEWER Object.
Definition:
ecvHObject.h:25
ccHObject::addChild
virtual bool addChild(ccHObject *child, int dependencyFlags=DP_PARENT_OF_OTHER, int insertIndex=-1)
Adds a child.
ccObject::setName
virtual void setName(const QString &name)
Sets object name.
Definition:
ecvObject.h:75
ccPinchNodeTool::toolActivated
virtual void toolActivated() override
Definition:
ccPinchNodeTool.cpp:47
ccPinchNodeTool::ccPinchNodeTool
ccPinchNodeTool()
Definition:
ccPinchNodeTool.cpp:10
ccPinchNodeTool::pointPicked
void pointPicked(ccHObject *insertPoint, unsigned itemIdx, ccPointCloud *cloud, const CCVector3 &P) override
Definition:
ccPinchNodeTool.cpp:15
ccPinchNodeTool::~ccPinchNodeTool
virtual ~ccPinchNodeTool()
Definition:
ccPinchNodeTool.cpp:12
ccPinchNodeTool::toolDisactivated
virtual void toolDisactivated() override
Definition:
ccPinchNodeTool.cpp:52
ccPinchNode
Definition:
ccPinchNode.h:17
ccPointCloud
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Definition:
ecvPointCloud.h:147
ccPointPair
Definition:
ccPointPair.h:23
ccTool
Definition:
ccTool.h:18
ccTool::m_app
ecvMainAppInterface * m_app
Definition:
ccTool.h:67
cloudViewer::ReferenceCloud::addPointIndex
virtual bool addPointIndex(unsigned globalIndex)
Point global index insertion mechanism.
Definition:
ReferenceCloud.cpp:84
ecvMainAppInterface::ERR_CONSOLE_MESSAGE
@ ERR_CONSOLE_MESSAGE
Definition:
ecvMainAppInterface.h:119
ecvMainAppInterface::addToDB
virtual void addToDB(ccHObject *obj, bool updateZoom=false, bool autoExpandDBTree=true, bool checkDimensions=false, bool autoRedraw=true)=0
ecvMainAppInterface::dispToConsole
virtual void dispToConsole(QString message, ConsoleMessageLevel level=STD_CONSOLE_MESSAGE)=0
plugins
core
Standard
qCompass
src
ccPinchNodeTool.cpp
Generated on Wed Jan 28 2026 09:01:07 for ACloudViewer by
1.9.1