Ponca  6f9f1b59d7c8c4654a710cfcef7342f4f5c79ba1
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > Class Template Reference

Compute a Weingarten map from fundamental forms. More...

#include <weingarten.h>

+ Inheritance diagram for Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >:
+ Collaboration diagram for Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >:

Public Types

using Scalar = typename DataPoint::Scalar
 Alias to scalar type.
 
using VectorType = typename Base::VectorType
 Alias to vector type.
 
using NeighborFilter = typename Base::NeighborFilter
 Alias to the filter applied on the neighbors.
 
using Matrix2 = Eigen::Matrix< Scalar, 2, 2 >
 

Public Member Functions

FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & fundamentalFormWeingartenEstimator ()
 Explicit conversion to FundamentalFormWeingartenEstimator , to access methods potentially hidden by heritage.
 
const FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & fundamentalFormWeingartenEstimator () const
 Explicit conversion to FundamentalFormWeingartenEstimator , to access methods potentially hidden by heritage.
 
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & firstFondamentalFormComponent ()
 Explicit conversion to FundamentalFormWeingartenEstimator , to access methods potentially hidden by heritage.
 
const FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & firstFondamentalFormComponent () const
 Explicit conversion to FundamentalFormWeingartenEstimator , to access methods potentially hidden by heritage.
 
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & secondFondamentalFormComponent ()
 Explicit conversion to FundamentalFormWeingartenEstimator , to access methods potentially hidden by heritage.
 
const FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & secondFondamentalFormComponent () const
 Explicit conversion to FundamentalFormWeingartenEstimator , to access methods potentially hidden by heritage.
 
Matrix2 firstFundamentalForm () const
 Assembles and returns the first fundamental form from the base class.
 
template<typename Matrix2Derived >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
void firstFundamentalForm (Matrix2Derived &first) const
 Assembles and returns the first fundamental form from the base class.
 
Matrix2 secondFundamentalForm () const
 Assembles and returns the second fundamental form from the base class.
 
template<typename Matrix2Derived >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
void secondFundamentalForm (Matrix2Derived &second) const
 Assembles and returns the second fundamental form from the base class.
 
Matrix2 weingartenMap () const
 Returns the Weingarten Map.
 
template<typename Matrix2Derived >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
void weingartenMap (Matrix2Derived &w) const
 Returns the Weingarten Map.
 
Scalar kMean () const
 Returns an estimate of the mean curvature directly from the fundamental forms.
 
Scalar GaussianCurvature () const
 Returns an estimate of the Gaussian curvature directly from the fundamental forms.
 

Protected Types

using Base = T
 Base class of the procedure.
 

Detailed Description

template<class DataPoint, class _NFilter, typename T>
requires ProvidesFirstFondamentalFormComponents<T>&& ProvidesSecondFondamentalFormComponents<T>
class Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >

Compute a Weingarten map from fundamental forms.

The Weingarten map, also called Shape Operator, is defined in its matrix form as

\[ \text{W} = \text{F}_\text{I}^{-1}\text{F}_\text{II}, \]

with \(\text{F}_\text{I}, \text{F}_\text{II}\) the first and second fundamental forms, respectively.

See also
WeingartenCurvatureEstimator and WeingartenCurvatureEstimatorDer to compute curvatures from the weingarten map

This class also provides mean and Gaussian curvature directly from the fundamental forms.

This primitive provides:

PROVIDES_WEINGARTEN_MAP 

This primitive requires:

ProvidesFirstFondamentalFormComponents, ProvidesSecondFondamentalFormComponents 

Definition at line 39 of file weingarten.h.

Member Typedef Documentation

◆ Base

template<class DataPoint , class _NFilter , typename T >
using Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Base = T
protected

Base class of the procedure.

Definition at line 41 of file weingarten.h.

◆ Matrix2

template<class DataPoint , class _NFilter , typename T >
using Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Matrix2 = Eigen::Matrix<Scalar, 2, 2>

Definition at line 42 of file weingarten.h.

◆ NeighborFilter

template<class DataPoint , class _NFilter , typename T >
using Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::NeighborFilter = typename Base::NeighborFilter

Alias to the filter applied on the neighbors.

Definition at line 41 of file weingarten.h.

◆ Scalar

