From e334d7a27ac629c4efa64fda5fe19dcdd7b5c219 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Thu, 6 Apr 2017 18:09:01 +0900 Subject: [PATCH] Don't need local to track if all edges were outside. --- .../src/com/esotericsoftware/spine/utils/Clipper.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Clipper.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Clipper.java index e71c1ad59..a1ea62b2d 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Clipper.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Clipper.java @@ -69,8 +69,7 @@ public class Clipper { float deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; float[] inputVertices = input.items; - int inputVerticesLength = input.size - 2; - int numOutside = 0; + int inputVerticesLength = input.size - 2, outputStart = output.size; for (int ii = 0; ii < inputVerticesLength; ii += 2) { float inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; float inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; @@ -90,9 +89,7 @@ public class Clipper { clipped = true; } } else { - if (side2 < 0) // v1 outside, v2 outside: no output - numOutside += 2; - else { // v1 outside, v2 inside + if (side2 >= 0) { // v1 outside, v2 inside float c0 = inputY2 - inputY, c2 = inputX2 - inputX; float d = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); float ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / d; @@ -105,8 +102,7 @@ public class Clipper { } } - // Early out if all edges were outside. - if (numOutside == inputVerticesLength) { + if (outputStart == output.size) { // All edges were outside. originalOutput.clear(); return true; }