ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
qM3C2Process.cpp File Reference
#include "qM3C2Process.h"
#include "qM3C2Dialog.h"
#include "qM3C2DisclaimerDialog.h"
#include "qM3C2Tools.h"
#include <CloudSamplingTools.h>
#include <ecvGenericPointCloud.h>
#include <ecvHObjectCaster.h>
#include <ecvNormalVectors.h>
#include <ecvOctree.h>
#include <ecvOctreeProxy.h>
#include <ecvPointCloud.h>
#include <ecvProgressDialog.h>
#include <ecvScalarField.h>
#include <ecvMainAppInterface.h>
#include <QApplication>
#include <QElapsedTimer>
#include <QMessageBox>
#include <QtConcurrentMap>
#include <QtCore>
#include <QtGui>
Include dependency graph for qM3C2Process.cpp:

Go to the source code of this file.

Classes

struct  PrecisionMaps
 
struct  M3C2Params
 

Functions

static void RemoveScalarField (ccPointCloud *cloud, const char sfName[])
 
static double ComputePMUncertainty (cloudViewer::DgmOctree::NeighboursSet &set, const CCVector3 &N, const PrecisionMaps &PM)
 
void ComputeM3C2DistForPoint (unsigned index)
 

Variables

static const char M3C2_DIST_SF_NAME [] = "M3C2 distance"
 Default name for M3C2 scalar fields. More...
 
static const char DIST_UNCERTAINTY_SF_NAME [] = "distance uncertainty"
 
static const char SIG_CHANGE_SF_NAME [] = "significant change"
 
static const char STD_DEV_CLOUD1_SF_NAME [] = "%1_cloud1"
 
static const char STD_DEV_CLOUD2_SF_NAME [] = "%1_cloud2"
 
static const char DENSITY_CLOUD1_SF_NAME [] = "Npoints_cloud1"
 
static const char DENSITY_CLOUD2_SF_NAME [] = "Npoints_cloud2"
 
static const char NORMAL_SCALE_SF_NAME [] = "normal scale"
 
static ScalarType SCALAR_ZERO = 0
 
static ScalarType SCALAR_ONE = 1
 
static M3C2Params s_M3C2Params
 

Function Documentation

◆ ComputeM3C2DistForPoint()

void ComputeM3C2DistForPoint ( unsigned  index)

Definition at line 175 of file qM3C2Process.cpp.

References cloudViewer::DgmOctree::CylindricalNeighbourhood::center, M3C2Params::cloud1Octree, M3C2Params::cloud1PM, M3C2Params::cloud2Octree, M3C2Params::cloud2PM, M3C2Params::computeConfidence, ComputePMUncertainty(), qM3C2Tools::ComputeStatistics(), M3C2Params::coreNormals, M3C2Params::corePoints, cloudViewer::DgmOctree::ProgressiveCylindricalNeighbourhood::currentHalfLength, M3C2Params::densityCloud1SF, M3C2Params::densityCloud2SF, cloudViewer::DgmOctree::CylindricalNeighbourhood::dir, dist(), M3C2Params::distUncertaintySF, M3C2Params::exportNormal, M3C2Params::exportOption, fabs(), ccNormalVectors::GetNormal(), cloudViewer::PointCloudTpl< T >::getPoint(), ccArray< Type, N, ComponentType >::getValue(), cloudViewer::DgmOctree::CylindricalNeighbourhood::level, M3C2Params::level1, M3C2Params::level2, M3C2Params::m3c2DistSF, cloudViewer::DgmOctree::CylindricalNeighbourhood::maxHalfLength, M3C2Params::minPoints4Stats, NAN_VALUE, cloudViewer::DgmOctree::CylindricalNeighbourhood::neighbours, M3C2Params::nProgress, cloudViewer::NormalizedProgress::oneStep(), cloudViewer::DgmOctree::CylindricalNeighbourhood::onlyPositiveDir, M3C2Params::onlyPositiveSearch, M3C2Params::outputCloud, M3C2Params::processCanceled, M3C2Params::progressiveSearch, qM3C2Dialog::PROJECT_ON_CLOUD1, qM3C2Dialog::PROJECT_ON_CLOUD2, M3C2Params::projectionDepth, M3C2Params::projectionRadius, cloudViewer::DgmOctree::CylindricalNeighbourhood::radius, M3C2Params::registrationRms, s_M3C2Params, SCALAR_ONE, ccPointCloud::setPointNormal(), cloudViewer::ScalarField::setValue(), M3C2Params::sigChangeSF, M3C2Params::stdDevCloud1SF, M3C2Params::stdDevCloud2SF, M3C2Params::updateNormal, M3C2Params::useMedian, and M3C2Params::usePrecisionMaps.

Referenced by qM3C2Process::Compute().

◆ ComputePMUncertainty()

◆ RemoveScalarField()

static void RemoveScalarField ( ccPointCloud cloud,
const char  sfName[] 
)
static

Variable Documentation

◆ DENSITY_CLOUD1_SF_NAME

const char DENSITY_CLOUD1_SF_NAME[] = "Npoints_cloud1"
static

Definition at line 45 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ DENSITY_CLOUD2_SF_NAME

const char DENSITY_CLOUD2_SF_NAME[] = "Npoints_cloud2"
static

Definition at line 46 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ DIST_UNCERTAINTY_SF_NAME

const char DIST_UNCERTAINTY_SF_NAME[] = "distance uncertainty"
static

Definition at line 41 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ M3C2_DIST_SF_NAME

const char M3C2_DIST_SF_NAME[] = "M3C2 distance"
static

Default name for M3C2 scalar fields.

Definition at line 40 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ NORMAL_SCALE_SF_NAME

const char NORMAL_SCALE_SF_NAME[] = "normal scale"
static

Definition at line 47 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ s_M3C2Params

M3C2Params s_M3C2Params
static

Definition at line 173 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute(), and ComputeM3C2DistForPoint().

◆ SCALAR_ONE

ScalarType SCALAR_ONE = 1
static

Definition at line 57 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute(), and ComputeM3C2DistForPoint().

◆ SCALAR_ZERO

ScalarType SCALAR_ZERO = 0
static

Definition at line 56 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ SIG_CHANGE_SF_NAME

const char SIG_CHANGE_SF_NAME[] = "significant change"
static

Definition at line 42 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ STD_DEV_CLOUD1_SF_NAME

const char STD_DEV_CLOUD1_SF_NAME[] = "%1_cloud1"
static

Definition at line 43 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().

◆ STD_DEV_CLOUD2_SF_NAME

const char STD_DEV_CLOUD2_SF_NAME[] = "%1_cloud2"
static

Definition at line 44 of file qM3C2Process.cpp.

Referenced by qM3C2Process::Compute().