Ponca  94e4a36411c3364f6192f97adfa8ceee67834d6e
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.
 
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.
 
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} \).
 
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_RESTRICTED_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]\).
 

Detailed Description

template<class DataPoint, class _NFilter, typename 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 172 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 174 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 175 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 174 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 174 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 174 of file heightField.h.

Member Enumeration Documentation

◆ anonymous enum

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

Provides quadric heightfield API.

Definition at line 179 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 189 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 196 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 240 of file heightField.h.

◆ d2h_duv()

template<class DataPoint , class _NFilter , typename T >
Scalar Ponca::RestrictedQuadraticHeightField< 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 248 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 244 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 232 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 236 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 229 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 226 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 228 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 227 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 222 of file heightField.h.

◆ heightTangentULocal()

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

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

Definition at line 252 of file heightField.h.

◆ heightTangentVLocal()

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

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

Definition at line 258 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 199 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 208 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 217 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 212 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 191 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 191 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 194 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 184 of file heightField.h.