Renamed ConvexDecomposer to Triangulator.

This commit is contained in:
Nathan Sweet 2017-04-21 14:52:02 +09:00
parent 6454d76700
commit a50ee49781
2 changed files with 12 additions and 6 deletions

View File

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

View File

@ -36,7 +36,7 @@ import com.badlogic.gdx.utils.FloatArray;
import com.badlogic.gdx.utils.Pool;
import com.badlogic.gdx.utils.ShortArray;
class ConvexDecomposer {
class Triangulator {
private final Array<FloatArray> convexPolygons = 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;
indicesArray.clear();
@ -131,6 +131,12 @@ class ConvexDecomposer {
triangles.add(indices[1]);
}
return triangles;
}
public Array<FloatArray> decompose (FloatArray verticesArray, ShortArray triangles) {
float[] vertices = verticesArray.items;
Array<FloatArray> convexPolygons = this.convexPolygons;
polygonPool.freeAll(convexPolygons);
convexPolygons.clear();