Ponca  eb7239a9c07e156fb1edc6faac7fe89e2b256bda
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > Class Template Reference

[OrientedSphereFit Definition] More...

#include <orientedSphereFit.h>

Inheritance diagram for Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >:
Collaboration diagram for Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, 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 ScalarArray = typename Base::ScalarArray
 Alias to scalar derivatives array.
using VectorArray = typename Base::VectorArray
 Alias to vector derivatives array.

Public Member Functions

OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & orientedSphereDer ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
const OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & orientedSphereDer () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & algebraicSphereDer ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
const OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & algebraicSphereDer () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & implicitPrimitiveDer ()
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
const OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & implicitPrimitiveDer () const
 Explicit conversion to CLASSNAME, to access methods potentially hidden by heritage.
void init ()
 Set the evaluation position and reset the internal states.
void addLocalNeighbor (Scalar w, const VectorType &localQ, const DataPoint &attributes, ScalarArray &dw)
 Add a neighbor to perform the fit.
FIT_RESULT finalize ()
ScalarArray dPotential () const
 Returns the derivatives of the scalar field at the evaluation point.
VectorArray dNormal () const
 Returns the derivatives of the primitive normal.
ScalarArray dprattNorm2 () const
 compute the square of the Pratt norm derivative
Scalar dprattNorm2 (unsigned int _d) const
 compute the square of the Pratt norm derivative for dimension _d
Scalar dprattNorm (unsigned int _d) const
 compute the Pratt norm derivative for the dimension _d
ScalarArray dprattNorm () const
 compute the Pratt norm derivative
bool applyPrattNorm ()
 Normalize the scalar field by the Pratt norm.

Public Attributes

ScalarArray m_dUc {ScalarArray::Zero()}
 Derivatives of the hyper-sphere constant term.
ScalarArray m_dUq {ScalarArray::Zero()}
 Derivatives of the hyper-sphere quadratic term.
VectorArray m_dUl {VectorArray::Zero()}
 Derivatives of the hyper-sphere linear term.

Protected Types

using Base = T
 Base class of the procedure.

Protected Attributes

VectorArray m_dSumN {VectorArray::Zero()}
 Sum of the normal vectors with weight derivatives.
ScalarArray m_dSumDotPN {ScalarArray::Zero()}
 Sum of the dot product between relative positions and normals with weight derivatives.
ScalarArray m_dSumDotPP
 Sum of the squared relative positions with weight derivatives.
ScalarArray m_dNume {ScalarArray::Zero()}
 Derivatives of the numerator of the quadratic parameter.
ScalarArray m_dDeno {ScalarArray::Zero()}
 Derivatives of the denominator of the quadratic parameter.

Detailed Description

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
class Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >

[OrientedSphereFit Definition]

Internal generic class performing the Fit derivation

Definition at line 63 of file orientedSphereFit.h.

Member Typedef Documentation

◆ Base

template<class DataPoint, class _NFilter, int DiffType, typename T>
using Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::Base = T
protected

Base class of the procedure.

Definition at line 65 of file orientedSphereFit.h.

◆ NeighborFilter

template<class DataPoint, class _NFilter, int DiffType, typename T>
using Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::NeighborFilter = typename Base::NeighborFilter

Alias to the filter applied on the neighbors.

Definition at line 65 of file orientedSphereFit.h.

◆ Scalar

template<class DataPoint, class _NFilter, int DiffType, typename T>
using Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::Scalar = typename DataPoint::Scalar

Alias to scalar type.

Definition at line 65 of file orientedSphereFit.h.

◆ ScalarArray

template<class DataPoint, class _NFilter, int DiffType, typename T>
using Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::ScalarArray = typename Base::ScalarArray

Alias to scalar derivatives array.

Definition at line 66 of file orientedSphereFit.h.

◆ VectorArray

template<class DataPoint, class _NFilter, int DiffType, typename T>
using Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::VectorArray = typename Base::VectorArray

Alias to vector derivatives array.

Definition at line 66 of file orientedSphereFit.h.

◆ VectorType

template<class DataPoint, class _NFilter, int DiffType, typename T>
using Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::VectorType = typename Base::VectorType

Alias to vector type.

Definition at line 65 of file orientedSphereFit.h.

Member Function Documentation

◆ addLocalNeighbor()

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
void OrientedSphereDerImpl::addLocalNeighbor ( Scalar w,
const VectorType & localQ,
const DataPoint & attributes,
ScalarArray & dw )
inline

Add a neighbor to perform the fit.

Definition at line 102 of file orientedSphereFit.h.

