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

Implicit hyperplane defined by an homogeneous vector \(\mathbf{p}\). More...

#include <plane.h>

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

Public Types

using Scalar = typename DataPoint::Scalar
 Alias to scalar type.
 
using VectorType = typename Base::VectorType
 Alias to vector type.
 
using WFunctor = typename Base::WFunctor
 Alias to weight function.
 
using EigenBase = Eigen::Hyperplane< typename DataPoint::Scalar, DataPoint::Dim >
 Specialization of Eigen::Hyperplane inherited by Ponca::Plane.
 

Public Member Functions

 Plane ()
 Default constructor.
 
Plane< DataPoint, _WFunctor, T > & compactPlane ()
 Explicit conversion to Plane , to access methods potentially hidden by heritage.
 
const Plane< DataPoint, _WFunctor, T > & compactPlane () const
 Explicit conversion to Plane , to access methods potentially hidden by heritage.
 
Plane< DataPoint, _WFunctor, T > & plane ()
 Explicit conversion to Plane , to access methods potentially hidden by heritage.
 
const Plane< DataPoint, _WFunctor, T > & plane () const
 Explicit conversion to Plane , to access methods potentially hidden by heritage.
 
void init (const VectorType &_basisCenter=VectorType::Zero())
 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 Plane< DataPoint, WFunctor, T > &other) const
 
bool operator!= (const Plane< DataPoint, WFunctor, T > &other) const
 Comparison operator, convenience function.
 
void setPlane (const VectorType &_dir, const VectorType &_pos)
 
Scalar potential () const
 Value of the scalar field at the evaluation point.
 
Scalar potential (const VectorType &_q) const
 Value of the scalar field at the location \( \mathbf{q} \).
 
VectorType project (const VectorType &_q) const
 Project a point on the plane.
 
VectorType primitiveGradient () const
 Scalar field gradient direction at the evaluation point.
 
VectorType primitiveGradient (const VectorType &) const
 Scalar field gradient direction at \( \mathbf{q}\).
 

Protected Types

enum  { check = Base::PROVIDES_PRIMITIVE_BASE , PROVIDES_PLANE }
 
using Base = T
 Base class of the procedure.
 

Detailed Description

template<class DataPoint, class _WFunctor, typename T>
class Ponca::Plane< DataPoint, _WFunctor, T >

Implicit hyperplane defined by an homogeneous vector \(\mathbf{p}\).

In n-dimensionnal space, the plane is defined as the \(0\)-isosurface of the scalar field

\( s_\mathbf{u}(\mathbf{x}) = \left[ \mathbf{x}^T \; 1 \;\right]^T \cdot \mathbf{p} \).

This class inherits Eigen::Hyperplane.

This primitive requires the definition of n-dimensionnal vectors (VectorType) in Concept::PointConcept.

This primitive provides:

PROVIDES_PLANE 

Definition at line 35 of file plane.h.

Member Typedef Documentation

◆ Base

template<class DataPoint , class _WFunctor , typename T >
using Ponca::Plane< DataPoint, _WFunctor, T >::Base = T
protected

Base class of the procedure.

Definition at line 38 of file plane.h.

◆ EigenBase

template<class DataPoint , class _WFunctor , typename T >
using Ponca::Plane< DataPoint, _WFunctor, T >::EigenBase = Eigen::Hyperplane<typename DataPoint::Scalar, DataPoint::Dim >

Specialization of Eigen::Hyperplane inherited by Ponca::Plane.

Definition at line 42 of file plane.h.

◆ Scalar

template<class DataPoint , class _WFunctor , typename T >
using Ponca::Plane< DataPoint, _WFunctor, T >::Scalar = typename DataPoint::Scalar

Alias to scalar type.

Definition at line 38 of file plane.h.

◆ VectorType

template<class DataPoint , class _WFunctor , typename T >
using Ponca::Plane< DataPoint, _WFunctor, T >::VectorType = typename Base::VectorType

Alias to vector type.

Definition at line 38 of file plane.h.

◆ WFunctor

template<class DataPoint , class _WFunctor , typename T >
using Ponca::Plane< DataPoint, _WFunctor, T >::WFunctor = typename Base::WFunctor

Alias to weight function.

Definition at line 38 of file plane.h.

Member Enumeration Documentation

◆ anonymous enum

