42 #ifndef delaunaytrinagulator_h 43 #define delaunaytrinagulator_h 88 std :: list< DelaunayTriangle * > :: iterator
genIT;
95 std :: list< AlphaEdge2D * > :: iterator
elIT;
146 #endif // delaunaytrinagulator_h Squared bounding box for templated octree localizer.
Timer polygonTimer
Measures time needed for identifying polygon to be retriangulated.
void computeBBXBasedOnNodeData(BoundingBox &BBX)
Calculates the bounding box base on the domain's nodes.
Class for the boundary recognition method - alpha shape.
Timer meshingTimer
Measures overall time of triangulation procedure.
AlphaEdge2D * giveBackEdgeIfAlreadyContainedInList(AlphaEdge2D *alphaEdge)
Fills the edgeList with unique alphaEdges.
Edge class for Delaunay triangulation.
void computeAlphaComplex()
Reads the triangulation and fills tha edgeList container with alpha-shape edges and set their bounds...
void generateMesh()
Main call.
void giveTimeReport()
Prints the time report.
std::list< DelaunayTriangle * > generalTriangleList
Contains all triangles (even not valid)
~DelaunayTriangulator()
Destructor.
Timer searchingTimer
Measures time needed by searching for non-delaunay triangles.
std::list< AlphaEdge2D * > edgeList
contains all edges of the triangulation
std::list< DelaunayTriangle * >::iterator genIT
void buildInitialBBXMesh(InsertTriangleBasedOnCircumcircle &tInsert)
Identifies the bounding box of pfemparticles and creates initial triangulation consisting of 2 triang...
void writeMesh()
Writes the mesh into the domain by creating new tr1_2d_pfem elements and prescribes zero-pressure bou...
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.
void meshPolygon(int insertedNode, InsertTriangleBasedOnCircumcircle &tInsert, std::list< Edge2D > &polygon)
Retriangulates the polygon.
OctreeSpatialLocalizerT< DelaunayTriangle * > triangleOctree
Octree with Delaunay triangles allowing fast search.
Functor for storing triangles in the octree according to theirs circumscribed circles.
void cleanUpTriangleList()
Iterates through generalTringleList und removes non-valid ones or those containing bounding box nodes...
std::list< AlphaEdge2D * >::iterator elIT
Domain * domain
Domain of the PFEM problem containing nodes to be triangulated.
std::list< AlphaEdge2D * > alphaShapeEdgeList
Contains resulting alpha-shape in form of a list.
Class implementing single timer, providing wall clock and user time capabilities. ...
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...
Templated octree spatial localizer.
Mesh generator for the PFEM problem, using Bowyer-Watson algorithm of the Delaunay triangulation of a...
the oofem namespace is to define a context or scope in which all oofem names are defined.
void giveAlphaShape()
Iterates through the edgeList container and compares alpha-value with alphaEdge bounds. Alpha shape is stored in the alphaShapeEdgeList.
DelaunayTriangulator(Domain *d, double setAlpha)
Constructor.
void initializeTimers()
Initializes Timers and.