triangulate will take an ordered set of nodes in the current 2d mesh object that define a perimeter of a polygon and create a trangulation of the polygon.
The nodes are assumed to lie in the xy plane; the z coordinate is ignored.
The code will exit early if orientation or node ordering is not correct.

Use REFINE and SMOOTH to break triangles into desired resolution.

No checks are performed to verify that the nodes define a legal perimeter (i.e. that segments of the perimeter do not cross). The code will connect the last node to the first node to complete the perimeter.

This code supports triangulation of self-intersecting polygons (polygon with holes), assuming that the order of the nodes are correct. Moreover the connectivity of the polyline must also be defined correctly. No checks are made.
One disadvantage of the algorithm for triangulating self-intersecting polygons is that it does not always work. For example, if the holes have complicated shapes, with many concave vertices, the code might fail. In this case, the user may try to rotate the order of the nodes:

Issue 57 is a known difficulty in the case where polygon points have a large number of co-linear points.


triangulate / 

triangulate / clockwise or counterclockwise 

clockwise or counterclockwise (default clockwise) Orientation is defined with the viewer above the xy plane.



Both examples will triangulate the points in the clockwise direction.

cmo/create/2dmesh /// tri

refine/rivara///edge/1 0 0/ 0.05 ///inclusive

Triangulate a polygon and then use refine/rivara to refine mesh to desired element size.

Click here for demos