◆ algebraicSphereDer() [1/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::algebraicSphereDer ( )
inline

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

Definition at line 86 of file orientedSphereFit.h.

◆ algebraicSphereDer() [2/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
const OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::algebraicSphereDer ( ) const
inline

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

Definition at line 86 of file orientedSphereFit.h.

◆ applyPrattNorm()

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
bool OrientedSphereDerImpl::applyPrattNorm ( )
inlinenodiscard

Normalize the scalar field by the Pratt norm.

Warning
Requires that isNormalized() return false
Returns
false when the original sphere has already been normalized.

Definition at line 182 of file orientedSphereFit.h.

◆ dNormal()

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::VectorArray OrientedSphereDerImpl::dNormal ( ) const
inlinenodiscard

Returns the derivatives of the primitive normal.

Definition at line 156 of file orientedSphereFit.h.

◆ dPotential()

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::ScalarArray OrientedSphereDerImpl::dPotential ( ) const
inlinenodiscard

Returns the derivatives of the scalar field at the evaluation point.

Definition at line 172 of file orientedSphereFit.h.

◆ dprattNorm() [1/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::dprattNorm ( ) const
inlinenodiscard

compute the Pratt norm derivative

Definition at line 119 of file orientedSphereFit.h.

◆ dprattNorm() [2/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
Scalar Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::dprattNorm ( unsigned int _d) const
inlinenodiscard

compute the Pratt norm derivative for the dimension _d

Definition at line 112 of file orientedSphereFit.h.

◆ dprattNorm2() [1/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::dprattNorm2 ( ) const
inlinenodiscard

compute the square of the Pratt norm derivative

Definition at line 98 of file orientedSphereFit.h.

◆ dprattNorm2() [2/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
Scalar Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::dprattNorm2 ( unsigned int _d) const
inlinenodiscard

compute the square of the Pratt norm derivative for dimension _d

Definition at line 105 of file orientedSphereFit.h.

◆ finalize()

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
FIT_RESULT OrientedSphereDerImpl::finalize ( )
inline

Definition at line 114 of file orientedSphereFit.h.

◆ implicitPrimitiveDer() [1/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::implicitPrimitiveDer ( )
inline

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

Definition at line 87 of file orientedSphereFit.h.

◆ implicitPrimitiveDer() [2/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
const OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::implicitPrimitiveDer ( ) const
inline

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

Definition at line 87 of file orientedSphereFit.h.

◆ init()

template<class DataPoint, class _NFilter, int DiffType, typename T>
requires ProvidesBasketDiffUnitBase<T>&& ProvidesAlgebraicSphere<T>&& ProvidesMeanPositionDerivative<T>
void OrientedSphereDerImpl::init ( )
inline

Set the evaluation position and reset the internal states.

Warning
Must be called be for any computation (but * after #setNeighborFilter)

Definition at line 84 of file orientedSphereFit.h.

◆ orientedSphereDer() [1/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::orientedSphereDer ( )
inline

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

Definition at line 85 of file orientedSphereFit.h.

◆ orientedSphereDer() [2/2]

template<class DataPoint, class _NFilter, int DiffType, typename T>
const OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T > & Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::orientedSphereDer ( ) const
inline

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

Definition at line 85 of file orientedSphereFit.h.

Member Data Documentation

◆ m_dDeno

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dDeno {ScalarArray::Zero()}
protected

Derivatives of the denominator of the quadratic parameter.

Definition at line 76 of file orientedSphereFit.h.

◆ m_dNume

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dNume {ScalarArray::Zero()}
protected

Derivatives of the numerator of the quadratic parameter.

Definition at line 75 of file orientedSphereFit.h.

◆ m_dSumDotPN

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dSumDotPN {ScalarArray::Zero()}
protected

Sum of the dot product between relative positions and normals with weight derivatives.

Definition at line 71 of file orientedSphereFit.h.

◆ m_dSumDotPP

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dSumDotPP
protected
Initial value:
{
ScalarArray::Zero()}

Sum of the squared relative positions with weight derivatives.

Definition at line 73 of file orientedSphereFit.h.

◆ m_dSumN

template<class DataPoint, class _NFilter, int DiffType, typename T>
VectorArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dSumN {VectorArray::Zero()}
protected

Sum of the normal vectors with weight derivatives.

Definition at line 70 of file orientedSphereFit.h.

◆ m_dUc

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dUc {ScalarArray::Zero()}

Derivatives of the hyper-sphere constant term.

Definition at line 80 of file orientedSphereFit.h.

◆ m_dUl

template<class DataPoint, class _NFilter, int DiffType, typename T>
VectorArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dUl {VectorArray::Zero()}

Derivatives of the hyper-sphere linear term.

Definition at line 82 of file orientedSphereFit.h.

◆ m_dUq

template<class DataPoint, class _NFilter, int DiffType, typename T>
ScalarArray Ponca::OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, T >::m_dUq {ScalarArray::Zero()}

Derivatives of the hyper-sphere quadratic term.

Definition at line 81 of file orientedSphereFit.h.