ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvLibAlgorithms.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 
11 
12 #include "ecvHObject.h"
13 
14 class QWidget;
15 
17 class ecvProgressDialog;
18 
19 namespace ccLibAlgorithms {
22  unsigned knn = 12);
23 
26  const ccHObject::Container& entities, unsigned knn = 12);
27 
28 /*** cloudViewer "standalone" algorithms ***/
29 
34  int option = 0)
35  : charac(c), subOption(option) {}
36 
38  int subOption = 0;
39 };
40 
42 typedef std::vector<GeomCharacteristic> GeomCharacteristicSet;
43 
46 bool ComputeGeomCharacteristics(const GeomCharacteristicSet& characteristics,
47  PointCoordinateType radius,
48  ccHObject::Container& entities,
49  const CCVector3* roughnessUpDir = nullptr,
50  QWidget* parent = nullptr);
51 
56  int subOption,
57  PointCoordinateType radius,
58  ccHObject::Container& entities,
59  const CCVector3* roughnessUpDir = nullptr,
60  QWidget* parent = nullptr,
61  ecvProgressDialog* progressDialog = nullptr);
62 
63 // cloudViewer algorithms handled by the 'ApplyCCLibAlgorithm' method
66 };
67 
71  ccHObject::Container& entities,
72  QWidget* parent = 0,
73  void** additionalParameters = 0);
74 
77 
81  ccHObject::Container& entities,
82  double icpRmsDiff,
83  int icpFinalOverlap,
84  unsigned refEntityIndex = 0,
85  QWidget* parent = 0);
86 } // namespace ccLibAlgorithms
float PointCoordinateType
Type of the coordinates of a (N-D) point.
Definition: CVTypes.h:16
A 3D cloud interface with associated features (color, normals, octree, etc.)
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
Definition: ecvHObject.h:337
Graphical progress indicator (thread-safe)
bool ApplyScaleMatchingAlgorithm(ScaleMatchingAlgorithm algo, ccHObject::Container &entities, double icpRmsDiff, int icpFinalOverlap, unsigned refEntityIndex, QWidget *parent)
bool ApplyCCLibAlgorithm(CC_LIB_ALGORITHM algo, ccHObject::Container &entities, QWidget *parent, void **additionalParameters)
bool ComputeGeomCharacteristics(const GeomCharacteristicSet &characteristics, PointCoordinateType radius, ccHObject::Container &entities, const CCVector3 *roughnessUpDir, QWidget *parent)
ScaleMatchingAlgorithm
Scale matching algorithms.
std::vector< GeomCharacteristic > GeomCharacteristicSet
Set of GeomCharacteristic instances.
bool ComputeGeomCharacteristic(cloudViewer::GeometricalAnalysisTools::GeomCharacteristic c, int subOption, PointCoordinateType radius, ccHObject::Container &entities, const CCVector3 *roughnessUpDir, QWidget *parent, ecvProgressDialog *progressDialog)
PointCoordinateType GetDefaultCloudKernelSize(ccGenericPointCloud *cloud, unsigned knn)
Returns a default first guess for algorithms kernel size (one cloud)
Geometric characteristic (with sub option)
cloudViewer::GeometricalAnalysisTools::GeomCharacteristic charac
GeomCharacteristic(cloudViewer::GeometricalAnalysisTools::GeomCharacteristic c, int option=0)