Ponca  e26a0e88a45818354616c1a7180bcd203aecad3c
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T > Class Template Reference

Extension to compute curvature values based on a covariance analysis of normal vectors of neighbors. More...

#include <curvatureEstimation.h>

+ Inheritance diagram for Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >:
+ Collaboration diagram for Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >:

Public Types

using Scalar = typename DataPoint::Scalar
 Alias to scalar type.
 
using VectorType = typename Base::VectorType
 Alias to vector type.
 
using WFunctor = typename Base::WFunctor
 Alias to weight function.
 
using MatrixType = typename DataPoint::MatrixType
 Alias to matrix type.
 
using ScalarArray = typename Base::ScalarArray
 Alias to scalar derivatives array.
 
using VectorArray = typename Base::VectorArray
 Alias to vector derivatives array.
 
typedef Eigen::SelfAdjointEigenSolver< MatrixTypeSolver
 Solver used to analyse the covariance matrix.
 

Public Member Functions

NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T > & normalCovarianceCurvatureEstimator ()
 Explicit conversion to NormalCovarianceCurvatureEstimator , to access methods potentially hidden by heritage.
 
const NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T > & normalCovarianceCurvatureEstimator () const
 Explicit conversion to NormalCovarianceCurvatureEstimator , to access methods potentially hidden by heritage.
 
void init (const VectorType &_evalPos)
 Set the evaluation position and reset the internal states.
 
bool addLocalNeighbor (Scalar w, const VectorType &localQ, const DataPoint &attributes, ScalarArray &dw)
 Add a neighbor to perform the fit.
 
FIT_RESULT finalize ()
 Finalize the procedure.
 

Protected Types

enum  { Check = Base::PROVIDES_PRINCIPAL_CURVATURES }
 
using Base = T
 Base class of the procedure.
 

Protected Attributes

MatrixType m_cov
 Covariance matrix of the normal vectors.
 
VectorType m_cog
 Gravity center of the normal vectors.
 
Solver m_solver
 Solver used to analyse the covariance matrix.
 

Detailed Description

template<class DataPoint, class _WFunctor, int DiffType, typename T>
class Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >

Extension to compute curvature values based on a covariance analysis of normal vectors of neighbors.

A 3D covariance matrix is computed from the normals of the neighbors and the two principal curvature values and directions are given by the two extreme eigenvalues and associated eigenvectors of the covariance matrix [9].

Warning
Not it test suite, to be added !
This class is valid only in 3D.

Definition at line 75 of file curvatureEstimation.h.

Member Typedef Documentation

◆ Base

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::Base = T
protected

Base class of the procedure.

Definition at line 77 of file curvatureEstimation.h.

◆ MatrixType

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::MatrixType = typename DataPoint::MatrixType

Alias to matrix type.

Definition at line 78 of file curvatureEstimation.h.

◆ Scalar

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::Scalar = typename DataPoint::Scalar

Alias to scalar type.

Definition at line 77 of file curvatureEstimation.h.

◆ ScalarArray

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::ScalarArray = typename Base::ScalarArray

Alias to scalar derivatives array.

Definition at line 79 of file curvatureEstimation.h.

◆ Solver

template<class DataPoint , class _WFunctor , int DiffType, typename T >
typedef Eigen::SelfAdjointEigenSolver<MatrixType> Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::Solver

Solver used to analyse the covariance matrix.

Definition at line 93 of file curvatureEstimation.h.

◆ VectorArray

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::VectorArray = typename Base::VectorArray

Alias to vector derivatives array.

Definition at line 79 of file curvatureEstimation.h.

◆ VectorType

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::VectorType = typename Base::VectorType

Alias to vector type.

Definition at line 77 of file curvatureEstimation.h.

◆ WFunctor

template<class DataPoint , class _WFunctor , int DiffType, typename T >
using Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::WFunctor = typename Base::WFunctor

Alias to weight function.

Definition at line 77 of file curvatureEstimation.h.

Member Enumeration Documentation

◆ anonymous enum

template<class DataPoint , class _WFunctor , int DiffType, typename T >
anonymous enum
protected

Definition at line 82 of file curvatureEstimation.h.

Member Function Documentation

◆ addLocalNeighbor()

template<class DataPoint , class _WFunctor , int DiffType, typename T >
bool NormalCovarianceCurvatureEstimator::addLocalNeighbor ( Scalar  w,
const VectorType localQ,
const DataPoint &  attributes,
ScalarArray dw 
)
inline

Add a neighbor to perform the fit.

Returns
false if param nei is not a valid neighbour (weight = 0)

Definition at line 119 of file curvatureEstimation.hpp.

◆ finalize()

template<class DataPoint , class _WFunctor , int DiffType, typename T >
FIT_RESULT NormalCovarianceCurvatureEstimator::finalize ( )
inline

Finalize the procedure.

Returns
Fitting Status
Warning
Must be called be for any use of the fitting output

Definition at line 133 of file curvatureEstimation.hpp.

◆ init()

template<class DataPoint , class _WFunctor , int DiffType, typename T >
void NormalCovarianceCurvatureEstimator::init ( const VectorType _evalPos)
inline

Set the evaluation position and reset the internal states.

Warning
Must be called be for any computation (but after #setWeightFunc)

Definition at line 110 of file curvatureEstimation.hpp.

◆ normalCovarianceCurvatureEstimator() [1/2]

template<class DataPoint , class _WFunctor , int DiffType, typename T >
NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T > & Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::normalCovarianceCurvatureEstimator ( )
inline

Explicit conversion to NormalCovarianceCurvatureEstimator , to access methods potentially hidden by heritage.

Definition at line 101 of file curvatureEstimation.h.

◆ normalCovarianceCurvatureEstimator() [2/2]

template<class DataPoint , class _WFunctor , int DiffType, typename T >
const NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T > & Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::normalCovarianceCurvatureEstimator ( ) const
inline

Explicit conversion to NormalCovarianceCurvatureEstimator , to access methods potentially hidden by heritage.

Definition at line 101 of file curvatureEstimation.h.

Member Data Documentation

◆ m_cog

template<class DataPoint , class _WFunctor , int DiffType, typename T >
VectorType Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::m_cog
protected

Gravity center of the normal vectors.

Definition at line 97 of file curvatureEstimation.h.

◆ m_cov

template<class DataPoint , class _WFunctor , int DiffType, typename T >
MatrixType Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::m_cov
protected

Covariance matrix of the normal vectors.

Definition at line 96 of file curvatureEstimation.h.

◆ m_solver

template<class DataPoint , class _WFunctor , int DiffType, typename T >
Solver Ponca::NormalCovarianceCurvatureEstimator< DataPoint, _WFunctor, DiffType, T >::m_solver
protected

Solver used to analyse the covariance matrix.

Definition at line 98 of file curvatureEstimation.h.