Ponca  97e1aa5c56f0b8ca113a6b95d36cc3b5cde35a4e
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 CLASSNAME, to access methods potentially hidden by heritage.
 
const MongePatch< DataPoint, _NFilter, T > & mongePatchPrimitive () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
 
MongePatch< DataPoint, _NFilter, T > & implicitPrimitive ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
 
const MongePatch< DataPoint, _NFilter, T > & implicitPrimitive () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
 
MongePatch< DataPoint, _NFilter, T > & firstFondamentalFormComponent ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
 
const MongePatch< DataPoint, _NFilter, T > & firstFondamentalFormComponent () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
 
MongePatch< DataPoint, _NFilter, T > & secondFondamentalFormComponent ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
 
const MongePatch< DataPoint, _NFilter, T > & secondFondamentalFormComponent () const
 Explicit conversion to CLASSNAME, 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

using Base = T
 Base class of the procedure.
 

Detailed Description

template<class DataPoint, class _NFilter, typename T>
requires ProvidesTangentPlaneBasis<T>&& ProvidesHeightField<T>&& Is3D<DataPoint>
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, ProvidesFirstFondamentalFormComponents,
ProvidesSecondFondamentalFormComponents

This primitive requires:

ProvidesPlane, ProvidesTangentPlaneBasis, PROVIDES_HEIGHTFIELD 

Definition at line 42 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 44 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 44 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 44 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 44 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 46 of file mongePatch.h.

Member Function Documentation

◆ firstFondamentalFormComponent() [1/2]

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

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

Definition at line 50 of file mongePatch.h.

◆ firstFondamentalFormComponent() [2/2]

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

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

Definition at line 50 of file mongePatch.h.

◆ 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 100 of file mongePatch.h.

◆ implicitPrimitive() [1/2]

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

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

Definition at line 49 of file mongePatch.h.

◆ implicitPrimitive() [2/2]

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

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

Definition at line 49 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 CLASSNAME, to access methods potentially hidden by heritage.

Definition at line 48 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 CLASSNAME, to access methods potentially hidden by heritage.

Definition at line 48 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 55 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 59 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 78 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 84 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 90 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 69 of file mongePatch.h.

◆ secondFondamentalFormComponent() [1/2]

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

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

Definition at line 51 of file mongePatch.h.

◆ secondFondamentalFormComponent() [2/2]

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

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

Definition at line 51 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 110 of file mongePatch.h.