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

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 MongePatch , 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 MongePatch , 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 MongePatch , 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 MongePatch , 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 MongePatch , 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 MongePatch , 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 MongePatch , 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 MongePatch , 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.