Ponca  19ef58fd3760f23a8af99a5eeac4f934757e30d9
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::QuadraticHeightField< 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_u u + h_v v + h_c \). More...

#include <heightField.h>

+ Inheritance diagram for Ponca::QuadraticHeightField< DataPoint, _NFilter, T >:
+ Collaboration diagram for Ponca::QuadraticHeightField< 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, 6, 1 >
 

Public Member Functions

 QuadraticHeightField ()
 Default constructor.
 
QuadraticHeightField< DataPoint, _NFilter, T > & quadraticHeightField ()
 Explicit conversion to QuadraticHeightField , to access methods potentially hidden by heritage.
 
const QuadraticHeightField< DataPoint, _NFilter, T > & quadraticHeightField () const
 Explicit conversion to QuadraticHeightField , 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 QuadraticHeightField< DataPoint, _NFilter, T > &other) const
 
bool operator!= (const QuadraticHeightField< DataPoint, _NFilter, T > &other) const
 Comparison operator, convenience function.
 
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_u () const
 
const Scalarh_v () 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 + h_u \).
 
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 + h_v \).
 
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

enum  { Check = Base::PROVIDES_HEIGHTFIELD , PROVIDES_QUADRIC_HEIGHTFIELD }
 
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, h_u, h_v, h_c]\).
 

Detailed Description

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

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

See also
MongePatchPrimitive

This primitive provides:

PROVIDES_QUADRIC_HEIGHTFIELD 

Definition at line 81 of file heightField.h.

Member Typedef Documentation

◆ Base

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

Base class of the procedure.

Definition at line 83 of file heightField.h.

◆ HeightFieldCoefficients

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

Definition at line 84 of file heightField.h.

◆ NeighborFilter

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

Alias to the filter applied on the neighbors.

Definition at line 83 of file heightField.h.

◆ Scalar

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

Alias to scalar type.

Definition at line 83 of file heightField.h.

◆ VectorType

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

Alias to vector type.

Definition at line 83 of file heightField.h.

Member Enumeration Documentation

◆ anonymous enum

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

Provides quadric heightfield API.

Definition at line 88 of file heightField.h.

Constructor & Destructor Documentation

◆ QuadraticHeightField()

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

Default constructor.

Definition at line 98 of file heightField.h.

Member Function Documentation

◆ coeffs()

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

Definition at line 105 of file heightField.h.

◆ d2h_duu()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::QuadraticHeightField< 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 161 of file heightField.h.

◆ d2h_dvv()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::QuadraticHeightField< 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 167 of file heightField.h.

◆ dh_du()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::QuadraticHeightField< 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 + h_u \).

Definition at line 149 of file heightField.h.

◆ dh_dv()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::QuadraticHeightField< 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 + h_v \).

Definition at line 155 of file heightField.h.

◆ h_c()

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

Definition at line 146 of file heightField.h.

◆ h_u()

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

Definition at line 144 of file heightField.h.

◆ h_uu()

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

Definition at line 141 of file heightField.h.

◆ h_uv()

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

Definition at line 143 of file heightField.h.

◆ h_v()

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

Definition at line 145 of file heightField.h.

◆ h_vv()

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

Definition at line 142 of file heightField.h.

◆ height()

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

Height value at local uv.

Definition at line 136 of file heightField.h.

◆ init()

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

Set the scalar field values to 0.

Definition at line 108 of file heightField.h.

◆ isValid()

template<class DataPoint , class _NFilter , typename T >
bool Ponca::QuadraticHeightField< 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 117 of file heightField.h.

◆ operator!=()

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

Comparison operator, convenience function.

Definition at line 129 of file heightField.h.

◆ operator==()

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

Definition at line 122 of file heightField.h.

◆ quadraticHeightField() [1/2]

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

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

Definition at line 100 of file heightField.h.

◆ quadraticHeightField() [2/2]

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

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

Definition at line 100 of file heightField.h.

◆ setQuadric()

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

Set the scalar field values.

Definition at line 103 of file heightField.h.

Member Data Documentation

◆ m_coeffs

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

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

Definition at line 94 of file heightField.h.