template<class DataPoint , class _WFunctor , typename T >
anonymous enum
protected

Definition at line 45 of file plane.h.

Constructor & Destructor Documentation

◆ Plane()

template<class DataPoint , class _WFunctor , typename T >
Ponca::Plane< DataPoint, _WFunctor, T >::Plane ( )
inline

Default constructor.

Definition at line 50 of file plane.h.

Member Function Documentation

◆ compactPlane() [1/2]

template<class DataPoint , class _WFunctor , typename T >
Plane< DataPoint, _WFunctor, T > & Ponca::Plane< DataPoint, _WFunctor, T >::compactPlane ( )
inline

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

Definition at line 52 of file plane.h.

◆ compactPlane() [2/2]

template<class DataPoint , class _WFunctor , typename T >
const Plane< DataPoint, _WFunctor, T > & Ponca::Plane< DataPoint, _WFunctor, T >::compactPlane ( ) const
inline

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

Definition at line 52 of file plane.h.

◆ init()

template<class DataPoint , class _WFunctor , typename T >
void Ponca::Plane< DataPoint, _WFunctor, T >::init ( const VectorType _basisCenter = VectorType::Zero())
inline

Set the scalar field values to 0.

Definition at line 56 of file plane.h.

◆ isValid()

template<class DataPoint , class _WFunctor , typename T >
bool Ponca::Plane< DataPoint, _WFunctor, 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 65 of file plane.h.

◆ operator!=()

template<class DataPoint , class _WFunctor , typename T >
bool Ponca::Plane< DataPoint, _WFunctor, T >::operator!= ( const Plane< DataPoint, WFunctor, T > &  other) const
inline

Comparison operator, convenience function.

Definition at line 74 of file plane.h.

◆ operator==()

template<class DataPoint , class _WFunctor , typename T >
bool Ponca::Plane< DataPoint, _WFunctor, T >::operator== ( const Plane< DataPoint, WFunctor, T > &  other) const
inline

Definition at line 69 of file plane.h.

◆ plane() [1/2]

template<class DataPoint , class _WFunctor , typename T >
Plane< DataPoint, _WFunctor, T > & Ponca::Plane< DataPoint, _WFunctor, T >::plane ( )
inline

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

Definition at line 53 of file plane.h.

◆ plane() [2/2]

template<class DataPoint , class _WFunctor , typename T >
const Plane< DataPoint, _WFunctor, T > & Ponca::Plane< DataPoint, _WFunctor, T >::plane ( ) const
inline

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

Definition at line 53 of file plane.h.

◆ potential() [1/2]

template<class DataPoint , class _WFunctor , typename T >
Scalar Ponca::Plane< DataPoint, _WFunctor, T >::potential ( ) const
inline

Value of the scalar field at the evaluation point.

See also
method #isSigned of the fit to check if the sign is reliable

Definition at line 91 of file plane.h.

◆ potential() [2/2]

template<class DataPoint , class _WFunctor , typename T >
Scalar Ponca::Plane< DataPoint, _WFunctor, T >::potential ( const VectorType _q) const
inline

Value of the scalar field at the location \( \mathbf{q} \).

See also
method #isSigned of the fit to check if the sign is reliable

Definition at line 98 of file plane.h.

◆ primitiveGradient() [1/2]

template<class DataPoint , class _WFunctor , typename T >
VectorType Ponca::Plane< DataPoint, _WFunctor, T >::primitiveGradient ( ) const
inline

Scalar field gradient direction at the evaluation point.

Definition at line 112 of file plane.h.

◆ primitiveGradient() [2/2]

template<class DataPoint , class _WFunctor , typename T >
VectorType Ponca::Plane< DataPoint, _WFunctor, T >::primitiveGradient ( const VectorType ) const
inline

Scalar field gradient direction at \( \mathbf{q}\).

Definition at line 119 of file plane.h.

◆ project()

template<class DataPoint , class _WFunctor , typename T >
VectorType Ponca::Plane< DataPoint, _WFunctor, T >::project ( const VectorType _q) const
inline

Project a point on the plane.

Definition at line 105 of file plane.h.

◆ setPlane()

template<class DataPoint , class _WFunctor , typename T >
void Ponca::Plane< DataPoint, _WFunctor, T >::setPlane ( const VectorType _dir,
const VectorType _pos 
)
inline

Definition at line 82 of file plane.h.