![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include "qM3C2Tools.h"#include <DistanceComputationTools.h>#include <Jacobi.h>#include <Neighbourhood.h>#include <ecvAdvancedTypes.h>#include <ecvGenericPointCloud.h>#include <ecvMainAppInterface.h>#include <ecvNormalVectors.h>#include <ecvOctree.h>#include <ecvOctreeProxy.h>#include <ecvPointCloud.h>#include <ecvProgressDialog.h>#include <ecvScalarField.h>#include <QApplication>#include <QMainWindow>#include <QProgressDialog>#include <QtConcurrentMap>#include <QtCore>#include <vector>
Go to the source code of this file.
Functions | |
| void | ComputeCorePointNormal (unsigned index) |
| static void | OrientPointNormalWithCloud (unsigned index) |
| static double | Median (const cloudViewer::DgmOctree::NeighboursSet &set, size_t begin=0, size_t count=0) |
| Computes the median distance of a (sorted) neighbors set. More... | |
| double | Interquartile (const cloudViewer::DgmOctree::NeighboursSet &set) |
| Computes the interquartile range of a (sorted) neighbors set. More... | |
Variables | |
| struct { | |
| cloudViewer::GenericIndexedCloud * corePoints | |
| ccGenericPointCloud * sourceCloud | |
| cloudViewer::DgmOctree * octree | |
| unsigned char octreeLevel | |
| std::vector< PointCoordinateType > radii | |
| NormsIndexesTableType * normCodes | |
| ccScalarField * normalScale | |
| bool invalidNormals | |
| cloudViewer::NormalizedProgress * nProgress | |
| bool processCanceled | |
| } | s_corePointsNormalsParams |
| struct { | |
| NormsIndexesTableType * normsCodes | |
| cloudViewer::GenericIndexedCloud * normCloud | |
| cloudViewer::GenericIndexedCloud * orientationCloud | |
| cloudViewer::NormalizedProgress * nProgress | |
| bool processCanceled | |
| } | s_normOriWithCloud |
| void ComputeCorePointNormal | ( | unsigned | index | ) |
Definition at line 52 of file qM3C2Tools.cpp.
References cloudViewer::ReferenceCloud::addPointIndex(), cloudViewer::ReferenceCloud::clear(), cloudViewer::Neighbourhood::computeCovarianceMatrix(), Vector3Tpl< PointCoordinateType >::fromArray(), Jacobi< Scalar >::GetMinEigenValueAndVector(), ccNormalVectors::GetNormIndex(), NAN_VALUE, Vector3Tpl< Type >::normalize(), s_corePointsNormalsParams, cloudViewer::ReferenceCloud::size(), std::swap(), Tuple3Tpl< Type >::u, Tuple3Tpl< Type >::x, and Tuple3Tpl< Type >::z.
Referenced by qM3C2Normals::ComputeCorePointsNormals().
| double Interquartile | ( | const cloudViewer::DgmOctree::NeighboursSet & | set | ) |
Computes the interquartile range of a (sorted) neighbors set.
Uses Mathworld's definition (http://mathworld.wolfram.com/InterquartileRange.html) as the original m3c2 code by N. Brodu.
Definition at line 474 of file qM3C2Tools.cpp.
References Median(), and NAN_VALUE.
Referenced by qM3C2Tools::ComputeStatistics().
|
static |
Computes the median distance of a (sorted) neighbors set.
Uses the common definition using mid-point average in the even case just as the original m3c2 code by N. Brodu.
Definition at line 450 of file qM3C2Tools.cpp.
References count, and NAN_VALUE.
Referenced by qM3C2Tools::ComputeStatistics(), and Interquartile().
|
static |
Definition at line 308 of file qM3C2Tools.cpp.
References Vector3Tpl< Type >::dot(), ccNormalVectors::GetNormal(), ccNormalVectors::GetNormIndex(), Vector3Tpl< Type >::norm2(), s_normOriWithCloud, and Tuple3Tpl< Type >::u.
Referenced by qM3C2Normals::UpdateNormalOrientationsWithCloud().
| cloudViewer::GenericIndexedCloud* corePoints |
Definition at line 38 of file qM3C2Tools.cpp.
Referenced by qM3C2Normals::ComputeCorePointsNormals().
| bool invalidNormals |
Definition at line 45 of file qM3C2Tools.cpp.
Referenced by qM3C2Process::Compute(), and qM3C2Normals::ComputeCorePointsNormals().
| ccScalarField* normalScale |
Definition at line 44 of file qM3C2Tools.cpp.
Referenced by qM3C2Process::Compute(), qM3C2Normals::ComputeCorePointsNormals(), and qM3C2Dialog::loadParamsFrom().
| cloudViewer::GenericIndexedCloud* normCloud |
Definition at line 300 of file qM3C2Tools.cpp.
Referenced by qM3C2Normals::UpdateNormalOrientationsWithCloud().
| NormsIndexesTableType* normCodes |
Definition at line 43 of file qM3C2Tools.cpp.
| NormsIndexesTableType* normsCodes |
Definition at line 299 of file qM3C2Tools.cpp.
Referenced by qM3C2Normals::MakeNormalsHorizontal(), and qM3C2Normals::UpdateNormalOrientationsWithCloud().
| cloudViewer::NormalizedProgress* nProgress |
Definition at line 47 of file qM3C2Tools.cpp.
Referenced by qM3C2Normals::ComputeCorePointsNormals(), and qM3C2Normals::UpdateNormalOrientationsWithCloud().
| cloudViewer::DgmOctree* octree |
Definition at line 40 of file qM3C2Tools.cpp.
| unsigned char octreeLevel |
Definition at line 41 of file qM3C2Tools.cpp.
Referenced by qM3C2Normals::ComputeCorePointsNormals().
| cloudViewer::GenericIndexedCloud* orientationCloud |
Definition at line 301 of file qM3C2Tools.cpp.
Referenced by qM3C2Process::Compute(), and qM3C2Normals::UpdateNormalOrientationsWithCloud().
| bool processCanceled |
Definition at line 48 of file qM3C2Tools.cpp.
| std::vector<PointCoordinateType> radii |
Definition at line 42 of file qM3C2Tools.cpp.
Referenced by cloudViewer::pipelines::registration::BenchmarkCreateFromPointCloudBallPivoting(), qM3C2Process::Compute(), GrainsAsEllipsoids::explicitToImplicit(), GrainsAsEllipsoids::fitEllipsoidToGrain(), GrainsAsEllipsoids::implicitToExplicit(), cloudViewer::core::nns::NearestNeighborSearch::MultiRadiusSearch(), cloudViewer::core::nns::NanoFlannIndex::SearchRadius(), and GrainsAsEllipsoids::updateMeshAndLineSet().
| struct { ... } s_corePointsNormalsParams |
Referenced by ComputeCorePointNormal(), and qM3C2Normals::ComputeCorePointsNormals().
| struct { ... } s_normOriWithCloud |
Referenced by OrientPointNormalWithCloud(), and qM3C2Normals::UpdateNormalOrientationsWithCloud().
| ccGenericPointCloud* sourceCloud |
Definition at line 39 of file qM3C2Tools.cpp.
Referenced by qM3C2Normals::ComputeCorePointsNormals().