Ponca  4d2a58fa5c6375adef5c4b208f4d47e016cecd6d
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T > Struct Template Reference

Compute principal curvatures from a base class providing fundamental forms. More...

#include <weingarten.h>

+ Inheritance diagram for Ponca::WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T >:
+ Collaboration diagram for Ponca::WeingartenCurvatureEstimatorDer< 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 ScalarArray = typename Base::ScalarArray
 Alias to scalar derivatives array.
 
using VectorArray = typename Base::VectorArray
 Alias to vector derivatives array.
 
- Public Types inherited from Ponca::internal::WeingartenCurvatureEstimatorBase< DataPoint, _NFilter, T >
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

WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T > & meanCurvature ()
 Explicit conversion to WeingartenCurvatureEstimatorDer , to access methods potentially hidden by heritage.
 
const WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T > & meanCurvature () const
 Explicit conversion to WeingartenCurvatureEstimatorDer , to access methods potentially hidden by heritage.
 
WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T > & curvatureTensor ()
 Explicit conversion to WeingartenCurvatureEstimatorDer , to access methods potentially hidden by heritage.
 
const WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T > & curvatureTensor () const
 Explicit conversion to WeingartenCurvatureEstimatorDer , to access methods potentially hidden by heritage.
 
- Public Member Functions inherited from Ponca::internal::WeingartenCurvatureEstimatorBase< DataPoint, _NFilter, T >
FIT_RESULT finalize ()
 Finalize the procedure.
 
Scalar kmin () const
 Returns an estimate of the minimal principal curvature value.
 
Scalar kmax () const
 Returns an estimate of the maximal principal curvature value.
 
VectorType kminDirection () const
 Returns an estimate of the minimal principal curvature direction.
 
VectorType kmaxDirection () const
 Returns an estimate of the maximal principal curvature direction.
 
Scalar kMean () const
 Returns an estimate of the mean curvature.
 
Scalar GaussianCurvature () const
 Returns an estimate of the Gaussian curvature.
 

Protected Types

using Base = T
 Base class of the procedure.
 
- Protected Types inherited from Ponca::internal::WeingartenCurvatureEstimatorBase< DataPoint, _NFilter, T >
using Base = T
 Base class of the procedure.
 

Detailed Description

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

Compute principal curvatures from a base class providing fundamental forms.

Since the weingarten map is self-adjoint, a basis exists consisting of the eigenvectors of W. The eigenvectors, combined with their eigenvalues, define the principal curvature directions and values. The Gaussian and mean curvatures can be retrieved as \(\text{K} = \text{det}(\text{W})\) and \(\text{H} = \frac{1}{2}\text{trace}(\text{W})\), respectively.

Warning
To map from the tangent plane to ambiant space, we assume that the patch is represented as (h(u,v), u, v) because CovariancePlaneFitImpl::worldToTangentPlane() wraps up coordinates in this order (height, u and v).

This primitive requires:

ProvidesTangentPlaneBasis, PROVIDES_WEINGARTEN_MAP, ProvidesPrincipalCurvatures 

Definition at line 223 of file weingarten.h.

Member Typedef Documentation

◆ Base

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

Base class of the procedure.

Definition at line 225 of file weingarten.h.

◆ NeighborFilter

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

Alias to the filter applied on the neighbors.

Definition at line 225 of file weingarten.h.

◆ Scalar

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

Alias to scalar type.

Definition at line 225 of file weingarten.h.

◆ ScalarArray

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

Alias to scalar derivatives array.

Definition at line 226 of file weingarten.h.

◆ VectorArray

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

Alias to vector derivatives array.

Definition at line 226 of file weingarten.h.

◆ VectorType

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

Alias to vector type.

Definition at line 225 of file weingarten.h.

Member Function Documentation

◆ curvatureTensor() [1/2]

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

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

Definition at line 228 of file weingarten.h.

◆ curvatureTensor() [2/2]

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

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

Definition at line 228 of file weingarten.h.

◆ meanCurvature() [1/2]

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

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

Definition at line 227 of file weingarten.h.

◆ meanCurvature() [2/2]

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

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

Definition at line 227 of file weingarten.h.