diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/utils/SkeletonSerializer.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/utils/SkeletonSerializer.java index c2d3847f5..09dcf6a3b 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/utils/SkeletonSerializer.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/utils/SkeletonSerializer.java @@ -17,7 +17,6 @@ import com.esotericsoftware.spine.AnimationState.TrackEntry; import com.esotericsoftware.spine.AnimationStateData; import com.esotericsoftware.spine.Bone; import com.esotericsoftware.spine.BoneData; -import com.esotericsoftware.spine.BoneLocal; import com.esotericsoftware.spine.BonePose; import com.esotericsoftware.spine.Constraint; import com.esotericsoftware.spine.ConstraintData; @@ -1999,7 +1998,7 @@ public class SkeletonSerializer { writeBoneData(obj.getData()); json.writeName("pose"); - writeBoneLocal(obj.getPose()); + writeBonePose(obj.getPose()); json.writeName("appliedPose"); writeBonePose(obj.getAppliedPose()); @@ -2047,7 +2046,7 @@ public class SkeletonSerializer { json.writeValue(obj.getName()); json.writeName("setupPose"); - writeBoneLocal(obj.getSetupPose()); + writeBonePose(obj.getSetupPose()); json.writeName("skinRequired"); json.writeValue(obj.getSkinRequired()); @@ -2055,47 +2054,6 @@ public class SkeletonSerializer { json.writeObjectEnd(); } - private void writeBoneLocal (BoneLocal obj) { - if (visitedObjects.containsKey(obj)) { - json.writeValue(visitedObjects.get(obj)); - return; - } - String refString = ""; - visitedObjects.put(obj, refString); - - json.writeObjectStart(); - json.writeName("refString"); - json.writeValue(refString); - json.writeName("type"); - json.writeValue("BoneLocal"); - - json.writeName("x"); - json.writeValue(obj.getX()); - - json.writeName("y"); - json.writeValue(obj.getY()); - - json.writeName("rotation"); - json.writeValue(obj.getRotation()); - - json.writeName("scaleX"); - json.writeValue(obj.getScaleX()); - - json.writeName("scaleY"); - json.writeValue(obj.getScaleY()); - - json.writeName("shearX"); - json.writeValue(obj.getShearX()); - - json.writeName("shearY"); - json.writeValue(obj.getShearY()); - - json.writeName("inherit"); - json.writeValue(obj.getInherit().name()); - - json.writeObjectEnd(); - } - private void writeBonePose (BonePose obj) { if (visitedObjects.containsKey(obj)) { json.writeValue(visitedObjects.get(obj)); 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 7bce9ca04..abac11d9f 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -517,7 +517,7 @@ public class Animation { if (bone.active) apply(appliedPose ? bone.applied : bone.pose, bone.data.setup, time, alpha, fromSetup, add, out); } - abstract protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, + abstract protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out); } @@ -559,30 +559,28 @@ public class Animation { if (bone.active) apply(appliedPose ? bone.applied : bone.pose, bone.data.setup, time, alpha, fromSetup, add, out); } - abstract protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, + abstract protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out); } - /** Changes {@link BoneLocal#getRotation()}. */ + /** Changes {@link BonePose#getRotation()}. */ static public class RotateTimeline extends BoneTimeline1 { public RotateTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.rotate); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.rotation = getRelativeValue(time, alpha, fromSetup, add, pose.rotation, setup.rotation); } } - /** Changes {@link BoneLocal#getX()} and {@link BoneLocal#getY()}. */ + /** Changes {@link BonePose#getX()} and {@link BonePose#getY()}. */ static public class TranslateTimeline extends BoneTimeline2 { public TranslateTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.x, Property.y); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { float[] frames = this.frames; if (time < frames[0]) { if (fromSetup) { @@ -626,38 +624,35 @@ public class Animation { } } - /** Changes {@link BoneLocal#getX()}. */ + /** Changes {@link BonePose#getX()}. */ static public class TranslateXTimeline extends BoneTimeline1 { public TranslateXTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.x); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.x = getRelativeValue(time, alpha, fromSetup, add, pose.x, setup.x); } } - /** Changes {@link BoneLocal#getY()}. */ + /** Changes {@link BonePose#getY()}. */ static public class TranslateYTimeline extends BoneTimeline1 { public TranslateYTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.y); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.y = getRelativeValue(time, alpha, fromSetup, add, pose.y, setup.y); } } - /** Changes {@link BoneLocal#getScaleX()} and {@link BoneLocal#getScaleY()}. */ + /** Changes {@link BonePose#getScaleX()} and {@link BonePose#getScaleY()}. */ static public class ScaleTimeline extends BoneTimeline2 { public ScaleTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.scaleX, Property.scaleY); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { float[] frames = this.frames; if (time < frames[0]) { if (fromSetup) { @@ -718,38 +713,35 @@ public class Animation { } } - /** Changes {@link BoneLocal#getScaleX()}. */ + /** Changes {@link BonePose#getScaleX()}. */ static public class ScaleXTimeline extends BoneTimeline1 { public ScaleXTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.scaleX); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.scaleX = getScaleValue(time, alpha, fromSetup, add, out, pose.scaleX, setup.scaleX); } } - /** Changes {@link BoneLocal#getScaleY()}. */ + /** Changes {@link BonePose#getScaleY()}. */ static public class ScaleYTimeline extends BoneTimeline1 { public ScaleYTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.scaleY); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.scaleY = getScaleValue(time, alpha, fromSetup, add, out, pose.scaleY, setup.scaleY); } } - /** Changes {@link BoneLocal#getShearX()} and {@link BoneLocal#getShearY()}. */ + /** Changes {@link BonePose#getShearX()} and {@link BonePose#getShearY()}. */ static public class ShearTimeline extends BoneTimeline2 { public ShearTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.shearX, Property.shearY); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { float[] frames = this.frames; if (time < frames[0]) { if (fromSetup) { @@ -793,31 +785,29 @@ public class Animation { } } - /** Changes {@link BoneLocal#getShearX()}. */ + /** Changes {@link BonePose#getShearX()}. */ static public class ShearXTimeline extends BoneTimeline1 { public ShearXTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.shearX); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.shearX = getRelativeValue(time, alpha, fromSetup, add, pose.shearX, setup.shearX); } } - /** Changes {@link BoneLocal#getShearY()}. */ + /** Changes {@link BonePose#getShearY()}. */ static public class ShearYTimeline extends BoneTimeline1 { public ShearYTimeline (int frameCount, int bezierCount, int boneIndex) { super(frameCount, bezierCount, boneIndex, Property.shearY); } - protected void apply (BoneLocal pose, BoneLocal setup, float time, float alpha, boolean fromSetup, boolean add, - boolean out) { + protected void apply (BonePose pose, BonePose setup, float time, float alpha, boolean fromSetup, boolean add, boolean out) { pose.shearY = getRelativeValue(time, alpha, fromSetup, add, pose.shearY, setup.shearY); } } - /** Changes {@link BoneLocal#getInherit()}. */ + /** Changes {@link BonePose#getInherit()}. */ static public class InheritTimeline extends Timeline implements BoneTimeline { static public final int ENTRIES = 2; static private final int INHERIT = 1; @@ -851,7 +841,7 @@ public class Animation { boolean add, boolean out, boolean appliedPose) { Bone bone = skeleton.bones.items[boneIndex]; if (!bone.active) return; - BoneLocal pose = appliedPose ? bone.applied : bone.pose; + BonePose pose = appliedPose ? bone.applied : bone.pose; if (out) { if (fromSetup) pose.inherit = bone.data.setup.inherit; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index 2151bbef6..c8057cd57 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -345,7 +345,7 @@ public class AnimationState { Bone bone = skeleton.bones.items[timeline.boneIndex]; if (!bone.active) return; - BoneLocal pose = bone.pose, setup = bone.data.setup; + BonePose pose = bone.pose, setup = bone.data.setup; float[] frames = timeline.frames; if (time < frames[0]) { // Time is before first frame. if (fromSetup) pose.rotation = setup.rotation; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java index 0bb7a86cd..d6a4bcd54 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -42,7 +42,7 @@ import com.badlogic.gdx.utils.Null; * {@link Skeleton#updateWorldTransform(Physics)} and {@link BonePose#updateWorldTransform(Skeleton)}. * */ -public class Bone extends PosedActive { +public class Bone extends PosedActive { @Null final Bone parent; final Array children = new Array(true, 4, Bone[]::new); boolean sorted; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java index 0ab396230..647800ba0 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java @@ -33,7 +33,7 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Null; /** The setup pose for a bone. */ -public class BoneData extends PosedData { +public class BoneData extends PosedData { final int index; @Null final BoneData parent; float length; @@ -44,7 +44,7 @@ public class BoneData extends PosedData { boolean visible; public BoneData (int index, String name, @Null BoneData parent) { - super(name, new BoneLocal()); + super(name, new BonePose()); if (index < 0) throw new IllegalArgumentException("index must be >= 0."); if (name == null) throw new IllegalArgumentException("name cannot be null."); this.index = index; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneLocal.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneLocal.java deleted file mode 100644 index 0c95f25d7..000000000 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneLocal.java +++ /dev/null @@ -1,141 +0,0 @@ -/****************************************************************************** - * Spine Runtimes License Agreement - * Last updated April 5, 2025. Replaces all prior versions. - * - * Copyright (c) 2013-2025, Esoteric Software LLC - * - * Integration of the Spine Runtimes into software or otherwise creating - * derivative works of the Spine Runtimes is permitted under the terms and - * conditions of Section 2 of the Spine Editor License Agreement: - * http://esotericsoftware.com/spine-editor-license - * - * Otherwise, it is permitted to integrate the Spine Runtimes into software - * or otherwise create derivative works of the Spine Runtimes (collectively, - * "Products"), provided that each user of the Products must obtain their own - * Spine Editor license and redistribution of the Products in any form must - * include this license and copyright notice. - * - * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, - * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *****************************************************************************/ - -package com.esotericsoftware.spine; - -import com.esotericsoftware.spine.BoneData.Inherit; - -/** Stores a bone's local pose. */ -public class BoneLocal implements Pose { - float x, y, rotation, scaleX, scaleY, shearX, shearY; - Inherit inherit; - - public void set (BoneLocal pose) { - if (pose == null) throw new IllegalArgumentException("pose cannot be null."); - x = pose.x; - y = pose.y; - rotation = pose.rotation; - scaleX = pose.scaleX; - scaleY = pose.scaleY; - shearX = pose.shearX; - shearY = pose.shearY; - inherit = pose.inherit; - } - - /** The local x translation. */ - public float getX () { - return x; - } - - public void setX (float x) { - this.x = x; - } - - /** The local y translation. */ - public float getY () { - return y; - } - - public void setY (float y) { - this.y = y; - } - - /** Sets local x and y translation. */ - public void setPosition (float x, float y) { - this.x = x; - this.y = y; - } - - /** The local rotation in degrees, counter clockwise. */ - public float getRotation () { - return rotation; - } - - public void setRotation (float rotation) { - this.rotation = rotation; - } - - /** The local scaleX. */ - public float getScaleX () { - return scaleX; - } - - public void setScaleX (float scaleX) { - this.scaleX = scaleX; - } - - /** The local scaleY. */ - public float getScaleY () { - return scaleY; - } - - public void setScaleY (float scaleY) { - this.scaleY = scaleY; - } - - /** Sets local x and y scale. */ - public void setScale (float scaleX, float scaleY) { - this.scaleX = scaleX; - this.scaleY = scaleY; - } - - /** Sets local x and y scale to the same value. */ - public void setScale (float scale) { - scaleX = scale; - scaleY = scale; - } - - /** The local shearX. */ - public float getShearX () { - return shearX; - } - - public void setShearX (float shearX) { - this.shearX = shearX; - } - - /** The local shearY. */ - public float getShearY () { - return shearY; - } - - public void setShearY (float shearY) { - this.shearY = shearY; - } - - /** Determines how parent world transforms affect this bone. */ - public Inherit getInherit () { - return inherit; - } - - public void setInherit (Inherit inherit) { - if (inherit == null) throw new IllegalArgumentException("inherit cannot be null."); - this.inherit = inherit; - } -} diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java index 9b35ab622..213136c37 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java @@ -18,12 +18,119 @@ import com.esotericsoftware.spine.BoneData.Inherit; * After changing the world transform, call {@link #updateWorldTransform(Skeleton)} on every descendant bone. It may be more * convenient to modify the local transform instead, then call {@link Skeleton#updateWorldTransform(Physics)} to update the world * transforms for all bones and apply constraints. */ -public class BonePose extends BoneLocal implements Update { +public class BonePose implements Pose, Update { Bone bone; + + float x, y, rotation, scaleX, scaleY, shearX, shearY; + Inherit inherit; + float a, b, worldX; float c, d, worldY; int world, local; + public void set (BonePose pose) { + if (pose == null) throw new IllegalArgumentException("pose cannot be null."); + x = pose.x; + y = pose.y; + rotation = pose.rotation; + scaleX = pose.scaleX; + scaleY = pose.scaleY; + shearX = pose.shearX; + shearY = pose.shearY; + inherit = pose.inherit; + } + + /** The local x translation. */ + public float getX () { + return x; + } + + public void setX (float x) { + this.x = x; + } + + /** The local y translation. */ + public float getY () { + return y; + } + + public void setY (float y) { + this.y = y; + } + + /** Sets local x and y translation. */ + public void setPosition (float x, float y) { + this.x = x; + this.y = y; + } + + /** The local rotation in degrees, counter clockwise. */ + public float getRotation () { + return rotation; + } + + public void setRotation (float rotation) { + this.rotation = rotation; + } + + /** The local scaleX. */ + public float getScaleX () { + return scaleX; + } + + public void setScaleX (float scaleX) { + this.scaleX = scaleX; + } + + /** The local scaleY. */ + public float getScaleY () { + return scaleY; + } + + public void setScaleY (float scaleY) { + this.scaleY = scaleY; + } + + /** Sets local x and y scale. */ + public void setScale (float scaleX, float scaleY) { + this.scaleX = scaleX; + this.scaleY = scaleY; + } + + /** Sets local x and y scale to the same value. */ + public void setScale (float scale) { + scaleX = scale; + scaleY = scale; + } + + /** The local shearX. */ + public float getShearX () { + return shearX; + } + + public void setShearX (float shearX) { + this.shearX = shearX; + } + + /** The local shearY. */ + public float getShearY () { + return shearY; + } + + public void setShearY (float shearY) { + this.shearY = shearY; + } + + /** Determines how parent world transforms affect this bone. */ + public Inherit getInherit () { + return inherit; + } + + public void setInherit (Inherit inherit) { + if (inherit == null) throw new IllegalArgumentException("inherit cannot be null."); + this.inherit = inherit; + } + /** Called by {@link Skeleton#updateCache()} to compute the world transform, if needed. */ public void update (Skeleton skeleton, Physics physics) { if (world != skeleton.update) updateWorldTransform(skeleton); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java index f68105e91..cbdc78de5 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java @@ -5,7 +5,7 @@ abstract public class Constraint< // T extends Constraint, // D extends ConstraintData, // P extends Pose> // - extends PosedActive implements Update { + extends PosedActive implements Update { public Constraint (D data, P pose, P constrained) { super(data, pose, constrained); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Posed.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Posed.java index 7c8fc0e7c..af204894a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Posed.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Posed.java @@ -10,15 +10,14 @@ package com.esotericsoftware.spine; */ abstract public class Posed< // D extends PosedData

, // - P extends Pose, // - A extends P> { + P extends Pose> { final D data; - final A pose; - final A constrained; - A applied; + final P pose; + final P constrained; + P applied; - public Posed (D data, A pose, A constrained) { + protected Posed (D data, P pose, P constrained) { if (data == null) throw new IllegalArgumentException("data cannot be null."); this.data = data; this.pose = pose; @@ -43,7 +42,7 @@ abstract public class Posed< // /** If no constraints modify this object, the applied pose is the same as the {@link #pose}. Otherwise it is a copy of the * {@link #pose} modified by constraints. */ - public A getAppliedPose () { + public P getAppliedPose () { return applied; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedActive.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedActive.java index 1097bea4e..1f10145db 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedActive.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedActive.java @@ -4,13 +4,12 @@ package com.esotericsoftware.spine; /** A posed object that may be active or inactive. */ abstract public class PosedActive< // D extends PosedData

, // - P extends Pose, // - A extends P> // - extends Posed { + P extends Pose> // + extends Posed { boolean active; - public PosedActive (D data, A pose, A constrained) { + protected PosedActive (D data, P pose, P constrained) { super(data, pose, constrained); setupPose(); } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedData.java index 392ae8eae..5093c7457 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PosedData.java @@ -35,7 +35,7 @@ abstract public class PosedData

{ final P setup; boolean skinRequired; - public PosedData (String name, P setup) { + protected PosedData (String name, P setup) { if (name == null) throw new IllegalArgumentException("name cannot be null."); this.name = name; this.setup = setup; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java index 03785e87a..ab8879fd1 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java @@ -230,7 +230,7 @@ public class SkeletonBinary extends SkeletonLoader { String name = input.readString(); BoneData parent = i == 0 ? null : bones[input.readInt(true)]; var data = new BoneData(i, name, parent); - BoneLocal setup = data.setup; + BonePose setup = data.setup; setup.rotation = input.readFloat(); setup.x = input.readFloat() * scale; setup.y = input.readFloat() * scale; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java index 815c7dd3c..f3d69d700 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java @@ -189,7 +189,7 @@ public class SkeletonJson extends SkeletonLoader { } var data = new BoneData(skeletonData.bones.size, boneMap.getString("name"), parent); data.length = boneMap.getFloat("length", 0) * scale; - BoneLocal setup = data.setup; + BonePose setup = data.setup; setup.x = boneMap.getFloat("x", 0) * scale; setup.y = boneMap.getFloat("y", 0) * scale; setup.rotation = boneMap.getFloat("rotation", 0); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java index b1e33183b..aefcdf5d7 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java @@ -34,7 +34,7 @@ import com.badlogic.gdx.graphics.Color; /** Stores a slot's current pose. Slots organize attachments for {@link Skeleton#drawOrder} purposes and provide a place to store * state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared * across multiple skeletons. */ -public class Slot extends Posed { +public class Slot extends Posed { final Skeleton skeleton; final Bone bone; int attachmentState;