Used for extended marching cubes Reconstruction. More...
#include <SharpBox.hpp>

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 (BaseMesh< BaseVecT > &mesh, vector< QueryPoint< BaseVecT > > &query_points, uint &globalIndex, BoundingBox< BaseVecT > &bb, vector< unsigned int > &duplicates, float comparePrecision) |
| virtual void | getSurface (std::vector< float > &vBuffer, std::vector< unsigned int > &fBuffer, vector< QueryPoint< BaseVecT > > &query_points, uint &globalIndex) |
| 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... | |
Used for extended marching cubes Reconstruction.
Definition at line 53 of file SharpBox.hpp.
|
private |
Definition at line 125 of file SharpBox.hpp.
| lvr2::SharpBox< BaseVecT >::SharpBox | ( | BaseVecT | center | ) |
|
virtual |
|
private |
|
private |
gets the normals for the given vertices
| vertex_positions | The vertices |
| vertex_normals | This array holds the normals of the given vertices after calling the method. |
|
virtual |
Performs a local reconstruction w.r.t. to sharp features.
| mesh | The reconstructed mesh |
| query_points | A vector containing the query points of the reconstruction grid |
| globalIndex | The index of the newest vertex in the mesh, i.e. a newly generated vertex shout have the index globalIndex + 1. |
|
inlinevirtual |
Definition at line 80 of file SharpBox.hpp.
|
inlinevirtual |
Definition at line 74 of file SharpBox.hpp.
| bool lvr2::SharpBox< BaseVecT >::m_containsSharpCorner |
Definition at line 101 of file SharpBox.hpp.
| bool lvr2::SharpBox< BaseVecT >::m_containsSharpFeature |
Definition at line 97 of file SharpBox.hpp.
| uint lvr2::SharpBox< BaseVecT >::m_extendedMCIndex |
Definition at line 105 of file SharpBox.hpp.
|
static |
Definition at line 93 of file SharpBox.hpp.
|
static |
Definition at line 108 of file SharpBox.hpp.
|
static |
Definition at line 90 of file SharpBox.hpp.