Loading [MathJax]/extensions/TeX/AMSsymbols.js
DGtal 2.0.0
DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder > Class Template Reference

Aim: Estimates normal vector by convolution of elementary normal vector to adjacent surfel. More...

#include <DGtal/geometry/surfaces/estimation/estimationFunctors/ElementaryConvolutionNormalVectorEstimator.h>

Public Types

typedef TSurfel Surfel
typedef TEmbedder SCellEmbedder
typedef SCellEmbedder::RealPoint RealPoint
typedef RealPoint Quantity

Public Member Functions

 ElementaryConvolutionNormalVectorEstimator (ConstAlias< SCellEmbedder > anEmbedder, const double h)
void pushSurfel (const Surfel &aSurf, const double aDistance)
Quantity eval ()
void reset ()

Private Attributes

const SCellEmbeddermyEmbedder
 Alias of the geometrical embedder.
RealPoint myWeightedVector
 Array of CGAL points.
double myH

Detailed Description

template<typename TSurfel, typename TEmbedder>
class DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >

Aim: Estimates normal vector by convolution of elementary normal vector to adjacent surfel.

Description of template class 'ElementaryConvolutionNormalVectorEstimator'

To each \(n-1\) signed surfel, an elementary inward normal vector can be defined. At a given surfel, this functor will compute the weighted average of elementary normal vectors in the neighborihood.

Model of CLocalEstimatorFromSurfelFunctor.

Template Parameters
TSurfeltype of surfels
TEmbeddertype of functors which embed surfel to \( \mathbb{R}^3\)

Definition at line 75 of file ElementaryConvolutionNormalVectorEstimator.h.

Member Typedef Documentation

◆ Quantity

template<typename TSurfel, typename TEmbedder>
typedef RealPoint DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::Quantity

Definition at line 82 of file ElementaryConvolutionNormalVectorEstimator.h.

◆ RealPoint

template<typename TSurfel, typename TEmbedder>
typedef SCellEmbedder::RealPoint DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::RealPoint

Definition at line 81 of file ElementaryConvolutionNormalVectorEstimator.h.

◆ SCellEmbedder

template<typename TSurfel, typename TEmbedder>
typedef TEmbedder DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::SCellEmbedder

Definition at line 80 of file ElementaryConvolutionNormalVectorEstimator.h.

◆ Surfel

template<typename TSurfel, typename TEmbedder>
typedef TSurfel DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::Surfel

Definition at line 79 of file ElementaryConvolutionNormalVectorEstimator.h.

Constructor & Destructor Documentation

◆ ElementaryConvolutionNormalVectorEstimator()

template<typename TSurfel, typename TEmbedder>
DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::ElementaryConvolutionNormalVectorEstimator ( ConstAlias< SCellEmbedder > anEmbedder,
const double h )
inline

Constructor.

Parameters
anEmbedderembedder to map surfel to R^n.
hgrid step

Definition at line 90 of file ElementaryConvolutionNormalVectorEstimator.h.

References myEmbedder, and myH.

Member Function Documentation

◆ eval()

template<typename TSurfel, typename TEmbedder>
Quantity DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::eval ( )
inline

Evaluate the normal vector from Monge form.

Returns
the mean curvature

Definition at line 117 of file ElementaryConvolutionNormalVectorEstimator.h.

118 {
119 return myWeightedVector.getNormalized();
120 }

References myWeightedVector.

◆ pushSurfel()

template<typename TSurfel, typename TEmbedder>
void DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::pushSurfel ( const Surfel & aSurf,
const double aDistance )
inline

Add the geometrical embedding of a surfel to the point list

Parameters
aSurfa surfel to add
aDistancedistance of aSurf to the neighborhood boundary

Definition at line 102 of file ElementaryConvolutionNormalVectorEstimator.h.

104 {
106 Dimension i = myEmbedder->space().sOrthDir ( aSurf );
107 elementary[ i ] = myEmbedder->space().sDirect ( aSurf, i ) ? 1 : -1;
108
110 }

References myEmbedder, and myWeightedVector.

◆ reset()

template<typename TSurfel, typename TEmbedder>
void DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::reset ( )
inline

Reset the point list.

Definition at line 126 of file ElementaryConvolutionNormalVectorEstimator.h.

127 {
128 myWeightedVector = RealPoint().diagonal(0.0);
129 }

References myWeightedVector.

Field Documentation

◆ myEmbedder

template<typename TSurfel, typename TEmbedder>
const SCellEmbedder* DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::myEmbedder
private

Alias of the geometrical embedder.

Definition at line 135 of file ElementaryConvolutionNormalVectorEstimator.h.

Referenced by ElementaryConvolutionNormalVectorEstimator(), and pushSurfel().

◆ myH

template<typename TSurfel, typename TEmbedder>
double DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::myH
private

◆ myWeightedVector

template<typename TSurfel, typename TEmbedder>
RealPoint DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::myWeightedVector
private

Array of CGAL points.

Definition at line 138 of file ElementaryConvolutionNormalVectorEstimator.h.

Referenced by eval(), pushSurfel(), and reset().


The documentation for this class was generated from the following file: