Ponca  4a9354998d048bf882a3ee9bac8105216fa08d13
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T > Class Template Reference

Quadratic height field defined as \(h(u,v)=h_{uu}u^2 + h_{vv}v^2 + h_{uv}uv + h_c \). More...

#include <heightField.h>

+ Inheritance diagram for Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >:
+ Collaboration diagram for Ponca::RestrictedQuadraticHeightField< 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 HeightFieldCoefficients = Eigen::Matrix< Scalar, 4, 1 >
 

Public Member Functions

 RestrictedQuadraticHeightField ()
 Default constructor.
 
QuadraticHeightField< DataPoint, _NFilter, T > & heightField ()
 Explicit conversion to QuadraticHeightField , to access methods potentially hidden by heritage.
 
const QuadraticHeightField< DataPoint, _NFilter, T > & heightField () const
 Explicit conversion to QuadraticHeightField , to access methods potentially hidden by heritage.
 
RestrictedQuadraticHeightField< DataPoint, _NFilter, T > & quadraticHeightField ()
 Explicit conversion to RestrictedQuadraticHeightField , to access methods potentially hidden by heritage.
 
const RestrictedQuadraticHeightField< DataPoint, _NFilter, T > & quadraticHeightField () const
 Explicit conversion to RestrictedQuadraticHeightField , to access methods potentially hidden by heritage.
 
void setQuadric (const HeightFieldCoefficients &coeffs)
 Set the scalar field values.
 
const HeightFieldCoefficients & coeffs () const
 
void init ()
 Set the scalar field values to 0.
 
bool isValid () const
 Tell if the plane as been correctly set. Used to set CONFLICT_ERROR_FOUND during fitting.
 
bool operator== (const RestrictedQuadraticHeightField< DataPoint, _NFilter, T > &other) const
 
bool operator!= (const RestrictedQuadraticHeightField< DataPoint, _NFilter, T > &other) const
 Comparison operator, convenience function.
 
template<typename Other >
bool isApprox (const Other &other, const Scalar &epsilon=Eigen::NumTraits< Scalar >::dummy_precision()) const
 Approximate comparison operator operator.
 
Scalar height (Scalar u, Scalar v) const
 Height value at local uv.
 
const Scalarh_uu () const
 
const Scalarh_vv () const
 
const Scalarh_uv () const
 
const Scalarh_c () const
 
Scalar dh_du (Scalar u=Scalar(0), Scalar v=Scalar(0)) const
 Partial derivative \( \frac{\delta h }{\delta u} (u,v) = 2h_{uu} u + h_{uv} v\).
 
Scalar dh_dv (Scalar u=Scalar(0), Scalar v=Scalar(0)) const
 Partial derivative \( \frac{\delta h }{\delta v} (u,v) = 2h_{vv} v + h_{uv} u\).
 
Scalar d2h_duu (Scalar u=Scalar(0), Scalar v=Scalar(0)) const
 Second order partial derivative \( \frac{\delta h }{\delta u^2} (u,v) = 2h_{uu} \).
 
Scalar d2h_dvv (Scalar u=Scalar(0), Scalar v=Scalar(0)) const
 Second order partial derivative \( \frac{\delta h }{\delta v} (u,v) = 2h_{vv} \).
 

Protected Types

using Base = T
 Base class of the procedure.
 

Protected Attributes

HeightFieldCoefficients m_coeffs {HeightFieldCoefficients::Zero()}
 Quadric parameters, stored as \([h_uu, h_vv, h_uv]\).
 

Detailed Description

template<class DataPoint, class _NFilter, typename T>
requires ProvidesHeightFieldBase<T>
class Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >

Quadratic height field defined as \(h(u,v)=h_{uu}u^2 + h_{vv}v^2 + h_{uv}uv + h_c \).

See also
MongePatchPrimitive, QuadraticHeightField, HeightField

In contrast to QuadraticHeightField, this version does not hold the linear and constant terms are they are expected to be obtained from the support plane

This primitive provides:

PROVIDES_QUADRIC_HEIGHTFIELD 

Definition at line 203 of file heightField.h.

Member Typedef Documentation

◆ Base

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

Base class of the procedure.

Definition at line 205 of file heightField.h.

◆ HeightFieldCoefficients

template<class DataPoint , class _NFilter , typename T >
using Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::HeightFieldCoefficients = Eigen::Matrix<Scalar, 4, 1>

Definition at line 206 of file heightField.h.

◆ NeighborFilter

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

Alias to the filter applied on the neighbors.

Definition at line 205 of file heightField.h.

◆ Scalar

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

Alias to scalar type.

Definition at line 205 of file heightField.h.

◆ VectorType

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

Alias to vector type.

Definition at line 205 of file heightField.h.

Constructor & Destructor Documentation

◆ RestrictedQuadraticHeightField()

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

Default constructor.

Definition at line 215 of file heightField.h.

Member Function Documentation

◆ coeffs()

