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

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

#include <weingarten.h>

+ Inheritance diagram for Ponca::internal::WeingartenCurvatureEstimatorBase< DataPoint, _NFilter, T >:
+ Collaboration diagram for Ponca::internal::WeingartenCurvatureEstimatorBase< 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

FIT_RESULT finalize ()
 Finalize the procedure.
 

Protected Types

enum  { Check }
 
using Base = T
 Base class of the procedure.
 

Detailed Description

template<class DataPoint, class _NFilter, typename T>
class Ponca::internal::WeingartenCurvatureEstimatorBase< DataPoint, _NFilter, 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:

PROVIDES_TANGENT_PLANE_BASIS, PROVIDES_WEINGARTEN_MAP, PROVIDES_PRINCIPAL_CURVATURES 

Definition at line 171 of file weingarten.h.

Member Typedef Documentation

◆ Base

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

Base class of the procedure.

Definition at line 173 of file weingarten.h.

◆ Matrix2

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

Definition at line 174 of file weingarten.h.

◆ NeighborFilter

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

Alias to the filter applied on the neighbors.

Definition at line 173 of file weingarten.h.

◆ Scalar

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

Alias to scalar type.

Definition at line 173 of file weingarten.h.

◆ VectorType

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

Alias to vector type.

Definition at line 173 of file weingarten.h.

Member Enumeration Documentation

◆ anonymous enum

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

Definition at line 178 of file weingarten.h.

Member Function Documentation

◆ finalize()

template<class DataPoint , class _NFilter , typename T >
FIT_RESULT Ponca::internal::WeingartenCurvatureEstimatorBase< DataPoint, _NFilter, T >::finalize ( )
inline

Finalize the procedure.

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

Definition at line 167 of file weingarten.hpp.