/// <summary> /// Triangulate the polygon into a lot of triangles /// </summary> private void DoTriangulate() { triangles = null; if (points.Count <= 3) { return; } // Convert to Vector4[] Vector4[] controlPoints = new Vector4[points.Count]; for (int i = 0; i < points.Count; i++) { controlPoints[i] = new Vector4(points[i].X, points[i].Y, 0); } // Triangulate the polygon triangleIndices = PolygonModifier.Triangulate(controlPoints); // Save triangle vertex for later drawing. triangles = new Vector4[triangleIndices.Length][]; for (int i = 0; i < triangleIndices.Length; i++) { int[] triangleFace = triangleIndices[i]; Vector4[] triangle = triangles[i] = new Vector4[3]; triangle[0] = controlPoints[triangleFace[0]]; triangle[1] = controlPoints[triangleFace[1]]; triangle[2] = controlPoints[triangleFace[2]]; } }