Ponca  94e4a36411c3364f6192f97adfa8ceee67834d6e
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} \).
 
Scalar d2h_duv (Scalar u=Scalar(0), Scalar v=Scalar(0)) const
 Second order partial derivative \( \frac{\delta }{\delta v} (\frac{\delta h }{\delta u}) (u,v) = h_{uv} \).
 
VectorType heightTangentULocal (const VectorType &_localQ) const
 Local tangent vector in the direction of \(u\).
 
VectorType heightTangentVLocal (const VectorType &_localQ) const
 Local tangent vector in the direction of \(v\).
 

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 67 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 69 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 70 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 69 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 69 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 69 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 74 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 84 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 91 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 137 of file heightField.h.

◆ d2h_duv()

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

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

Definition at line 145 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 141 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 129 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 133 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 126 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 124 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 121 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 123 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 125 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 122 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 117 of file heightField.h.

◆ heightTangentULocal()

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::QuadraticHeightField< DataPoint, _NFilter, T >::heightTangentULocal ( const VectorType _localQ) const
inline

Local tangent vector in the direction of \(u\).

Definition at line 149 of file heightField.h.

◆ heightTangentVLocal()

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::QuadraticHeightField< DataPoint, _NFilter, T >::heightTangentVLocal ( const VectorType _localQ) const
inline

Local tangent vector in the direction of \(v\).

Definition at line 155 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 94 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 103 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 112 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 107 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 86 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 86 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 89 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 79 of file heightField.h.