Ver código fonte

Renamed ConvexDecomposer to Triangulator.

Nathan Sweet 8 anos atrás
pai
commit
a50ee49781

+ 2 - 2
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java

@@ -37,7 +37,7 @@ import com.esotericsoftware.spine.Slot;
 import com.esotericsoftware.spine.attachments.ClippingAttachment;
 import com.esotericsoftware.spine.attachments.ClippingAttachment;
 
 
 public class SkeletonClipping {
 public class SkeletonClipping {
-	private final ConvexDecomposer decomposer = new ConvexDecomposer();
+	private final Triangulator triangulator = new Triangulator();
 	private final FloatArray clippingPolygon = new FloatArray();
 	private final FloatArray clippingPolygon = new FloatArray();
 	private final FloatArray clipOutput = new FloatArray(128);
 	private final FloatArray clipOutput = new FloatArray(128);
 	private final FloatArray clippedVertices = new FloatArray(128);
 	private final FloatArray clippedVertices = new FloatArray(128);
@@ -55,7 +55,7 @@ public class SkeletonClipping {
 		float[] vertices = clippingPolygon.setSize(n);
 		float[] vertices = clippingPolygon.setSize(n);
 		clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);
 		clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);
 		makeClockwise(clippingPolygon);
 		makeClockwise(clippingPolygon);
-		clippingPolygons = decomposer.decompose(clippingPolygon);
+		clippingPolygons = triangulator.decompose(clippingPolygon, triangulator.triangulate(clippingPolygon));
 		for (FloatArray polygon : clippingPolygons) {
 		for (FloatArray polygon : clippingPolygons) {
 			makeClockwise(polygon);
 			makeClockwise(polygon);
 			polygon.add(polygon.items[0]);
 			polygon.add(polygon.items[0]);

+ 10 - 4
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/ConvexDecomposer.java → spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Triangulator.java

@@ -36,7 +36,7 @@ import com.badlogic.gdx.utils.FloatArray;
 import com.badlogic.gdx.utils.Pool;
 import com.badlogic.gdx.utils.Pool;
 import com.badlogic.gdx.utils.ShortArray;
 import com.badlogic.gdx.utils.ShortArray;
 
 
-class ConvexDecomposer {
+class Triangulator {
 	private final Array<FloatArray> convexPolygons = new Array();
 	private final Array<FloatArray> convexPolygons = new Array();
 	private final Array<ShortArray> convexPolygonsIndices = new Array();
 	private final Array<ShortArray> convexPolygonsIndices = new Array();
 
 
@@ -56,9 +56,9 @@ class ConvexDecomposer {
 		}
 		}
 	};
 	};
 
 
-	public Array<FloatArray> decompose (FloatArray input) {
-		float[] vertices = input.items;
-		int vertexCount = input.size >> 1;
+	public ShortArray triangulate (FloatArray verticesArray) {
+		float[] vertices = verticesArray.items;
+		int vertexCount = verticesArray.size >> 1;
 
 
 		ShortArray indicesArray = this.indicesArray;
 		ShortArray indicesArray = this.indicesArray;
 		indicesArray.clear();
 		indicesArray.clear();
@@ -131,6 +131,12 @@ class ConvexDecomposer {
 			triangles.add(indices[1]);
 			triangles.add(indices[1]);
 		}
 		}
 
 
+		return triangles;
+	}
+
+	public Array<FloatArray> decompose (FloatArray verticesArray, ShortArray triangles) {
+		float[] vertices = verticesArray.items;
+
 		Array<FloatArray> convexPolygons = this.convexPolygons;
 		Array<FloatArray> convexPolygons = this.convexPolygons;
 		polygonPool.freeAll(convexPolygons);
 		polygonPool.freeAll(convexPolygons);
 		convexPolygons.clear();
 		convexPolygons.clear();