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

Used for extended marching cubes Reconstruction. More...

#include <SharpBox.hpp>

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

Public Member Functions

virtual void getSurface (BaseMesh< BaseVecT > &mesh, vector< QueryPoint< BaseVecT > > &query_points, uint &globalIndex)
 Performs a local reconstruction w.r.t. to sharp features. More...
 
virtual void getSurface (std::vector< float > &vBuffer, std::vector< unsigned int > &fBuffer, vector< QueryPoint< BaseVecT > > &query_points, uint &globalIndex)
 
virtual void getSurface (BaseMesh< BaseVecT > &mesh, vector< QueryPoint< BaseVecT > > &query_points, uint &globalIndex, BoundingBox< BaseVecT > &bb, vector< unsigned int > &duplicates, float comparePrecision)
 
 SharpBox (BaseVecT center)
 
virtual ~SharpBox ()
 
- 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)
 Performs a local reconstruction according to the standard Marching Cubes table from Paul Bourke. More...
 
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...
 

Public Attributes

bool m_containsSharpCorner
 
bool m_containsSharpFeature
 
uint m_extendedMCIndex
 
- 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

static float m_phi_corner
 
static PointsetSurfacePtr< BaseVecT > m_surface
 
static float m_theta_sharp
 
- 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...
 

Private Types

typedef SharpBox< BaseVecT > BoxType
 

Private Member Functions

void detectSharpFeatures (BaseVecT vertex_positions[], Normal< typename BaseVecT::CoordType > vertex_normals[], uint index)
 
void getNormals (BaseVecT vertex_positions[], Normal< typename BaseVecT::CoordType > vertex_normals[])
 gets the normals for the given vertices More...
 

Additional Inherited Members

- 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::SharpBox< BaseVecT >

Used for extended marching cubes Reconstruction.

Definition at line 53 of file SharpBox.hpp.

Member Typedef Documentation

◆ BoxType

template<typename BaseVecT >
typedef SharpBox<BaseVecT> lvr2::SharpBox< BaseVecT >::BoxType
private

Definition at line 125 of file SharpBox.hpp.

Constructor & Destructor Documentation

◆ SharpBox()

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

◆ ~SharpBox()

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

Member Function Documentation

◆ detectSharpFeatures()

template<typename BaseVecT >
void lvr2::SharpBox< BaseVecT >::detectSharpFeatures ( BaseVecT  vertex_positions[],
Normal< typename BaseVecT::CoordType >  vertex_normals[],
uint  index 
)
private

◆ getNormals()

template<typename BaseVecT >
void lvr2::SharpBox< BaseVecT >::getNormals ( BaseVecT  vertex_positions[],
Normal< typename BaseVecT::CoordType >  vertex_normals[] 
)
private

gets the normals for the given vertices

Parameters
vertex_positionsThe vertices
vertex_normalsThis array holds the normals of the given vertices after calling the method.

◆ getSurface() [1/3]

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

Performs a local reconstruction w.r.t. to sharp features.

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.

◆ getSurface() [2/3]

template<typename BaseVecT >
virtual void lvr2::SharpBox< BaseVecT >::getSurface ( std::vector< float > &  vBuffer,
std::vector< unsigned int > &  fBuffer,
vector< QueryPoint< BaseVecT > > &  query_points,
uint globalIndex 
)
inlinevirtual

Definition at line 74 of file SharpBox.hpp.

◆ getSurface() [3/3]

template<typename BaseVecT >
virtual void lvr2::SharpBox< BaseVecT >::getSurface ( BaseMesh< BaseVecT > &  mesh,
vector< QueryPoint< BaseVecT > > &  query_points,
uint globalIndex,
BoundingBox< BaseVecT > &  bb,
vector< unsigned int > &  duplicates,
float  comparePrecision 
)
inlinevirtual

Definition at line 80 of file SharpBox.hpp.

Member Data Documentation

◆ m_containsSharpCorner

template<typename BaseVecT >
bool lvr2::SharpBox< BaseVecT >::m_containsSharpCorner

Definition at line 101 of file SharpBox.hpp.

◆ m_containsSharpFeature

template<typename BaseVecT >
bool lvr2::SharpBox< BaseVecT >::m_containsSharpFeature

Definition at line 97 of file SharpBox.hpp.

◆ m_extendedMCIndex

template<typename BaseVecT >
uint lvr2::SharpBox< BaseVecT >::m_extendedMCIndex

Definition at line 105 of file SharpBox.hpp.

◆ m_phi_corner

template<typename BaseVecT >
float lvr2::SharpBox< BaseVecT >::m_phi_corner
static

Definition at line 93 of file SharpBox.hpp.

◆ m_surface

template<typename BaseVecT >
PointsetSurfacePtr<BaseVecT> lvr2::SharpBox< BaseVecT >::m_surface
static

Definition at line 108 of file SharpBox.hpp.

◆ m_theta_sharp

template<typename BaseVecT >
float lvr2::SharpBox< BaseVecT >::m_theta_sharp
static

Definition at line 90 of file SharpBox.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