From 9acf0621d0bb518a292558e840e7f25330d9c75f Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Sun, 7 May 2017 08:43:19 +0200 Subject: [PATCH] [libgdx] Do less work for first bezier segment. --- .../src/com/esotericsoftware/spine/Animation.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java index 17a0d93c8..3dd3afde9 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -245,14 +245,8 @@ public class Animation { for (int start = i, n = i + BEZIER_SIZE - 1; i < n; i += 2) { x = curves[i]; if (x >= percent) { - float prevX, prevY; - if (i == start) { - prevX = 0; - prevY = 0; - } else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } + if (i == start) return curves[i + 1] * percent / x; // First point is 0,0. + float prevX = curves[i - 2], prevY = curves[i - 1]; return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); } }