Helios++
Helios software for LiDAR simulations
SurfaceInspector::maths::DetailedPlane< T > Class Template Reference
Inheritance diagram for SurfaceInspector::maths::DetailedPlane< T >:
Collaboration diagram for SurfaceInspector::maths::DetailedPlane< T >:

Public Member Functions

 DetailedPlane ()=default
 Default plane constructor.
 
 DetailedPlane (vector< T > centroid, vector< T > orthonormal, T scatter=0, T curvature=0)
 Build a detailed plane with given centroid, orthonormal and scatter (plane attributes) More...
 
 DetailedPlane (vector< T > centroid, vector< T > orthonormal, T scatter=0, T curvature=0, T sum=0, T omnivariance=0, T entropy=0, T verticality=0, T horizontality=0, T linearity=0, T planarity=0, T sphericity=0, vector< T > angularVerticality=vector< T >(0), vector< T > verticalMoments=vector< T >(0), vector< T > absoluteMoments=vector< T >(0))
 Build a detailed plane with all attributes. More...
 
- Public Member Functions inherited from SurfaceInspector::maths::Plane< T >
 Plane ()=default
 Default plane constructor.
 
 Plane (vector< T > centroid, vector< T > orthonormal, T scatter=0, T curvature=0)
 Build a plane with given centroid, orthonormal and scatter. More...
 

Public Attributes

sum
 Sum of eigenvalues or singular values coming from plane fitting process. More...
 
omnivariance
 Omnivariance from eigenvalues or singular values. More...
 
entropy
 Entropy from eigenvalues or singular values. More...
 
verticality
 Verticality defining planes from \(\mathbb{R}^{3}\). More...
 
horizontality
 Horizontality defining planes from \(\mathbb{R}^{3}\). More...
 
linearity
 Linearity defining planes from \(\mathbb{R}^{3}\). More...
 
planarity
 Planarity defining planes from \(\mathbb{R}^{3}\). More...
 
sphericity
 Sphericity defining the plane. More...
 
vector< T > angularVerticality
 Two angular verticalities. More...
 
vector< T > verticalMoments
 Two vertical moments. More...
 
vector< T > absoluteMoments
 Absolute moments of order 1 and 2 for each eigen or singular vector defining the plane. More...
 
- Public Attributes inherited from SurfaceInspector::maths::Plane< T >
vector< T > centroid
 Coordinates for plane centroid.
 
vector< T > orthonormal
 Plane orthonormal vector.
 
scatter
 When the plane has been obtained through fitting to a sample, scatter will quantify variation with respect to elements in the sample. More...
 
curvature
 When the plane has been obtained through fitting to a sample, curvature is defined by expression: More...
 

Constructor & Destructor Documentation

◆ DetailedPlane() [1/2]

template<typename T >
SurfaceInspector::maths::DetailedPlane< T >::DetailedPlane ( vector< T >  centroid,
vector< T >  orthonormal,
scatter = 0,
curvature = 0 
)
inline

Build a detailed plane with given centroid, orthonormal and scatter (plane attributes)

See also
SurfaceInspector::maths::Plane

◆ DetailedPlane() [2/2]

template<typename T >
SurfaceInspector::maths::DetailedPlane< T >::DetailedPlane ( vector< T >  centroid,
vector< T >  orthonormal,
scatter = 0,
curvature = 0,
sum = 0,
omnivariance = 0,
entropy = 0,
verticality = 0,
horizontality = 0,
linearity = 0,
planarity = 0,
sphericity = 0,
vector< T >  angularVerticality = vector<T>(0),
vector< T >  verticalMoments = vector<T>(0),
vector< T >  absoluteMoments = vector<T>(0) 
)
inline

Build a detailed plane with all attributes.

See also
SurfaceInspector::maths::Plane
DetailedPlane::

Member Data Documentation

◆ absoluteMoments

template<typename T >
vector<T> SurfaceInspector::maths::DetailedPlane< T >::absoluteMoments

Absolute moments of order 1 and 2 for each eigen or singular vector defining the plane.

Let \(n\) be the number of neighbors, \(c\) be the centroid and \(k\) be the moment. In this case \(k \in {1, 2}\). So absolute moments can be defined by following expression:

\[ \frac{1}{n}\left| \sum_{i=1}^{n}{\langle{p_{i}-c, e_{j}}\rangle^{k}} \right| \]

Where \(e_{j}\) is the jth eigen or singular vector

◆ angularVerticality

template<typename T >
vector<T> SurfaceInspector::maths::DetailedPlane< T >::angularVerticality

Two angular verticalities.

\[ V_{1} = \left|\frac{\pi}{2} - \textrm{angle}(e_{1},e_{z})\right| \]

\[ V_{2} = \left|\frac{\pi}{2} - \textrm{angle}(e_{2},e_{z})\right| \]

Where \(e_{z}=(0, 0, 1)\) for the 3D case

◆ entropy

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::entropy

Entropy from eigenvalues or singular values.

\[ -\sum_{i=1}^{n}{\lambda_{i}\ln(\lambda_{i})} \]

◆ horizontality

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::horizontality

Horizontality defining planes from \(\mathbb{R}^{3}\).

Let \(\hat{v}\) be the plane othonormal

\[ |(v_{3}| \]

◆ linearity

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::linearity

Linearity defining planes from \(\mathbb{R}^{3}\).

Let \(\lambda_{1}\) be the minimum eigen value or singular value and \(\lambda_{n}\) be the maximum eigen value or singular value, so for \(\mathbb{R}^{3}, \lambda_{n}=\lambda_{3}\)

\[ \frac{\lambda_{n}-\lambda_{2}}{\lambda_{n}} \]

◆ omnivariance

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::omnivariance

Omnivariance from eigenvalues or singular values.

\[ \prod_{i=1}^{n}\left({\lambda_{i}}\right)^{\frac{1}{n}} \]

◆ planarity

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::planarity

Planarity defining planes from \(\mathbb{R}^{3}\).

Let \(\lambda_{1}\) be the minimum eigen value or singular value and \lambda_{n} be the maximum eigen value or singular value, so for \(\mathbb{R}^{3}, \lambda_{n}=\lambda_{3}\)

\[ \frac{\lambda_{2}-\lambda_{1}}{\lambda_{n}} \]

◆ sphericity

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::sphericity

Sphericity defining the plane.

Let \(\lambda_{1}\) be the minimum eigen value or singular value and \(\lambda_{n}\) be the maximum eigen value or singular value, so for \(\mathbb{R}^{3}, \lambda_{n}=\lambda_{3}\)

\[ \frac{\lambda_{1}}{\lambda_{n}} \]

◆ sum

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::sum

Sum of eigenvalues or singular values coming from plane fitting process.

\[ \sum_{i=1}^{n}{\lambda_{i}} \]

◆ verticality

template<typename T >
T SurfaceInspector::maths::DetailedPlane< T >::verticality

Verticality defining planes from \(\mathbb{R}^{3}\).

Let \(\hat{v}\) be the plane orthonormal

\[ ||(v_{1}, v_{2})|| \]

◆ verticalMoments

template<typename T >
vector<T> SurfaceInspector::maths::DetailedPlane< T >::verticalMoments

Two vertical moments.

Let \(n\) be the number of neighbors, \(c\) be the centroid and \(k\) be the moment. In this case \(k \in {1, 2}\). So vertical moments can be defined by following expression:

\[ \frac{1}{n} \sum_{i=1}^{n}{\langle{p_{i}-c, e_{z}}\rangle^{k}} \]

Where \(e_{z}=(0, 0, 1)\) for the 3D case


The documentation for this class was generated from the following file: