ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
qM3C2Tools.cpp File Reference
#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>
Include dependency graph for qM3C2Tools.cpp:

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
 

Function Documentation

◆ ComputeCorePointNormal()

◆ Interquartile()

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().

◆ Median()

static double Median ( const cloudViewer::DgmOctree::NeighboursSet set,
size_t  begin = 0,
size_t  count = 0 
)
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().

◆ OrientPointNormalWithCloud()

Variable Documentation

◆ corePoints

Definition at line 38 of file qM3C2Tools.cpp.

Referenced by qM3C2Normals::ComputeCorePointsNormals().

◆ invalidNormals

bool invalidNormals

Definition at line 45 of file qM3C2Tools.cpp.

Referenced by qM3C2Process::Compute(), and qM3C2Normals::ComputeCorePointsNormals().

◆ normalScale

◆ normCloud

◆ normCodes

Definition at line 43 of file qM3C2Tools.cpp.

◆ normsCodes

◆ nProgress

◆ octree

Definition at line 40 of file qM3C2Tools.cpp.

◆ octreeLevel

unsigned char octreeLevel

Definition at line 41 of file qM3C2Tools.cpp.

Referenced by qM3C2Normals::ComputeCorePointsNormals().

◆ orientationCloud

◆ processCanceled

bool processCanceled

Definition at line 48 of file qM3C2Tools.cpp.

◆ radii

◆ 

struct { ... } s_corePointsNormalsParams

◆ 

struct { ... } s_normOriWithCloud

◆ sourceCloud

ccGenericPointCloud* sourceCloud

Definition at line 39 of file qM3C2Tools.cpp.

Referenced by qM3C2Normals::ComputeCorePointsNormals().