Ponca  93eea5457c48839cb5d16642765afa89fc7cfe66
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::MongePatch< DataPoint, _NFilter, T > Class Template Reference

Monge Patch primitive, defined as \( \mathbf{x}(u,v)= (u,v,h(u,v)) \), with \(h(u,v)\) defined by a Base class. More...

#include <mongePatch.h>

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

Public Member Functions

 MongePatch ()
 Default constructor.
 
MongePatch< DataPoint, _NFilter, T > & mongePatchPrimitive ()
 Explicit conversion to MongePatch , to access methods potentially hidden by heritage.
 
const MongePatch< DataPoint, _NFilter, T > & mongePatchPrimitive () const
 Explicit conversion to MongePatch , to access methods potentially hidden by heritage.
 
Scalar potential () const
 Value of the scalar field at the evaluation point.
 
Scalar potential (const VectorType &_q) const
 Value of the scalar field at a given point.
 
VectorType project (const VectorType &_q) const
 Orthogonal projection on the patch.
 
VectorType primitiveGradient () const
 Scalar field gradient direction at the basis center.
 
VectorType primitiveGradient (const VectorType &_q) const
 Scalar field gradient direction at \( \mathbf{q}\).
 
VectorType primitiveGradientLocal (const VectorType &_localQ=VectorType::Zero()) const
 Scalar field gradient direction, both input and output vectors are expressed in the local basis.
 
void firstFundamentalFormComponents (Scalar &E, Scalar &F, Scalar &G) const
 
void secondFundamentalFormComponents (Scalar &L, Scalar &M, Scalar &N) const
 

Protected Types

enum  { Check , PROVIDES_MONGE_PATCH , PROVIDES_FIRST_FUNDAMENTAL_FORM_COMPONENTS , PROVIDES_SECOND_FUNDAMENTAL_FORM_COMPONENTS }
 
using Base = T
 Base class of the procedure.
 

Detailed Description

template<class DataPoint, class _NFilter, typename T>
class Ponca::MongePatch< DataPoint, _NFilter, T >

Monge Patch primitive, defined as \( \mathbf{x}(u,v)= (u,v,h(u,v)) \), with \(h(u,v)\) defined by a Base class.

See also
MongePatchQuadraticFitImpl and MongePatchRestrictedQuadraticFitImpl
Warning
Internally, 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 provides:

PROVIDES_MONGE_PATCH, PROVIDES_FIRST_FUNDAMENTAL_FORM_COMPONENTS, PROVIDES_SECOND_FUNDAMENTAL_FORM_COMPONENTS 

This primitive requires:

PROVIDES_PLANE, PROVIDES_TANGENT_PLANE_BASIS, PROVIDES_HEIGHTFIELD 

Definition at line 36 of file mongePatch.h.

Member Typedef Documentation

◆ Base

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

Base class of the procedure.

Definition at line 38 of file mongePatch.h.

◆ NeighborFilter

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

Alias to the filter applied on the neighbors.

Definition at line 38 of file mongePatch.h.

◆ Scalar

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

Alias to scalar type.

Definition at line 38 of file mongePatch.h.

◆ VectorType

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

Alias to vector type.

Definition at line 38 of file mongePatch.h.

Member Enumeration Documentation

◆ anonymous enum

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

Requires a heightfield function.

PROVIDES_MONGE_PATCH 

Provides MongePatch API.

PROVIDES_FIRST_FUNDAMENTAL_FORM_COMPONENTS 

Provides first fundamental form.

PROVIDES_SECOND_FUNDAMENTAL_FORM_COMPONENTS 

Provides second fundamental form.

Definition at line 42 of file mongePatch.h.

Constructor & Destructor Documentation

◆ MongePatch()

template<class DataPoint , class _NFilter , typename T >
Ponca::MongePatch< DataPoint, _NFilter, T >::MongePatch ( )
inline

Default constructor.

Definition at line 54 of file mongePatch.h.

Member Function Documentation

◆ firstFundamentalFormComponents()

template<class DataPoint , class _NFilter , typename T >
void Ponca::MongePatch< DataPoint, _NFilter, T >::firstFundamentalFormComponents ( Scalar E,
Scalar F,
Scalar G 
) const
inline

Definition at line 104 of file mongePatch.h.

◆ mongePatchPrimitive() [1/2]

template<class DataPoint , class _NFilter , typename T >
MongePatch< DataPoint, _NFilter, T > & Ponca::MongePatch< DataPoint, _NFilter, T >::mongePatchPrimitive ( )
inline

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

Definition at line 56 of file mongePatch.h.

◆ mongePatchPrimitive() [2/2]

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

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

Definition at line 56 of file mongePatch.h.

◆ potential() [1/2]

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::MongePatch< DataPoint, _NFilter, T >::potential ( ) const
inline

Value of the scalar field at the evaluation point.

See also
method #isSigned of the fit to check if the sign is reliable

Definition at line 60 of file mongePatch.h.

◆ potential() [2/2]

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::MongePatch< DataPoint, _NFilter, T >::potential ( const VectorType _q) const
inline

Value of the scalar field at a given point.

See also
method #isSigned of the plane fit to check if the sign is reliable

Definition at line 67 of file mongePatch.h.

◆ primitiveGradient() [1/2]

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::MongePatch< DataPoint, _NFilter, T >::primitiveGradient ( ) const
inline

Scalar field gradient direction at the basis center.

Definition at line 83 of file mongePatch.h.

◆ primitiveGradient() [2/2]

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::MongePatch< DataPoint, _NFilter, T >::primitiveGradient ( const VectorType _q) const
inline

Scalar field gradient direction at \( \mathbf{q}\).

Definition at line 89 of file mongePatch.h.

◆ primitiveGradientLocal()

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::MongePatch< DataPoint, _NFilter, T >::primitiveGradientLocal ( const VectorType _localQ = VectorType::Zero()) const
inline

Scalar field gradient direction, both input and output vectors are expressed in the local basis.

Definition at line 95 of file mongePatch.h.

◆ project()

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::MongePatch< DataPoint, _NFilter, T >::project ( const VectorType _q) const
inline

Orthogonal projection on the patch.

Given a point p and its local representation q, project the point such that \(h(q.x(),q.y())-q.z()=0\)

Definition at line 75 of file mongePatch.h.

◆ secondFundamentalFormComponents()

template<class DataPoint , class _NFilter , typename T >
void Ponca::MongePatch< DataPoint, _NFilter, T >::secondFundamentalFormComponents ( Scalar L,
Scalar M,
Scalar N 
) const
inline

Definition at line 114 of file mongePatch.h.