TriangulationObject is a compound object that builds a TriMesh from a list of generators (splines and polylines), and a set of markers that define holes or material ids.
TriangulationObject uses Triangle, a library by Jonathan Richard Shewchuk, to generate a Delaunay constrained triangulation mesh.
The generators are the objects that define the lines and vertices that will be used to constrain the triangulation. At the moment only BezierSplineObjects are supported. This objects are converted to PolyLines, and sent to the Triangle library to generate the triangulation.
When polylines in different levels intersect, the polyline in the higher position in the list defines the height for the intersection vertex.
The generators define regions, where the generators act as the boundaries. A marker placed on a region affects the whole region.
There are two types of markers, holes and material ids.
This marker carves holes in the triangulation. It completely deletes all the faces of the region where it is placed.
This marker changes the material id of the whole region. By default the output mesh has assigned the material id 1. So to appreciate the effect of this marker it should be set to a value greater than 1.
The TriangulationObject offers a set of options that affect the final triangulation mesh:
Vertices closer than this distance are welded together.
This value defines the maximum area a triangle can have. Use this option with caution as it might create trizillions of triangles and crash CrackArt.
This value defines the minimum angle in a triangle.
By default the TriangulationObject sets all edges as invisible, except those defined by the generator polylines. This option makes all edges visible.
This option finds and creates holes iteratively by removing the regions that are not touching a border.