Ponca  2cfe00173bb12dda99e12b2b48a0e1f683bc5cdd
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 > & heightField ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
const QuadraticHeightField< DataPoint, _NFilter, T > & heightField () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
QuadraticHeightField< DataPoint, _NFilter, T > & quadraticHeightField ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
const QuadraticHeightField< DataPoint, _NFilter, T > & quadraticHeightField () const
 Explicit conversion to CLASSNAME, 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 Scalar & h_uu () const
const Scalar & h_vv () const
const Scalar & h_uv () const
const Scalar & h_u () const
const Scalar & h_v () const
const Scalar & h_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

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>
requires ProvidesHeightFieldBase<T>&& Is3D<DataPoint>
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 82 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 84 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 85 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 84 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 84 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 84 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 93 of file heightField.h.

Member Function Documentation

◆ coeffs()

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

Definition at line 101 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
inlinenodiscard

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

Definition at line 157 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
inlinenodiscard

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

Definition at line 163 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
inlinenodiscard

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

Definition at line 145 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
inlinenodiscard

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

Definition at line 151 of file heightField.h.

◆ h_c()

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

Definition at line 142 of file heightField.h.

◆ h_u()

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

Definition at line 140 of file heightField.h.

◆ h_uu()

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

Definition at line 137 of file heightField.h.

◆ h_uv()

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

Definition at line 139 of file heightField.h.

◆ h_v()

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

Definition at line 141 of file heightField.h.

◆ h_vv()

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

Definition at line 138 of file heightField.h.

◆ height()

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

Height value at local uv.

Definition at line 132 of file heightField.h.

◆ heightField() [1/2]

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

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

Definition at line 95 of file heightField.h.

◆ heightField() [2/2]

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

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

Definition at line 95 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 104 of file heightField.h.

◆ isValid()

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

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 113 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
inlinenodiscard

Comparison operator, convenience function.

Definition at line 125 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
inlinenodiscard

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

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

Definition at line 96 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 99 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 89 of file heightField.h.