public void Simplify() { ToDefault(); var vertices = GetVertices(); var holes = GetHoles(); var newSimplifiedPolygons = Simplifier.Simplify(vertices, holes); var polygonTr = polygon.transform; var polygonPos = polygonTr.position; var polygonRot = polygonTr.rotation; for (var i = 0; i < newSimplifiedPolygons.Count; i++) { var simplifiedPolygon = newSimplifiedPolygons[i]; var newPolygon = Polygon.NewPolygon(simplifiedPolygon, polygonPos, polygonRot, transform, nameof(Polygon) + " " + i); newPolygon.Centralize(); simplifiedPolygons.Add(newPolygon); } polygon.gameObject.SetActive(false); for (var i = 0; i < this.holes.Count; i++) { this.holes[i].gameObject.SetActive(false); } polygonMode = Polygon.PolygonMode.Simplified; }
public void Triangulate() { Simplify(); for (var i = 0; i < simplifiedPolygons.Count; i++) { simplifiedPolygons[i].Triangulate(); } polygonMode = Polygon.PolygonMode.Triangulated; }
public void ToDefault() { while (simplifiedPolygons.Count > 0) { var simplifiedPolygon = simplifiedPolygons[0]; if (simplifiedPolygon != null) { DestroyImmediate(simplifiedPolygon.gameObject); } simplifiedPolygons.RemoveAt(0); } polygon.gameObject.SetActive(true); for (var i = 0; i < holes.Count; i++) { holes[i].gameObject.SetActive(true); } polygonMode = Polygon.PolygonMode.Default; }