Ponca  e26a0e88a45818354616c1a7180bcd203aecad3c
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T > Class Template Reference

Generic class performing the Fit derivation. More...

#include <primitive.h>

+ Inheritance diagram for Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >:
+ Collaboration diagram for Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >:

Public Types

using Scalar = typename Base::Scalar
 Inherited scalar type.
 
using VectorType = typename Base::VectorType
 Inherited vector type.
 
using MatrixType = typename DataPoint::MatrixType
 Inherited matrix type.
 
using WFunctor = typename Base::WFunctor
 Weight Function.
 
typedef Eigen::Matrix< Scalar, DataPoint::Dim, NbDerivatives, DerStorageOrder > VectorArray
 Static array of scalars with a size adapted to the differentiation type.
 
typedef Eigen::Matrix< Scalar, 1, NbDerivatives > ScalarArray
 Static array of scalars with a size adapted to the differentiation type.
 

Public Member Functions

void init (const VectorType &_evalPos)
 
bool addLocalNeighbor (Scalar w, const VectorType &localQ, const DataPoint &attributes, ScalarArray &dw)
 
constexpr bool isScaleDer () const
 State specified at compilation time to differenciate the fit in scale.
 
constexpr bool isSpaceDer () const
 State specified at compilation time to differenciate the fit in space.
 
constexpr unsigned int derDimension () const
 Number of dimensions used for the differentiation.
 

Protected Types

enum  { Check = Base::PROVIDES_PRIMITIVE_BASE , PROVIDES_PRIMITIVE_DERIVATIVE }
 

Protected Attributes

ScalarArray m_dSumW
 Sum of weight derivatives.
 

Static Protected Attributes

static constexpr int NbDerivatives = ((Type & FitScaleDer) ? 1 : 0 ) + ((Type & FitSpaceDer) ? DataPoint::Dim : 0)
 
static constexpr int DerStorageOrder = (Type & FitSpaceDer) ? Eigen::RowMajor : Eigen::ColMajor
 

Detailed Description

template<class DataPoint, class _WFunctor, int Type, typename T>
class Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >

Generic class performing the Fit derivation.

The differentiation can be done automatically in scale and/or space, by combining the enum values FitScaleDer and FitSpaceDer in the template parameter Type.

The differentiated values are stored in static arrays. The size of the arrays is computed with respect to the derivation type (scale and/or space) and the number of the dimension of the ambiant space. By convention, the scale derivatives are stored at index 0 when Type contains at least FitScaleDer. The size of these arrays can be known using derDimension(), and the differentiation type by isScaleDer() and isSpaceDer().

Definition at line 152 of file primitive.h.

Member Typedef Documentation

◆ MatrixType

template<class DataPoint , class _WFunctor , int Type, typename T >
using Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::MatrixType = typename DataPoint::MatrixType

Inherited matrix type.

Definition at line 170 of file primitive.h.

◆ Scalar

template<class DataPoint , class _WFunctor , int Type, typename T >
using Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::Scalar = typename Base::Scalar

Inherited scalar type.

Definition at line 168 of file primitive.h.

◆ ScalarArray

template<class DataPoint , class _WFunctor , int Type, typename T >
typedef Eigen::Matrix<Scalar, 1, NbDerivatives> Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::ScalarArray

Static array of scalars with a size adapted to the differentiation type.

Definition at line 177 of file primitive.h.

◆ VectorArray

template<class DataPoint , class _WFunctor , int Type, typename T >
typedef Eigen::Matrix<Scalar, DataPoint::Dim, NbDerivatives, DerStorageOrder> Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::VectorArray

Static array of scalars with a size adapted to the differentiation type.

Definition at line 174 of file primitive.h.

◆ VectorType

template<class DataPoint , class _WFunctor , int Type, typename T >
using Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::VectorType = typename Base::VectorType

Inherited vector type.

Definition at line 169 of file primitive.h.

◆ WFunctor

template<class DataPoint , class _WFunctor , int Type, typename T >
using Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::WFunctor = typename Base::WFunctor

Weight Function.

Definition at line 171 of file primitive.h.

Member Enumeration Documentation

◆ anonymous enum

template<class DataPoint , class _WFunctor , int Type, typename T >
anonymous enum
protected
Enumerator
Check 

Provides base API for primitives.

Definition at line 158 of file primitive.h.

Member Function Documentation

◆ addLocalNeighbor()

template<class DataPoint , class _WFunctor , int Type, typename T >
bool Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::addLocalNeighbor ( Scalar  w,
const VectorType localQ,
const DataPoint &  attributes,
ScalarArray dw 
)
inline
See also
Concept::FittingProcedureConcept::addLocalNeighbor()

Definition at line 197 of file primitive.h.

◆ derDimension()

template<class DataPoint , class _WFunctor , int Type, typename T >
constexpr unsigned int Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::derDimension ( ) const
inlineconstexpr

Number of dimensions used for the differentiation.

Definition at line 225 of file primitive.h.

◆ init()

template<class DataPoint , class _WFunctor , int Type, typename T >
void Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::init ( const VectorType _evalPos)
inline
See also
Concept::FittingProcedureConcept::init()

Definition at line 189 of file primitive.h.

◆ isScaleDer()

template<class DataPoint , class _WFunctor , int Type, typename T >
constexpr bool Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::isScaleDer ( ) const
inlineconstexpr

State specified at compilation time to differenciate the fit in scale.

Definition at line 221 of file primitive.h.

◆ isSpaceDer()

template<class DataPoint , class _WFunctor , int Type, typename T >
constexpr bool Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::isSpaceDer ( ) const
inlineconstexpr

State specified at compilation time to differenciate the fit in space.

Definition at line 223 of file primitive.h.

Member Data Documentation

◆ DerStorageOrder

template<class DataPoint , class _WFunctor , int Type, typename T >
constexpr int Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::DerStorageOrder = (Type & FitSpaceDer) ? Eigen::RowMajor : Eigen::ColMajor
staticconstexprprotected

Definition at line 165 of file primitive.h.

◆ m_dSumW

template<class DataPoint , class _WFunctor , int Type, typename T >
ScalarArray Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::m_dSumW
protected

Sum of weight derivatives.

Definition at line 181 of file primitive.h.

◆ NbDerivatives

template<class DataPoint , class _WFunctor , int Type, typename T >
constexpr int Ponca::PrimitiveDer< DataPoint, _WFunctor, Type, T >::NbDerivatives = ((Type & FitScaleDer) ? 1 : 0 ) + ((Type & FitSpaceDer) ? DataPoint::Dim : 0)
staticconstexprprotected

Definition at line 164 of file primitive.h.