![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
M3C2 normals computation related tools. More...
#include <qM3C2Tools.h>
Public Types | |
| enum | ComputationMode { DEFAULT_MODE = 0 , USE_CLOUD1_NORMALS = 1 , MULTI_SCALE_MODE = 2 , VERT_MODE = 3 , HORIZ_MODE = 4 , USE_CORE_POINTS_NORMALS = 5 } |
| Normals computation mode. More... | |
Static Public Member Functions | |
| static bool | ComputeCorePointsNormals (cloudViewer::GenericIndexedCloud *corePoints, NormsIndexesTableType *corePointsNormals, ccGenericPointCloud *sourceCloud, const std::vector< PointCoordinateType > &sortedRadii, bool &invalidNormals, int maxThreadCount=0, ccScalarField *normalScale=nullptr, cloudViewer::GenericProgressCallback *progressCb=nullptr, cloudViewer::DgmOctree *inputOctree=nullptr) |
| Computes normals on core points only. More... | |
| static bool | UpdateNormalOrientationsWithCloud (cloudViewer::GenericIndexedCloud *normCloud, NormsIndexesTableType &normsCodes, cloudViewer::GenericIndexedCloud *orientationCloud, int maxThreadCount=0, cloudViewer::GenericProgressCallback *progressCb=nullptr) |
| static void | MakeNormalsHorizontal (NormsIndexesTableType &normsCodes) |
| Makes all normals horizontal. More... | |
M3C2 normals computation related tools.
Definition at line 22 of file qM3C2Tools.h.
Normals computation mode.
| Enumerator | |
|---|---|
| DEFAULT_MODE | |
| USE_CLOUD1_NORMALS | |
| MULTI_SCALE_MODE | |
| VERT_MODE | |
| HORIZ_MODE | |
| USE_CORE_POINTS_NORMALS | |
Definition at line 27 of file qM3C2Tools.h.
|
static |
Computes normals on core points only.
See qCC's ccNormalVectors::ComputeCloudNormals.
Definition at line 179 of file qM3C2Tools.cpp.
References cloudViewer::DgmOctree::build(), ComputeCorePointNormal(), corePoints, cloudViewer::ScalarField::currentSize(), ccArray< Type, N, ComponentType >::currentSize(), cloudViewer::ScalarField::fill(), cloudViewer::DgmOctree::findBestLevelForAGivenNeighbourhoodSizeExtraction(), invalidNormals, ccArray< Type, N, ComponentType >::isAllocated(), NAN_VALUE, normalScale, nProgress, octreeLevel, ccArray< Type, N, ComponentType >::resizeSafe(), cloudViewer::ScalarField::resizeSafe(), s_corePointsNormalsParams, cloudViewer::GenericProgressCallback::setInfo(), cloudViewer::GenericProgressCallback::setMethodTitle(), cloudViewer::GenericCloud::size(), sourceCloud, cloudViewer::GenericProgressCallback::start(), cloudViewer::GenericProgressCallback::stop(), and cloudViewer::GenericProgressCallback::textCanBeEdited().
Referenced by qM3C2Process::Compute().
|
static |
Makes all normals horizontal.
Definition at line 429 of file qM3C2Tools.cpp.
References count, ccArray< Type, N, ComponentType >::currentSize(), ccNormalVectors::GetNormal(), ccNormalVectors::GetNormIndex(), ccArray< Type, N, ComponentType >::getValue(), Vector3Tpl< Type >::normalize(), normsCodes, ccArray< Type, N, ComponentType >::setValue(), Tuple3Tpl< Type >::u, and Tuple3Tpl< Type >::z.
Referenced by qM3C2Process::Compute().
|
static |
Re-orients normal vectors so that they all 'look' towards the nearest point of another cloud
Definition at line 346 of file qM3C2Tools.cpp.
References count, ccArray< Type, N, ComponentType >::currentSize(), normCloud, normsCodes, nProgress, orientationCloud, OrientPointNormalWithCloud(), s_normOriWithCloud, cloudViewer::GenericProgressCallback::setInfo(), cloudViewer::GenericProgressCallback::setMethodTitle(), cloudViewer::GenericCloud::size(), cloudViewer::GenericProgressCallback::start(), cloudViewer::GenericProgressCallback::stop(), cloudViewer::GenericProgressCallback::textCanBeEdited(), and CVLog::Warning().
Referenced by qM3C2Process::Compute().