Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lvr2::DualLeaf< BaseVecT, BoxT > Class Template Reference

#include <DualOctree.hpp>

Public Member Functions

 DualLeaf (BaseVecT vertices[])
 Constructor. More...
 
int getIndex (float distances[])
 Calculates and returns the bit-pattern respectively index from the edges of the represented voxel for the MC-Table. More...
 
uint getIntersection (char i)
 Returns the stored intersection between the cell and the surface at a given edge. More...
 
BaseVecT getIntersectionPoint (float intersection, BaseVecT corner_one, BaseVecT corner_two)
 
BaseVecT getIntersectionPoint (BaseVecT corner_one, float intersection, BaseVecT corner_two)
 
BaseVecT getIntersectionPoint (BaseVecT corner_one, BaseVecT corner_two, float intersection)
 
void getIntersections (BaseVecT corners[], float distance[], BaseVecT positions[])
 Calculates the twelve possible intersections between the cell and the surface to interpolate. More...
 
BaseVecT & getMiddle ()
 Returns the middle of the represented voxel. More...
 
void getVertices (BaseVecT corners[])
 Returns edges of the voxel. More...
 
void setIntersection (char i, uint value)
 Sets the intersection between the cell and the surface at a given edge. More...
 
virtual ~DualLeaf ()
 Destructor (virtual) More...
 

Protected Member Functions

float calcIntersection (float x1, float x2, float d1, float d2)
 Interpolates the intersection between x1 and x1. More...
 

Protected Attributes

uint m_intersections [12]
 
BaseVecT m_vertices [8]
 

Detailed Description

template<typename BaseVecT, typename BoxT>
class lvr2::DualLeaf< BaseVecT, BoxT >

Definition at line 45 of file DualOctree.hpp.

Constructor & Destructor Documentation

◆ DualLeaf()

template<typename BaseVecT, typename BoxT>
lvr2::DualLeaf< BaseVecT, BoxT >::DualLeaf ( BaseVecT  vertices[])

Constructor.

Parameters
middleCenter of the voxel

◆ ~DualLeaf()

template<typename BaseVecT, typename BoxT>
virtual lvr2::DualLeaf< BaseVecT, BoxT >::~DualLeaf ( )
inlinevirtual

Destructor (virtual)

Definition at line 59 of file DualOctree.hpp.

Member Function Documentation

◆ calcIntersection()

template<typename BaseVecT, typename BoxT>
float lvr2::DualLeaf< BaseVecT, BoxT >::calcIntersection ( float  x1,
float  x2,
float  d1,
float  d2 
)
protected

Interpolates the intersection between x1 and x1.

Parameters
x1First coordinate.
x2Second coordinate.
d1Distance value for the first coordinate.
d2Distance value for the second coordinate.
Returns
Interpolated distance.

◆ getIndex()

template<typename BaseVecT, typename BoxT>
int lvr2::DualLeaf< BaseVecT, BoxT >::getIndex ( float  distances[])

Calculates and returns the bit-pattern respectively index from the edges of the represented voxel for the MC-Table.

Parameters
distancesDistances of the eight edges.
Returns
Index for the MC-Table.

◆ getIntersection()

template<typename BaseVecT, typename BoxT>
uint lvr2::DualLeaf< BaseVecT, BoxT >::getIntersection ( char  i)

Returns the stored intersection between the cell and the surface at a given edge.

Parameters
iIndex of the edge.

◆ getIntersectionPoint() [1/3]

template<typename BaseVecT, typename BoxT>
BaseVecT lvr2::DualLeaf< BaseVecT, BoxT >::getIntersectionPoint ( float  intersection,
BaseVecT  corner_one,
BaseVecT  corner_two 
)

◆ getIntersectionPoint() [2/3]

template<typename BaseVecT, typename BoxT>
BaseVecT lvr2::DualLeaf< BaseVecT, BoxT >::getIntersectionPoint ( BaseVecT  corner_one,
float  intersection,
BaseVecT  corner_two 
)

◆ getIntersectionPoint() [3/3]

template<typename BaseVecT, typename BoxT>
BaseVecT lvr2::DualLeaf< BaseVecT, BoxT >::getIntersectionPoint ( BaseVecT  corner_one,
BaseVecT  corner_two,
float  intersection 
)

◆ getIntersections()

template<typename BaseVecT, typename BoxT>
void lvr2::DualLeaf< BaseVecT, BoxT >::getIntersections ( BaseVecT  corners[],
float  distance[],
BaseVecT  positions[] 
)

Calculates the twelve possible intersections between the cell and the surface to interpolate.

Parameters
cornersEight corners of the current cell.
distanceCorresponding distance value.
positionsInterpolated intersections.

◆ getMiddle()

template<typename BaseVecT, typename BoxT>
BaseVecT& lvr2::DualLeaf< BaseVecT, BoxT >::getMiddle ( )

Returns the middle of the represented voxel.

Returns
Middle of the represented voxel.

◆ getVertices()

template<typename BaseVecT, typename BoxT>
void lvr2::DualLeaf< BaseVecT, BoxT >::getVertices ( BaseVecT  corners[])

Returns edges of the voxel.

Parameters
cornerCorners of the voxel.

◆ setIntersection()

template<typename BaseVecT, typename BoxT>
void lvr2::DualLeaf< BaseVecT, BoxT >::setIntersection ( char  i,
uint  value 
)

Sets the intersection between the cell and the surface at a given edge.

Parameters
iIndex of the edge.
valueValue of the intersection.

Member Data Documentation

◆ m_intersections

template<typename BaseVecT, typename BoxT>
uint lvr2::DualLeaf< BaseVecT, BoxT >::m_intersections[12]
protected

Definition at line 132 of file DualOctree.hpp.

◆ m_vertices

template<typename BaseVecT, typename BoxT>
BaseVecT lvr2::DualLeaf< BaseVecT, BoxT >::m_vertices[8]
protected

Definition at line 129 of file DualOctree.hpp.


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


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Mon Feb 28 2022 22:46:11