Helios++
Helios software for LiDAR simulations
DetailedPlane.hpp
1 #pragma once
2 
3 #include <surfaceinspector/maths/Plane.hpp>
4 
5 namespace SurfaceInspector { namespace maths{
6 
7 template <typename T>
8 class DetailedPlane : public Plane<T>{
9 public:
10  // *** ATTRIBUTES *** //
11  // ******************** //
20  T sum;
21 
30 
39 
50 
61 
74 
88 
101 
116 
131  vector<T> verticalMoments;
132 
149  vector<T> absoluteMoments;
150 
151  // *** CONSTRUCTION / DESTRUCTION *** //
152  // ************************************ //
156  DetailedPlane() = default;
163  vector<T> centroid,
164  vector<T> orthonormal,
165  T scatter=0,
166  T curvature=0
167  ) :
169  {};
177  vector<T> centroid,
178  vector<T> orthonormal,
179  T scatter=0,
180  T curvature=0,
181  T sum=0,
182  T omnivariance=0,
183  T entropy=0,
184  T verticality=0,
185  T horizontality=0,
186  T linearity=0,
187  T planarity=0,
188  T sphericity=0,
189  vector<T> angularVerticality=vector<T>(0),
190  vector<T> verticalMoments=vector<T>(0),
191  vector<T> absoluteMoments=vector<T>(0)
192  ) :
194  sum(sum),
196  entropy(entropy),
205  {};
206  virtual ~DetailedPlane() {};
207 };
208 
209 
210 }}
Definition: DetailedPlane.hpp:8
T omnivariance
Omnivariance from eigenvalues or singular values.
Definition: DetailedPlane.hpp:29
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.
Definition: DetailedPlane.hpp:176
T sum
Sum of eigenvalues or singular values coming from plane fitting process.
Definition: DetailedPlane.hpp:20
vector< T > verticalMoments
Two vertical moments.
Definition: DetailedPlane.hpp:131
vector< T > angularVerticality
Two angular verticalities.
Definition: DetailedPlane.hpp:115
T verticality
Verticality defining planes from .
Definition: DetailedPlane.hpp:49
T sphericity
Sphericity defining the plane.
Definition: DetailedPlane.hpp:100
T horizontality
Horizontality defining planes from .
Definition: DetailedPlane.hpp:60
T planarity
Planarity defining planes from .
Definition: DetailedPlane.hpp:87
DetailedPlane()=default
Default plane constructor.
T linearity
Linearity defining planes from .
Definition: DetailedPlane.hpp:73
vector< T > absoluteMoments
Absolute moments of order 1 and 2 for each eigen or singular vector defining the plane.
Definition: DetailedPlane.hpp:149
T entropy
Entropy from eigenvalues or singular values.
Definition: DetailedPlane.hpp:38
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)
Definition: DetailedPlane.hpp:162
Class representing a plane.
Definition: Plane.hpp:22
T scatter
When the plane has been obtained through fitting to a sample, scatter will quantify variation with re...
Definition: Plane.hpp:39
T curvature
When the plane has been obtained through fitting to a sample, curvature is defined by expression:
Definition: Plane.hpp:55
vector< T > centroid
Coordinates for plane centroid.
Definition: Plane.hpp:29
vector< T > orthonormal
Plane orthonormal vector.
Definition: Plane.hpp:33