DGtal  0.9.3beta
Public Types | Public Member Functions | Private Attributes
DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder > Class Template Reference

#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
 
RealPoint myWeightedVector
 
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

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

Definition at line 82 of file ElementaryConvolutionNormalVectorEstimator.h.

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

Definition at line 81 of file ElementaryConvolutionNormalVectorEstimator.h.

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

Definition at line 80 of file ElementaryConvolutionNormalVectorEstimator.h.

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

Definition at line 79 of file ElementaryConvolutionNormalVectorEstimator.h.

Constructor & Destructor Documentation

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

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.

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

118  {
119  return myWeightedVector.getNormalized();
120  }
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.

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

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:120
template<typename TSurfel , typename TEmbedder >
void DGtal::functors::ElementaryConvolutionNormalVectorEstimator< TSurfel, TEmbedder >::reset ( )
inline

Field Documentation

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

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