ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
ccMeasurementDevice.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 "
ecvMainAppInterface.h
"
12
#include "
ecvPlane.h
"
13
#include "
ecvPointCloud.h
"
14
#include "
ecvScalarField.h
"
15
16
// Local dependecies
17
#include "
ccMPlanePoint.h
"
18
19
class
ccMeasurementDevice
{
20
public
:
21
explicit
ccMeasurementDevice
(
ecvMainAppInterface
*app) : m_app(app) {}
22
23
ccPlane
*
fitPlaneToPoints
(
const
std::vector<ccMPlanePoint> &fittingPoints,
24
const
QString &planeName)
const
;
25
void
createScalarFieldForCloud
(
const
ccPlane
*plane,
26
ccPointCloud
*cloud,
27
bool
signedMeasurement)
const
;
28
void
deleteScalarFieldFromCloud
(
ccPointCloud
*cloud)
const
;
29
float
measurePointToPlaneDistance
(
const
ccPlane
*plane,
30
const
CCVector3
&
point
,
31
bool
signedMeasurement)
const
;
32
33
private
:
34
ecvMainAppInterface
*m_app;
35
void
setupPlaneUiDisplay(
ccPlane
*plane,
const
QString planeName)
const
;
36
std::tuple<ccScalarField *, int> findOrCreateScalarfieldForCloud(
37
ccPointCloud
*cloud)
const
;
38
void
addPointDistancesToScalarfield(
ccScalarField
*scalarField,
39
const
ccPointCloud
*cloud,
40
const
PointCoordinateType
*equation,
41
bool
signedMeasurement)
const
;
42
};
PointCoordinateType
float PointCoordinateType
Type of the coordinates of a (N-D) point.
Definition:
CVTypes.h:16
ccMPlanePoint.h
Vector3Tpl< PointCoordinateType >
ccMeasurementDevice
Definition:
ccMeasurementDevice.h:19
ccMeasurementDevice::createScalarFieldForCloud
void createScalarFieldForCloud(const ccPlane *plane, ccPointCloud *cloud, bool signedMeasurement) const
Definition:
ccMeasurementDevice.cpp:37
ccMeasurementDevice::deleteScalarFieldFromCloud
void deleteScalarFieldFromCloud(ccPointCloud *cloud) const
Definition:
ccMeasurementDevice.cpp:61
ccMeasurementDevice::ccMeasurementDevice
ccMeasurementDevice(ecvMainAppInterface *app)
Definition:
ccMeasurementDevice.h:21
ccMeasurementDevice::fitPlaneToPoints
ccPlane * fitPlaneToPoints(const std::vector< ccMPlanePoint > &fittingPoints, const QString &planeName) const
Definition:
ccMeasurementDevice.cpp:16
ccMeasurementDevice::measurePointToPlaneDistance
float measurePointToPlaneDistance(const ccPlane *plane, const CCVector3 &point, bool signedMeasurement) const
Definition:
ccMeasurementDevice.cpp:70
ccPlane
Plane (primitive)
Definition:
ecvPlane.h:18
ccPointCloud
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Definition:
ecvPointCloud.h:147
ccScalarField
A scalar field associated to display-related parameters.
Definition:
ecvScalarField.h:20
ecvMainAppInterface
Main application interface (for plugins)
Definition:
ecvMainAppInterface.h:24
ecvMainAppInterface.h
ecvPlane.h
ecvPointCloud.h
ecvScalarField.h
point
Definition:
lsd.c:149
plugins
core
Standard
qMPlane
src
ccMeasurementDevice.h
Generated on Wed Jan 28 2026 09:01:07 for ACloudViewer by
1.9.1