template<class DataPoint , class _NFilter , typename T >
using Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Scalar = typename DataPoint::Scalar

Alias to scalar type.

Definition at line 41 of file weingarten.h.

◆ VectorType

template<class DataPoint , class _NFilter , typename T >
using Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::VectorType = typename Base::VectorType

Alias to vector type.

Definition at line 41 of file weingarten.h.

Member Function Documentation

◆ firstFondamentalFormComponent() [1/2]

template<class DataPoint , class _NFilter , typename T >
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::firstFondamentalFormComponent ( )
inline

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

Definition at line 47 of file weingarten.h.

◆ firstFondamentalFormComponent() [2/2]

template<class DataPoint , class _NFilter , typename T >
const FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::firstFondamentalFormComponent ( ) const
inline

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

Definition at line 47 of file weingarten.h.

◆ firstFundamentalForm() [1/2]

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Matrix2 Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::firstFundamentalForm ( ) const
inline

Assembles and returns the first fundamental form from the base class.

Returns
first fundamental form
See also
firstFundamentalForm(Matrix2& first) for an in-place version

Definition at line 10 of file weingarten.hpp.

◆ firstFundamentalForm() [2/2]

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
template<typename Matrix2Derived >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
void Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::firstFundamentalForm ( Matrix2Derived first) const
inline

Assembles and returns the first fundamental form from the base class.

Template Parameters
Matrix2DerivedInput matrix type that must have same interface than Matrix2

Definition at line 20 of file weingarten.hpp.

◆ fundamentalFormWeingartenEstimator() [1/2]

template<class DataPoint , class _NFilter , typename T >
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::fundamentalFormWeingartenEstimator ( )
inline

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

Definition at line 46 of file weingarten.h.

◆ fundamentalFormWeingartenEstimator() [2/2]

template<class DataPoint , class _NFilter , typename T >
const FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::fundamentalFormWeingartenEstimator ( ) const
inline

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

Definition at line 46 of file weingarten.h.

◆ GaussianCurvature()

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Scalar Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::GaussianCurvature ( ) const
inline

Returns an estimate of the Gaussian curvature directly from the fundamental forms.

Definition at line 77 of file weingarten.hpp.

◆ kMean()

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Scalar Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::kMean ( ) const
inline

Returns an estimate of the mean curvature directly from the fundamental forms.

Definition at line 66 of file weingarten.hpp.

◆ secondFondamentalFormComponent() [1/2]

template<class DataPoint , class _NFilter , typename T >
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::secondFondamentalFormComponent ( )
inline

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

Definition at line 48 of file weingarten.h.

◆ secondFondamentalFormComponent() [2/2]

template<class DataPoint , class _NFilter , typename T >
const FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T > & Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::secondFondamentalFormComponent ( ) const
inline

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

Definition at line 48 of file weingarten.h.

◆ secondFundamentalForm() [1/2]

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Matrix2 Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::secondFundamentalForm ( ) const
inline

Assembles and returns the second fundamental form from the base class.

Returns
second fundamental form
See also
secondFundamentalForm(Matrix2& second) for an in-place version

Definition at line 29 of file weingarten.hpp.

◆ secondFundamentalForm() [2/2]

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
template<typename Matrix2Derived >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
void Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::secondFundamentalForm ( Matrix2Derived second) const
inline

Assembles and returns the second fundamental form from the base class.

Template Parameters
Matrix2DerivedInput matrix type that must have same interface than Matrix2

Definition at line 39 of file weingarten.hpp.

◆ weingartenMap() [1/2]

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::Matrix2 Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::weingartenMap ( ) const
inline

Returns the Weingarten Map.

Returns
Weingarten Map
See also
weingartenMap(Matrix2& w) for an in-place version

Definition at line 48 of file weingarten.hpp.

◆ weingartenMap() [2/2]

template<class DataPoint , class _NFilter , typename T >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
template<typename Matrix2Derived >
requires FUNDAMENTAL_FORM_WEINGARTEN_ESTIMATOR_REQUIREMENTS
void Ponca::FundamentalFormWeingartenEstimator< DataPoint, _NFilter, T >::weingartenMap ( Matrix2Derived w) const
inline

Returns the Weingarten Map.

Template Parameters
Matrix2DerivedInput matrix type that must have same interface than Matrix2

Definition at line 58 of file weingarten.hpp.