A volume representation used by the standard Marching Cubes implementation. More...
#include <FastBox.hpp>

| Public Member Functions | |
| 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 | |
| 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 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 | |
| typedef FastBox< BaseVecT > | BoxType | 
| Protected Member Functions | |
| 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 | |
| uint | m_vertices [8] | 
| The eight box corners.  More... | |
| Friends | |
| template<typename T > | |
| class | BilinearFastBox | 
A volume representation used by the standard Marching Cubes implementation.
Definition at line 65 of file FastBox.hpp.
| 
 | protected | 
Definition at line 218 of file FastBox.hpp.
| lvr2::FastBox< BaseVecT >::FastBox | ( | BaseVecT | center | ) | 
Constructs a new box at the given center point defined by the used m_voxelsize}.
| 
 | inlinevirtual | 
Destructor.NormalT.
Definition at line 78 of file FastBox.hpp.
| 
 | protected | 
| 
 | inlineprotected | 
Definition at line 160 of file FastBox.hpp.
| 
 | protected | 
| 
 | inline | 
Definition at line 111 of file FastBox.hpp.
| 
 | protected | 
Calculates the position of the eight cell corners.
| corners | The cell corners | 
| query_points | The query points of the grid | 
| 
 | protected | 
Calculates the distance value for the eight cell corners.
| distances | The distance values | 
| query_points | The query points of the grid | 
| 
 | protected | 
Calculated the index for the MC table.
| 
 | protected | 
Calculated the 12 possible intersections between the cell and the surface to interpolate.
| corners | The eight corners of the current cell | 
| distance | The corresponding distance value | 
| positions | The interpolated intersections. | 
| FastBox<BaseVecT>* lvr2::FastBox< BaseVecT >::getNeighbor | ( | int | index | ) | 
| 
 | virtual | 
Performs a local reconstruction according to the standard Marching Cubes table from Paul Bourke.
| 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. | 
Reimplemented in lvr2::TetraederBox< BaseVecT >, and lvr2::BilinearFastBox< BaseVecT >.
| 
 | virtual | 
Reimplemented in lvr2::BilinearFastBox< BaseVecT >.
| uint lvr2::FastBox< BaseVecT >::getVertex | ( | int | index | ) | 
Gets the vertex index of the queried cell corner.
| index | One of the eight cell corners | 
| void lvr2::FastBox< BaseVecT >::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.
| index | One of the eight cell corners. | 
| cell | A neighbor cell. | 
| void lvr2::FastBox< BaseVecT >::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.
| index | One of the eight cell corners. | 
| value | An index in the reconstruction grid. | 
Definition at line 216 of file FastBox.hpp.
| 
 | static | 
An index value that is used to reference vertices that are not in the grid.
Definition at line 144 of file FastBox.hpp.
| BaseVecT lvr2::FastBox< BaseVecT >::m_center | 
The box center.
Definition at line 152 of file FastBox.hpp.
| bool lvr2::FastBox< BaseVecT >::m_duplicate | 
Definition at line 149 of file FastBox.hpp.
| bool lvr2::FastBox< BaseVecT >::m_extruded | 
Definition at line 148 of file FastBox.hpp.
| OptionalVertexHandle lvr2::FastBox< BaseVecT >::m_intersections[12] | 
The twelve intersection between box and surface.
Definition at line 147 of file FastBox.hpp.
| FastBox<BaseVecT>* lvr2::FastBox< BaseVecT >::m_neighbors[27] | 
Pointer to all adjacent cells.
Definition at line 155 of file FastBox.hpp.
| 
 | protected | 
The eight box corners.
Definition at line 214 of file FastBox.hpp.
| 
 | static | 
The voxelsize of the reconstruction grid.
Definition at line 141 of file FastBox.hpp.