35 #ifndef TETRAEDERBOX_H_ 36 #define TETRAEDERBOX_H_ 48 template<
typename BaseVecT>
89 for(
int i = 0; i < 4; i++)
91 if(distances[i] > 0) index |= (1 << i);
98 BaseVecT positions[4],
109 #include "TetraederBox.tcc"
BaseVecT m_intersectionPositionsTetraeder[6]
Used for Marching Tetreader Reconstruction. Dives a regular box into 5 Tetraeders for mesh generation...
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.
Semantically equivalent to boost::optional<VertexHandle>
Interface for triangle-meshes with adjacency information.
A query Vector for marching cubes reconstructions. It represents a Vector in space together with a 'd...
OptionalVertexHandle m_intersections[19]
void interpolateIntersections(int tetraNumber, BaseVecT positions[4], float distances[4])
A volume representation used by the standard Marching Cubes implementation.
int calcPatternIndex(float distances[4])
TetraederBox(BaseVecT center)