Ponca  f7f7d7cc113b4e53be6bee25005fbdbe7e016293
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 ()
 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 ( )
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.