public void AddPolygonByCuttingEars(IList<int> vertexIndices)
{
var points = vertexIndices.Select(vi => this.positions[vi]).ToList();
var poly3D = new Polygon3D(points);
// Transform the polygon to 2D
var poly2D = poly3D.Flatten();
// Triangulate
var triangulatedIndices = poly2D.Triangulate();
if (triangulatedIndices != null)
{
foreach (var i in triangulatedIndices)
{
this.triangleIndices.Add(vertexIndices[i]);
}
}
}