42#ifndef delaunaytrinagulator_h
43#define delaunaytrinagulator_h
Timer searchingTimer
Measures time needed by searching for non-delaunay triangles.
void addUniqueEdgeToPolygon(Edge2D edge, std ::list< Edge2D > &polygon)
Edge is added to the polygon only if it's not contained. Otherwise both are removed (edge shared by t...
void giveAlphaShape()
Iterates through the edgeList container and compares alpha-value with alphaEdge bounds....
Timer meshingTimer
Measures overall time of triangulation procedure.
void generateMesh()
Main call.
void meshPolygon(int insertedNode, InsertTriangleBasedOnCircumcircle &tInsert, std ::list< Edge2D > &polygon)
Retriangulates the polygon.
std ::list< AlphaEdge2D * > alphaShapeEdgeList
Contains resulting alpha-shape in form of a list.
void computeAlphaComplex()
Reads the triangulation and fills tha edgeList container with alpha-shape edges and set their bounds.
void giveTimeReport()
Prints the time report.
Timer polygonTimer
Measures time needed for identifying polygon to be retriangulated.
AlphaEdge2D * giveBackEdgeIfAlreadyContainedInList(AlphaEdge2D &alphaEdge)
void computeBBXBasedOnNodeData(BoundingBox &BBX)
Calculates the bounding box base on the domain's nodes.
std ::list< AlphaEdge2D * > edgeList
contains all edges of the triangulation
OctreeSpatialLocalizerT< DelaunayTriangle * > triangleOctree
Octree with Delaunay triangles allowing fast search.
Domain * domain
Domain of the PFEM problem containing nodes to be triangulated.
~DelaunayTriangulator()
Destructor.
void buildInitialBBXMesh(InsertTriangleBasedOnCircumcircle &tInsert)
Identifies the bounding box of pfemparticles and creates initial triangulation consisting of 2 triang...
DelaunayTriangulator(Domain *d, double setAlpha)
Constructor.
void cleanUpTriangleList()
Iterates through generalTringleList und removes non-valid ones or those containing bounding box nodes...
void writeMesh()
Writes the mesh into the domain by creating new tr1_2d_pfem elements and prescribes zero-pressure bou...
void initializeTimers()
Initializes Timers and.
Timer creativeTimer
Measures time needed for creating new Delaunay triangles.
void findNonDelaunayTriangles(int insertedNode, InsertTriangleBasedOnCircumcircle &tInsert, std ::list< Edge2D > &polygon)
Looks for non-Delaunay triangles in octree and creates a polygon.
std ::list< DelaunayTriangle * > generalTriangleList
Contains all triangles (even not valid).