DGtal  1.5.beta
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. More...
 
RealPoint myWeightedVector
 Array of CGAL points. More...
 
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.

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 DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::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  {
105  RealPoint elementary;
106  Dimension i = myEmbedder->space().sOrthDir ( aSurf );
107  elementary[ i ] = myEmbedder->space().sDirect ( aSurf, i ) ? 1 : -1;
108 
109  myWeightedVector += aDistance *elementary;
110  }
DGtal::uint32_t Dimension
Definition: Common.h:136
PointVector< 3, double > RealPoint

References DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::myEmbedder, and DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::myWeightedVector.

◆ reset()

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

Field Documentation

◆ myEmbedder

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

◆ myH

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

◆ myWeightedVector


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