31 #if defined(VCMGeometricFunctors_RECURSES)
32 #error Recursive header files inclusion detected in VCMGeometricFunctors.h
33 #else // defined(VCMGeometricFunctors_RECURSES)
35 #define VCMGeometricFunctors_RECURSES
37 #if !defined VCMGeometricFunctors_h
39 #define VCMGeometricFunctors_h
44 #include "DGtal/base/Common.h"
58 template <
typename TVCMOnDigitalSurface>
61 typedef typename VCMOnDigitalSurface::KSpace
KSpace;
62 typedef typename VCMOnDigitalSurface::Surfel
Surfel;
63 typedef typename VCMOnDigitalSurface::VectorN
RealVector;
64 typedef typename RealVector::Component
Scalar;
99 typedef typename VCMOnDigitalSurface::Surfel2Normals Surfel2Normals;
103 return - itSN->second.vcmNormal;
119 template <
typename TVCMOnDigitalSurface>
122 typedef typename VCMOnDigitalSurface::KSpace
KSpace;
123 typedef typename VCMOnDigitalSurface::Surfel
Surfel;
125 typedef typename RealVector::Component
Scalar;
139 BOOST_STATIC_ASSERT(( KSpace::dimension == 2 ));
166 ASSERT( ok ); boost::ignore_unused_variable_warning( ok );
188 template <
typename TVCMOnDigitalSurface>
191 typedef typename VCMOnDigitalSurface::KSpace
KSpace;
192 typedef typename VCMOnDigitalSurface::Surfel
Surfel;
194 typedef typename RealVector::Component
Scalar;
208 BOOST_STATIC_ASSERT(( KSpace::dimension == 3 ));
235 ASSERT( ok ); boost::ignore_unused_variable_warning( ok );
257 template <
typename TVCMOnDigitalSurface>
260 typedef typename VCMOnDigitalSurface::KSpace
KSpace;
261 typedef typename VCMOnDigitalSurface::Surfel
Surfel;
263 typedef typename RealVector::Component
Scalar;
277 BOOST_STATIC_ASSERT(( KSpace::dimension == 3 ));
304 ASSERT( ok ); boost::ignore_unused_variable_warning( ok );
325 template <
typename TVCMOnDigitalSurface>
328 typedef typename VCMOnDigitalSurface::KSpace
KSpace;
329 typedef typename VCMOnDigitalSurface::Surfel
Surfel;
331 typedef typename RealVector::Component
Scalar;
345 BOOST_STATIC_ASSERT(( KSpace::dimension == 3 ));
372 ASSERT( ok ); boost::ignore_unused_variable_warning( ok );
383 return (k1+k2) * 0.5;
401 #endif // !defined VCMGeometricFunctors_h
403 #undef VCMGeometricFunctors_RECURSES
404 #endif // else defined(VCMGeometricFunctors_RECURSES)
VCMAbsoluteCurvatureFunctor(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface=0)
void attach(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface)
void attach(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface)
RealVector::Component Scalar
Aim: A functor Surfel -> Quantity that returns the absolute curvature at given surfel. This class has meaning only in 2D.
RealVector::Component Scalar
VCMOnDigitalSurface::KSpace KSpace
RealVector::Component Scalar
VCMOnDigitalSurface::Surfel Surfel
TVCMOnDigitalSurface VCMOnDigitalSurface
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Quantity operator()(const Surfel &s) const
VCMFirstPrincipalAbsoluteCurvatureFunctor(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface=0)
void attach(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface)
VCMMeanAbsoluteCurvatures3DFunctor(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface=0)
CountedConstPtrOrConstPtr< VCMOnDigitalSurface > myVCMOnDigitalSurface
The shape of interest.
VCMSecondPrincipalAbsoluteCurvatureFunctor(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface=0)
VCMOnDigitalSurface::KSpace KSpace
Aim: A functor Surfel -> Quantity that returns the outer normal vector at given surfel.
Quantity operator()(const Surfel &s) const
VCMOnDigitalSurface::VectorN RealVector
Aim: A functor Surfel -> Quantity that returns the first principal absolute curvature (greatest curva...
Quantity operator()(const Surfel &s) const
VCMOnDigitalSurface::KSpace KSpace
VCMOnDigitalSurface::Surfel Surfel
CountedConstPtrOrConstPtr< VCMOnDigitalSurface > myVCMOnDigitalSurface
The shape of interest.
VCMOnDigitalSurface::VectorN RealVector
Aim: A functor Surfel -> Quantity that returns the second principal absolute curvature (smallest curv...
TVCMOnDigitalSurface VCMOnDigitalSurface
VCMNormalVectorFunctor(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface=0)
VCMOnDigitalSurface::VectorN RealVector
TVCMOnDigitalSurface VCMOnDigitalSurface
void attach(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface)
VCMOnDigitalSurface::Surfel Surfel
RealVector::Component Scalar
DGtal is the top-level namespace which contains all DGtal functions and types.
VCMOnDigitalSurface::Surfel Surfel
VCMOnDigitalSurface::KSpace KSpace
TVCMOnDigitalSurface VCMOnDigitalSurface
VCMOnDigitalSurface::KSpace KSpace
TVCMOnDigitalSurface VCMOnDigitalSurface
RealVector::Component Scalar
CountedConstPtrOrConstPtr< VCMOnDigitalSurface > myVCMOnDigitalSurface
The shape of interest.
CountedConstPtrOrConstPtr< VCMOnDigitalSurface > myVCMOnDigitalSurface
The shape of interest.
CountedConstPtrOrConstPtr< VCMOnDigitalSurface > myVCMOnDigitalSurface
The shape of interest.
Aim: A functor Surfel -> Quantity that returns the mean of absolute curvatures at given surfel: (abs(...
VCMOnDigitalSurface::Surfel Surfel
VCMOnDigitalSurface::VectorN RealVector
void attach(ConstAlias< VCMOnDigitalSurface > aVCMOnDigitalSurface)
VCMOnDigitalSurface::VectorN RealVector
Quantity operator()(const Surfel &s) const
Quantity operator()(const Surfel &s) const