Go to the documentation of this file.
35 #ifndef DMCReconstruction_HPP_
36 #define DMCReconstruction_HPP_
66 template<
typename BaseVecT,
typename BoxT>
102 vector<unsigned int>& duplicates,
103 float comparePrecision
286 #include "DMCReconstruction.tcc"
DualLeaf< BaseVecT, BoxT > * getDualLeaf(CellHandle &cell, int cells, C_Octree< BaseVecT, BoxT, my_dummy > &octree, char pos)
Builds a dual cell at given position.
void matrixDotVector(float *matrix, BaseVecT *vector)
Performs a matrix multiplication.
float getDistance(BaseVecT p, BaseVecT v1, BaseVecT v2, BaseVecT v3)
Calculates the distance between a point and a triangle.
DMCReconstruction(PointsetSurfacePtr< BaseVecT > surface, BoundingBox< BaseVecT > bb, bool dual, int maxLevel, float maxError)
Constructor.
C_Octree< BaseVecT, BoxT, my_dummy > * octree
virtual ~DMCReconstruction()
Destructor.
void getRotationMatrix(float matrix[9], BaseVecT v1, BaseVecT v2, BaseVecT v3)
Calculates a rotation matrix for a triangle that rotates it into xy.
void detectVertexForDualCell(C_Octree< BaseVecT, BoxT, my_dummy > &octree, CellHandle ch, int cells, float max_bb_width, uint pos, int onEdge, BaseVecT &feature)
Calculates the position of a aspecific point in a dual cell.
std::shared_ptr< PointsetSurface< BaseVecT > > PointsetSurfacePtr
ProgressBar * m_progressBar
void drawOctree(C_Octree< BaseVecT, BoxT, my_dummy > &parent)
Saves the octree as wireframe. WORKS ONLY SINGLE THREADED!
Interface class for surface reconstruction algorithms that generate triangle meshes from point set su...
unique_ptr< DMCPointHandle< BaseVecT > > m_pointHandler
A surface reconstruction object that implements the standard marching cubes algorithm using a octree ...
void getSurface(BaseMesh< BaseVecT > &mesh, DualLeaf< BaseVecT, BoxT > *leaf, int cells, short level)
Performs a local reconstruction according to the standard Marching Cubes table from Paul Bourke.
A dynamic bounding box class.
void buildTree(C_Octree< BaseVecT, BoxT, my_dummy > &parent, int levels, bool dual)
Builds a tree level respectively creates the child nodes of a root node.
virtual void getMesh(BaseMesh< BaseVecT > &mesh)
Returns the surface reconstruction of the given point set.
void traverseTree(BaseMesh< BaseVecT > &mesh, C_Octree< BaseVecT, BoxT, my_dummy > &octree)
Traverses the octree and insert for each leaf the getSurface-function into the thread pool.
float edgeEquation(BaseVecT p, BaseVecT v1, BaseVecT v2)
Calculates whether the given vertex lies left, right or on the given line.
Interface for triangle-meshes with adjacency information.
std::vector< BaseVecT > dualVertices
BaseVecT m_boundingBoxCenter
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 Wed Mar 2 2022 00:37:23