Ponca  94e4a36411c3364f6192f97adfa8ceee67834d6e
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T > Class Template Reference

Compute a Weingarten map from the spatial derivatives of the normal field \( N \). More...

#include <weingarten.h>

+ Inheritance diagram for Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >:
+ Collaboration diagram for Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, 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 MatrixType = typename DataPoint::MatrixType
 Alias to matrix type.
 
using ScalarArray = typename Base::ScalarArray
 Alias to scalar derivatives array.
 
using VectorArray = typename Base::VectorArray
 Alias to vector derivatives array.
 
using Matrix2 = Eigen::Matrix< Scalar, 2, 2 >
 

Public Member Functions

NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T > & normalDerivativeWeingartenEstimator ()
 Explicit conversion to NormalDerivativeWeingartenEstimator , to access methods potentially hidden by heritage.
 
const NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T > & normalDerivativeWeingartenEstimator () const
 Explicit conversion to NormalDerivativeWeingartenEstimator , to access methods potentially hidden by heritage.
 
FIT_RESULT finalize ()
 Finalize the procedure.
 
Matrix2 weingartenMap () const
 Returns the Weingarten Map.
 
template<typename Matrix2Derived >
void weingartenMap (Matrix2Derived &w) const
 Returns the Weingarten Map.
 
VectorType worldToTangentPlane (const VectorType &_q, bool _isPositionVector=true) const
 Express a point in ambient space relatively to the tangent plane.
 
VectorType tangentPlaneToWorld (const VectorType &_q, bool _isPositionVector=true) const
 Transform a point from the tangent plane [h, u, v]^T to ambient space.
 

Protected Types

enum  { Check = Base::PROVIDES_NORMAL_DERIVATIVE , PROVIDES_WEINGARTEN_MAP , PROVIDES_TANGENT_PLANE_BASIS }
 
using Base = T
 Base class of the procedure.
 

Detailed Description

template<class DataPoint, class _NFilter, int DiffType, typename T>
class Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >

Compute a Weingarten map from the spatial derivatives of the normal field \( N \).

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

A tangent plane aligned with the map is also computed during the process.

Note
Computations are marked as UNSTABLE if the computed basis does not properly align with the gradient of the fitted primitive.

This primitive provides:

PROVIDES_WEINGARTEN_MAP, PROVIDES_TANGENT_PLANE_BASIS

This primitive requires:

PROVIDES_NORMAL_DERIVATIVE 

Definition at line 107 of file weingarten.h.

Member Typedef Documentation

◆ Base

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::Base = T
protected

Base class of the procedure.

Definition at line 109 of file weingarten.h.

◆ Matrix2

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

Definition at line 112 of file weingarten.h.

◆ MatrixType

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::MatrixType = typename DataPoint::MatrixType

Alias to matrix type.

Definition at line 110 of file weingarten.h.

◆ NeighborFilter

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::NeighborFilter = typename Base::NeighborFilter

Alias to the filter applied on the neighbors.

Definition at line 109 of file weingarten.h.

◆ Scalar

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::Scalar = typename DataPoint::Scalar

Alias to scalar type.

Definition at line 109 of file weingarten.h.

◆ ScalarArray

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::ScalarArray = typename Base::ScalarArray

Alias to scalar derivatives array.

Definition at line 111 of file weingarten.h.

◆ VectorArray

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::VectorArray = typename Base::VectorArray

Alias to vector derivatives array.

Definition at line 111 of file weingarten.h.

◆ VectorType

template<class DataPoint , class _NFilter , int DiffType, typename T >
using Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::VectorType = typename Base::VectorType

Alias to vector type.

Definition at line 109 of file weingarten.h.

Member Enumeration Documentation

◆ anonymous enum

template<class DataPoint , class _NFilter , int DiffType, typename T >
anonymous enum
protected

Definition at line 117 of file weingarten.h.

Member Function Documentation

◆ finalize()

template<class DataPoint , class _NFilter , int DiffType, typename T >
FIT_RESULT Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::finalize ( )
inline

Finalize the procedure.

Returns
Fitting Status
Warning
Must be called be for any use of the fitting output

Definition at line 81 of file weingarten.hpp.

◆ normalDerivativeWeingartenEstimator() [1/2]

template<class DataPoint , class _NFilter , int DiffType, typename T >
NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T > & Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::normalDerivativeWeingartenEstimator ( )
inline

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

Definition at line 127 of file weingarten.h.

◆ normalDerivativeWeingartenEstimator() [2/2]

template<class DataPoint , class _NFilter , int DiffType, typename T >
const NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T > & Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::normalDerivativeWeingartenEstimator ( ) const
inline

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

Definition at line 127 of file weingarten.h.

◆ tangentPlaneToWorld()

template<class DataPoint , class _NFilter , int DiffType, typename T >
NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::VectorType Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::tangentPlaneToWorld ( const VectorType _q,
bool  _isPositionVector = true 
) const
inline

Transform a point from the tangent plane [h, u, v]^T to ambient space.

Parameters
_qVector expressed in local tangent frame
_isPositionVectorIndicate if the input vector _q is a position that is influenced by translations (e.g., in contrast to displacement or normal vectors)
Returns
Vector expressed in ambient space

Definition at line 157 of file weingarten.hpp.

◆ weingartenMap() [1/2]

template<class DataPoint , class _NFilter , int DiffType, typename T >
NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::Matrix2 Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::weingartenMap ( ) const
inline

Returns the Weingarten Map.

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

Definition at line 73 of file weingarten.hpp.

◆ weingartenMap() [2/2]

template<class DataPoint , class _NFilter , int DiffType, typename T >
template<typename Matrix2Derived >
void Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, 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 115 of file weingarten.hpp.

◆ worldToTangentPlane()

template<class DataPoint , class _NFilter , int DiffType, typename T >
NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::VectorType Ponca::NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T >::worldToTangentPlane ( const VectorType _q,
bool  _isPositionVector = true 
) const
inline

Express a point in ambient space relatively to the tangent plane.

Output vector is: [h, u, v]^T, where u, v are 2d coordinates on the plane, and h the height of the sample.

Parameters
_qVector expressed in ambient space
_isPositionVectorIndicate if the input vector _q is a position that is influenced by translations (e.g., in contrast to displacement or normal vectors)
Returns
Vector expressed in local tangent frame

Definition at line 149 of file weingarten.hpp.