Public Member Functions | Private Member Functions | Private Attributes | List of all members
lvr2::TetraederBox< BaseVecT > Class Template Reference

Used for Marching Tetreader Reconstruction. Dives a regular box into 5 Tetraeders for mesh generation. More...

#include <TetraederBox.hpp>

Inheritance diagram for lvr2::TetraederBox< BaseVecT >:
Inheritance graph
[legend]

Public Member Functions

virtual void getSurface (BaseMesh< BaseVecT > &mesh, vector< QueryPoint< BaseVecT >> &query_points, uint &globalIndex)
 Performs a local reconstruction using a tetraeder decomposition of the current cell. More...
 
 TetraederBox (BaseVecT center)
 
virtual ~TetraederBox ()
 
- Public Member Functions inherited from lvr2::FastBox< BaseVecT >
 FastBox (BaseVecT center)
 Constructs a new box at the given center point defined by the used m_voxelsize}. More...
 
BaseVecT getCenter ()
 
FastBox< BaseVecT > * getNeighbor (int index)
 
virtual void getSurface (BaseMesh< BaseVecT > &mesh, vector< QueryPoint< BaseVecT >> &query_points, uint &globalIndex, BoundingBox< BaseVecT > &bb, vector< unsigned int > &duplicates, float comparePrecision)
 
uint getVertex (int index)
 Gets the vertex index of the queried cell corner. More...
 
void setNeighbor (int index, FastBox< BaseVecT > *cell)
 Adjacent cells in the grid should use common vertices. This functions assigns the value of corner[index] to the corresponding corner of the give neighbor cell. More...
 
void setVertex (int index, uint value)
 Each cell vertex (0 to 7) as associated with a vertex in the reconstruction grid. This methods assigns the index value} to the index}th cell corner. More...
 
virtual ~FastBox ()
 Destructor.NormalT. More...
 

Private Member Functions

int calcPatternIndex (float distances[4])
 
void interpolateIntersections (int tetraNumber, BaseVecT positions[4], float distances[4])
 

Private Attributes

BaseVecT m_intersectionPositionsTetraeder [6]
 
OptionalVertexHandle m_intersections [19]
 

Additional Inherited Members

- Public Attributes inherited from lvr2::FastBox< BaseVecT >
BaseVecT m_center
 The box center. More...
 
bool m_duplicate
 
bool m_extruded
 
OptionalVertexHandle m_intersections [12]
 The twelve intersection between box and surface. More...
 
FastBox< BaseVecT > * m_neighbors [27]
 Pointer to all adjacent cells. More...
 
- Static Public Attributes inherited from lvr2::FastBox< BaseVecT >
static uint INVALID_INDEX
 An index value that is used to reference vertices that are not in the grid. More...
 
static float m_voxelsize
 The voxelsize of the reconstruction grid. More...
 
- Protected Types inherited from lvr2::FastBox< BaseVecT >
typedef FastBox< BaseVecT > BoxType
 
- Protected Member Functions inherited from lvr2::FastBox< BaseVecT >
float calcIntersection (float x1, float x2, float d1, float d2)
 
bool compareFloat (double num1, double num2)
 
float distanceToBB (const BaseVecT &v, const BoundingBox< BaseVecT > &bb) const
 
void getCorners (BaseVecT corners[], vector< QueryPoint< BaseVecT >> &query_points)
 Calculates the position of the eight cell corners. More...
 
void getDistances (float distances[], vector< QueryPoint< BaseVecT >> &query_points)
 Calculates the distance value for the eight cell corners. More...
 
int getIndex (vector< QueryPoint< BaseVecT >> &query_points)
 Calculated the index for the MC table. More...
 
void getIntersections (BaseVecT *corners, float *distance, BaseVecT *positions)
 Calculated the 12 possible intersections between the cell and the surface to interpolate. More...
 
- Protected Attributes inherited from lvr2::FastBox< BaseVecT >
uint m_vertices [8]
 The eight box corners. More...
 

Detailed Description

template<typename BaseVecT>
class lvr2::TetraederBox< BaseVecT >

Used for Marching Tetreader Reconstruction. Dives a regular box into 5 Tetraeders for mesh generation.

Definition at line 49 of file TetraederBox.hpp.

Constructor & Destructor Documentation

◆ TetraederBox()

template<typename BaseVecT >
lvr2::TetraederBox< BaseVecT >::TetraederBox ( BaseVecT  center)

Creates a new tetraeder box with current grid voxel size around the given center point

◆ ~TetraederBox()

template<typename BaseVecT >
virtual lvr2::TetraederBox< BaseVecT >::~TetraederBox ( )
virtual

Member Function Documentation

◆ calcPatternIndex()

template<typename BaseVecT >
int lvr2::TetraederBox< BaseVecT >::calcPatternIndex ( float  distances[4])
inlineprivate

Definition at line 86 of file TetraederBox.hpp.

◆ getSurface()

template<typename BaseVecT >
virtual void lvr2::TetraederBox< BaseVecT >::getSurface ( BaseMesh< BaseVecT > &  mesh,
vector< QueryPoint< BaseVecT >> &  query_points,
uint globalIndex 
)
virtual

Performs a local reconstruction using a tetraeder decomposition of the current cell.

Parameters
meshThe reconstructed mesh
query_pointsA vector containing the query points of the reconstruction grid
globalIndexThe index of the newest vertex in the mesh, i.e. a newly generated vertex shout have the index globalIndex + 1.

Reimplemented from lvr2::FastBox< BaseVecT >.

◆ interpolateIntersections()

template<typename BaseVecT >
void lvr2::TetraederBox< BaseVecT >::interpolateIntersections ( int  tetraNumber,
BaseVecT  positions[4],
float  distances[4] 
)
inlineprivate

Member Data Documentation

◆ m_intersectionPositionsTetraeder

template<typename BaseVecT >
BaseVecT lvr2::TetraederBox< BaseVecT >::m_intersectionPositionsTetraeder[6]
private

Definition at line 103 of file TetraederBox.hpp.

◆ m_intersections

template<typename BaseVecT >
OptionalVertexHandle lvr2::TetraederBox< BaseVecT >::m_intersections[19]
private

Definition at line 102 of file TetraederBox.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:12