template<class DataPoint , class _NFilter , typename T >
const HeightFieldCoefficients & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::coeffs ( ) const
inline

Definition at line 223 of file heightField.h.

◆ d2h_duu()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::d2h_duu ( Scalar  u = Scalar(0),
Scalar  v = Scalar(0) 
) const
inline

Second order partial derivative \( \frac{\delta h }{\delta u^2} (u,v) = 2h_{uu} \).

Definition at line 285 of file heightField.h.

◆ d2h_dvv()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::d2h_dvv ( Scalar  u = Scalar(0),
Scalar  v = Scalar(0) 
) const
inline

Second order partial derivative \( \frac{\delta h }{\delta v} (u,v) = 2h_{vv} \).

Definition at line 291 of file heightField.h.

◆ dh_du()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::dh_du ( Scalar  u = Scalar(0),
Scalar  v = Scalar(0) 
) const
inline

Partial derivative \( \frac{\delta h }{\delta u} (u,v) = 2h_{uu} u + h_{uv} v\).

Definition at line 273 of file heightField.h.

◆ dh_dv()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::dh_dv ( Scalar  u = Scalar(0),
Scalar  v = Scalar(0) 
) const
inline

Partial derivative \( \frac{\delta h }{\delta v} (u,v) = 2h_{vv} v + h_{uv} u\).

Definition at line 279 of file heightField.h.

◆ h_c()

template<class DataPoint , class _NFilter , typename T >
const Scalar & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::h_c ( ) const
inline

Definition at line 270 of file heightField.h.

◆ h_uu()

template<class DataPoint , class _NFilter , typename T >
const Scalar & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::h_uu ( ) const
inline

Definition at line 267 of file heightField.h.

◆ h_uv()

template<class DataPoint , class _NFilter , typename T >
const Scalar & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::h_uv ( ) const
inline

Definition at line 269 of file heightField.h.

◆ h_vv()

template<class DataPoint , class _NFilter , typename T >
const Scalar & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::h_vv ( ) const
inline

Definition at line 268 of file heightField.h.

◆ height()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::height ( Scalar  u,
Scalar  v 
) const
inline

Height value at local uv.

Definition at line 262 of file heightField.h.

◆ heightField() [1/2]

template<class DataPoint , class _NFilter , typename T >
QuadraticHeightField< DataPoint, _NFilter, T > & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::heightField ( )
inline

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

Definition at line 217 of file heightField.h.

◆ heightField() [2/2]

template<class DataPoint , class _NFilter , typename T >
const QuadraticHeightField< DataPoint, _NFilter, T > & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::heightField ( ) const
inline

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

Definition at line 217 of file heightField.h.

◆ init()

template<class DataPoint , class _NFilter , typename T >
void Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::init ( )
inline

Set the scalar field values to 0.

Definition at line 226 of file heightField.h.

◆ isApprox()

template<class DataPoint , class _NFilter , typename T >
template<typename Other >
bool Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::isApprox ( const Other other,
const Scalar epsilon = Eigen::NumTraits<Scalar>::dummy_precision() 
) const
inline

Approximate comparison operator operator.

Definition at line 255 of file heightField.h.

◆ isValid()

template<class DataPoint , class _NFilter , typename T >
bool Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::isValid ( ) const
inline

Tell if the plane as been correctly set. Used to set CONFLICT_ERROR_FOUND during fitting.

Returns
false when called straight after init. Should be true after fitting

Definition at line 235 of file heightField.h.

◆ operator!=()

template<class DataPoint , class _NFilter , typename T >
bool Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::operator!= ( const RestrictedQuadraticHeightField< DataPoint, _NFilter, T > &  other) const
inline

Comparison operator, convenience function.

Definition at line 247 of file heightField.h.

◆ operator==()

template<class DataPoint , class _NFilter , typename T >
bool Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::operator== ( const RestrictedQuadraticHeightField< DataPoint, _NFilter, T > &  other) const
inline

Definition at line 240 of file heightField.h.

◆ quadraticHeightField() [1/2]

template<class DataPoint , class _NFilter , typename T >
RestrictedQuadraticHeightField< DataPoint, _NFilter, T > & Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::quadraticHeightField ( )
inline

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

Definition at line 218 of file heightField.h.

◆ quadraticHeightField() [2/2]

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

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

Definition at line 218 of file heightField.h.

◆ setQuadric()

template<class DataPoint , class _NFilter , typename T >
void Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::setQuadric ( const HeightFieldCoefficients &  coeffs)
inline

Set the scalar field values.

Definition at line 221 of file heightField.h.

Member Data Documentation

◆ m_coeffs

template<class DataPoint , class _NFilter , typename T >
HeightFieldCoefficients Ponca::RestrictedQuadraticHeightField< DataPoint, _NFilter, T >::m_coeffs {HeightFieldCoefficients::Zero()}
protected

Quadric parameters, stored as \([h_uu, h_vv, h_uv]\).

Definition at line 211 of file heightField.h.