@esotericsoftware/spine-core 4.2.117 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Animation.d.ts +426 -274
- package/dist/Animation.js +1174 -1210
- package/dist/AnimationState.d.ts +246 -201
- package/dist/AnimationState.js +508 -471
- package/dist/AnimationStateData.d.ts +12 -10
- package/dist/AnimationStateData.js +19 -20
- package/dist/AssetManagerBase.d.ts +27 -21
- package/dist/AssetManagerBase.js +67 -43
- package/dist/AtlasAttachmentLoader.d.ts +18 -12
- package/dist/AtlasAttachmentLoader.js +28 -39
- package/dist/Bone.d.ts +15 -109
- package/dist/Bone.js +22 -362
- package/dist/BoneData.d.ts +13 -28
- package/dist/BoneData.js +20 -29
- package/dist/BonePose.d.ts +132 -0
- package/dist/BonePose.js +456 -0
- package/dist/Constraint.d.ts +41 -0
- package/dist/Constraint.js +38 -0
- package/dist/ConstraintData.d.ts +16 -5
- package/dist/ConstraintData.js +15 -9
- package/dist/DrawOrder.d.ts +48 -0
- package/dist/DrawOrder.js +64 -0
- package/dist/Event.d.ts +11 -6
- package/dist/Event.js +10 -5
- package/dist/EventData.d.ts +10 -6
- package/dist/EventData.js +18 -7
- package/dist/IkConstraint.d.ts +23 -28
- package/dist/IkConstraint.js +122 -124
- package/dist/IkConstraintData.d.ts +14 -19
- package/dist/IkConstraintData.js +22 -23
- package/dist/IkConstraintPose.d.ts +49 -0
- package/dist/IkConstraintPose.js +55 -0
- package/dist/PathConstraint.d.ts +18 -23
- package/dist/PathConstraint.js +162 -139
- package/dist/PathConstraintData.d.ts +11 -14
- package/dist/PathConstraintData.js +14 -16
- package/dist/PathConstraintPose.d.ts +43 -0
- package/dist/PathConstraintPose.js +49 -0
- package/dist/Physics.d.ts +39 -0
- package/dist/Physics.js +41 -0
- package/dist/PhysicsConstraint.d.ts +26 -30
- package/dist/PhysicsConstraint.js +114 -94
- package/dist/PhysicsConstraintData.d.ts +28 -13
- package/dist/PhysicsConstraintData.js +35 -13
- package/dist/PhysicsConstraintPose.d.ts +47 -0
- package/dist/PhysicsConstraintPose.js +55 -0
- package/dist/Pose.d.ts +33 -0
- package/dist/Pose.js +30 -0
- package/dist/Posed.d.ts +58 -0
- package/dist/Posed.js +78 -0
- package/dist/PosedActive.d.ts +41 -0
- package/dist/{attachments/HasTextureRegion.js → PosedActive.js} +17 -2
- package/dist/PosedData.d.ts +40 -0
- package/dist/PosedData.js +45 -0
- package/dist/Skeleton.d.ts +110 -99
- package/dist/Skeleton.js +271 -449
- package/dist/SkeletonBinary.d.ts +1 -1
- package/dist/SkeletonBinary.js +655 -466
- package/dist/SkeletonBounds.d.ts +4 -4
- package/dist/SkeletonBounds.js +45 -46
- package/dist/SkeletonClipping.d.ts +26 -22
- package/dist/SkeletonClipping.js +654 -340
- package/dist/SkeletonData.d.ts +18 -35
- package/dist/SkeletonData.js +57 -97
- package/dist/SkeletonJson.d.ts +8 -6
- package/dist/SkeletonJson.js +895 -640
- package/dist/SkeletonRendererCore.d.ts +58 -0
- package/dist/SkeletonRendererCore.js +310 -0
- package/dist/Skin.d.ts +20 -16
- package/dist/Skin.js +58 -53
- package/dist/Slider.d.ts +46 -0
- package/dist/Slider.js +115 -0
- package/dist/SliderData.d.ts +58 -0
- package/dist/SliderData.js +59 -0
- package/dist/SliderPose.d.ts +37 -0
- package/dist/SliderPose.js +40 -0
- package/dist/Slot.d.ts +16 -38
- package/dist/Slot.js +37 -60
- package/dist/SlotData.d.ts +5 -12
- package/dist/SlotData.js +7 -15
- package/dist/SlotPose.d.ts +59 -0
- package/dist/SlotPose.js +81 -0
- package/dist/Texture.d.ts +1 -0
- package/dist/Texture.js +2 -1
- package/dist/TextureAtlas.d.ts +3 -3
- package/dist/TextureAtlas.js +49 -49
- package/dist/TransformConstraint.d.ts +16 -28
- package/dist/TransformConstraint.js +72 -209
- package/dist/TransformConstraintData.d.ts +108 -20
- package/dist/TransformConstraintData.js +274 -24
- package/dist/TransformConstraintPose.d.ts +45 -0
- package/dist/TransformConstraintPose.js +52 -0
- package/dist/Triangulator.d.ts +1 -1
- package/dist/Triangulator.js +91 -107
- package/dist/{Updatable.d.ts → Update.d.ts} +5 -12
- package/dist/Update.js +30 -0
- package/dist/Utils.d.ts +14 -3
- package/dist/Utils.js +80 -37
- package/dist/attachments/Attachment.d.ts +27 -19
- package/dist/attachments/Attachment.js +59 -35
- package/dist/attachments/AttachmentLoader.d.ts +14 -14
- package/dist/attachments/AttachmentLoader.js +1 -1
- package/dist/attachments/BoundingBoxAttachment.d.ts +1 -1
- package/dist/attachments/BoundingBoxAttachment.js +2 -2
- package/dist/attachments/ClippingAttachment.d.ts +10 -3
- package/dist/attachments/ClippingAttachment.js +12 -3
- package/dist/attachments/{HasTextureRegion.d.ts → HasSequence.d.ts} +11 -14
- package/dist/attachments/HasSequence.js +30 -0
- package/dist/attachments/MeshAttachment.d.ts +28 -35
- package/dist/attachments/MeshAttachment.js +85 -97
- package/dist/attachments/PathAttachment.d.ts +3 -3
- package/dist/attachments/PathAttachment.js +6 -6
- package/dist/attachments/PointAttachment.d.ts +11 -6
- package/dist/attachments/PointAttachment.js +8 -3
- package/dist/attachments/RegionAttachment.d.ts +25 -27
- package/dist/attachments/RegionAttachment.js +101 -113
- package/dist/attachments/Sequence.d.ts +31 -6
- package/dist/attachments/Sequence.js +79 -13
- package/dist/esm/spine-core.min.mjs +2 -2
- package/dist/esm/spine-core.mjs +7747 -6116
- package/dist/esm/spine-core.mjs.map +4 -4
- package/dist/iife/spine-core.js +7747 -6116
- package/dist/iife/spine-core.js.map +4 -4
- package/dist/iife/spine-core.min.js +2 -2
- package/dist/index.d.ts +32 -11
- package/dist/index.js +33 -12
- package/dist/polyfills.js +4 -5
- package/package.json +1 -1
- package/dist/Updatable.js +0 -30
package/dist/BoneData.js
CHANGED
|
@@ -26,53 +26,44 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
+
import { BonePose } from "./BonePose.js";
|
|
30
|
+
import { PosedData } from "./PosedData.js";
|
|
29
31
|
import { Color } from "./Utils.js";
|
|
30
|
-
/**
|
|
31
|
-
export class BoneData {
|
|
32
|
-
/** The index of the bone in {@link Skeleton
|
|
32
|
+
/** The setup pose for a bone. */
|
|
33
|
+
export class BoneData extends PosedData {
|
|
34
|
+
/** The index of the bone in {@link Skeleton.bones}. */
|
|
33
35
|
index = 0;
|
|
34
|
-
/** The
|
|
35
|
-
name;
|
|
36
|
-
/** @returns May be null. */
|
|
36
|
+
/** The parent bone, or null if this bone is the root. */
|
|
37
37
|
parent = null;
|
|
38
38
|
/** The bone's length. */
|
|
39
39
|
length = 0;
|
|
40
|
-
|
|
41
|
-
x = 0;
|
|
42
|
-
/** The local y translation. */
|
|
43
|
-
y = 0;
|
|
44
|
-
/** The local rotation in degrees, counter clockwise. */
|
|
45
|
-
rotation = 0;
|
|
46
|
-
/** The local scaleX. */
|
|
47
|
-
scaleX = 1;
|
|
48
|
-
/** The local scaleY. */
|
|
49
|
-
scaleY = 1;
|
|
50
|
-
/** The local shearX. */
|
|
51
|
-
shearX = 0;
|
|
52
|
-
/** The local shearX. */
|
|
53
|
-
shearY = 0;
|
|
54
|
-
/** The transform mode for how parent world transforms affect this bone. */
|
|
55
|
-
inherit = Inherit.Normal;
|
|
56
|
-
/** When true, {@link Skeleton#updateWorldTransform()} only updates this bone if the {@link Skeleton#skin} contains this
|
|
57
|
-
* bone.
|
|
58
|
-
* @see Skin#bones */
|
|
59
|
-
skinRequired = false;
|
|
40
|
+
// Nonessential.
|
|
60
41
|
/** The color of the bone as it was in Spine. Available only when nonessential data was exported. Bones are not usually
|
|
61
42
|
* rendered at runtime. */
|
|
62
43
|
color = new Color();
|
|
63
|
-
/** The bone icon as it was in Spine, or null if nonessential data was not exported. */
|
|
44
|
+
/** The bone icon name as it was in Spine, or null if nonessential data was not exported. */
|
|
64
45
|
icon;
|
|
46
|
+
/** The bone icon's display size scale, or 1 if nonessential data was not exported. */
|
|
47
|
+
iconSize = 1;
|
|
48
|
+
/** The bone icon's display rotation in degrees, or 0 if nonessential data was not exported. */
|
|
49
|
+
iconRotation = 0;
|
|
65
50
|
/** False if the bone was hidden in Spine and nonessential data was exported. Does not affect runtime rendering. */
|
|
66
51
|
visible = false;
|
|
67
52
|
constructor(index, name, parent) {
|
|
53
|
+
super(name, new BonePose());
|
|
68
54
|
if (index < 0)
|
|
69
55
|
throw new Error("index must be >= 0.");
|
|
70
56
|
if (!name)
|
|
71
57
|
throw new Error("name cannot be null.");
|
|
72
58
|
this.index = index;
|
|
73
|
-
this.name = name;
|
|
74
59
|
this.parent = parent;
|
|
75
60
|
}
|
|
61
|
+
copy(parent) {
|
|
62
|
+
const copy = new BoneData(this.index, this.name, parent);
|
|
63
|
+
copy.length = this.length;
|
|
64
|
+
copy.setupPose.set(this.setupPose);
|
|
65
|
+
return copy;
|
|
66
|
+
}
|
|
76
67
|
}
|
|
77
68
|
/** Determines how a bone inherits world transforms from parent bones. */
|
|
78
69
|
export var Inherit;
|
|
@@ -83,4 +74,4 @@ export var Inherit;
|
|
|
83
74
|
Inherit[Inherit["NoScale"] = 3] = "NoScale";
|
|
84
75
|
Inherit[Inherit["NoScaleOrReflection"] = 4] = "NoScaleOrReflection";
|
|
85
76
|
})(Inherit || (Inherit = {}));
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9uZURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQm9uZURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBRS9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkMsaUNBQWlDO0FBQ2pDLE1BQU0sT0FBTyxRQUFTLFNBQVEsU0FBbUI7SUFDaEQsdURBQXVEO0lBQ3ZELEtBQUssR0FBVyxDQUFDLENBQUM7SUFFbEIseURBQXlEO0lBQ3pELE1BQU0sR0FBb0IsSUFBSSxDQUFDO0lBRS9CLHlCQUF5QjtJQUN6QixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBRW5CLGdCQUFnQjtJQUNoQjs4QkFDMEI7SUFDakIsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFFN0IsNEZBQTRGO0lBQzVGLElBQUksQ0FBVTtJQUVkLHNGQUFzRjtJQUN0RixRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWIsK0ZBQStGO0lBQy9GLFlBQVksR0FBRyxDQUFDLENBQUM7SUFFakIsbUhBQW1IO0lBQ25ILE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFaEIsWUFBYSxLQUFhLEVBQUUsSUFBWSxFQUFFLE1BQXVCO1FBQ2hFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksQ0FBRSxNQUF1QjtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7Q0FDRDtBQUVELHlFQUF5RTtBQUN6RSxNQUFNLENBQU4sSUFBWSxPQUF5RjtBQUFyRyxXQUFZLE9BQU87SUFBRyx5Q0FBTSxDQUFBO0lBQUUsMkRBQWUsQ0FBQTtJQUFFLHlFQUFzQixDQUFBO0lBQUUsMkNBQU8sQ0FBQTtJQUFFLG1FQUFtQixDQUFBO0FBQUMsQ0FBQyxFQUF6RixPQUFPLEtBQVAsT0FBTyxRQUFrRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgQm9uZVBvc2UgfSBmcm9tIFwiLi9Cb25lUG9zZS5qc1wiO1xuaW1wb3J0IHsgUG9zZWREYXRhIH0gZnJvbSBcIi4vUG9zZWREYXRhLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNrZWxldG9uIH0gZnJvbSBcIi4vU2tlbGV0b24uanNcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4vVXRpbHMuanNcIjtcblxuLyoqIFRoZSBzZXR1cCBwb3NlIGZvciBhIGJvbmUuICovXG5leHBvcnQgY2xhc3MgQm9uZURhdGEgZXh0ZW5kcyBQb3NlZERhdGE8Qm9uZVBvc2U+IHtcblx0LyoqIFRoZSBpbmRleCBvZiB0aGUgYm9uZSBpbiB7QGxpbmsgU2tlbGV0b24uYm9uZXN9LiAqL1xuXHRpbmRleDogbnVtYmVyID0gMDtcblxuXHQvKiogVGhlIHBhcmVudCBib25lLCBvciBudWxsIGlmIHRoaXMgYm9uZSBpcyB0aGUgcm9vdC4gKi9cblx0cGFyZW50OiBCb25lRGF0YSB8IG51bGwgPSBudWxsO1xuXG5cdC8qKiBUaGUgYm9uZSdzIGxlbmd0aC4gKi9cblx0bGVuZ3RoOiBudW1iZXIgPSAwO1xuXG5cdC8vIE5vbmVzc2VudGlhbC5cblx0LyoqIFRoZSBjb2xvciBvZiB0aGUgYm9uZSBhcyBpdCB3YXMgaW4gU3BpbmUuIEF2YWlsYWJsZSBvbmx5IHdoZW4gbm9uZXNzZW50aWFsIGRhdGEgd2FzIGV4cG9ydGVkLiBCb25lcyBhcmUgbm90IHVzdWFsbHlcblx0ICogcmVuZGVyZWQgYXQgcnVudGltZS4gKi9cblx0cmVhZG9ubHkgY29sb3IgPSBuZXcgQ29sb3IoKTtcblxuXHQvKiogVGhlIGJvbmUgaWNvbiBuYW1lIGFzIGl0IHdhcyBpbiBTcGluZSwgb3IgbnVsbCBpZiBub25lc3NlbnRpYWwgZGF0YSB3YXMgbm90IGV4cG9ydGVkLiAqL1xuXHRpY29uPzogc3RyaW5nO1xuXG5cdC8qKiBUaGUgYm9uZSBpY29uJ3MgZGlzcGxheSBzaXplIHNjYWxlLCBvciAxIGlmIG5vbmVzc2VudGlhbCBkYXRhIHdhcyBub3QgZXhwb3J0ZWQuICovXG5cdGljb25TaXplID0gMTtcblxuXHQvKiogVGhlIGJvbmUgaWNvbidzIGRpc3BsYXkgcm90YXRpb24gaW4gZGVncmVlcywgb3IgMCBpZiBub25lc3NlbnRpYWwgZGF0YSB3YXMgbm90IGV4cG9ydGVkLiAqL1xuXHRpY29uUm90YXRpb24gPSAwO1xuXG5cdC8qKiBGYWxzZSBpZiB0aGUgYm9uZSB3YXMgaGlkZGVuIGluIFNwaW5lIGFuZCBub25lc3NlbnRpYWwgZGF0YSB3YXMgZXhwb3J0ZWQuIERvZXMgbm90IGFmZmVjdCBydW50aW1lIHJlbmRlcmluZy4gKi9cblx0dmlzaWJsZSA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yIChpbmRleDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIHBhcmVudDogQm9uZURhdGEgfCBudWxsKSB7XG5cdFx0c3VwZXIobmFtZSwgbmV3IEJvbmVQb3NlKCkpO1xuXHRcdGlmIChpbmRleCA8IDApIHRocm93IG5ldyBFcnJvcihcImluZGV4IG11c3QgYmUgPj0gMC5cIik7XG5cdFx0aWYgKCFuYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHR0aGlzLmluZGV4ID0gaW5kZXg7XG5cdFx0dGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG5cdH1cblxuXHRjb3B5IChwYXJlbnQ6IEJvbmVEYXRhIHwgbnVsbCk6IEJvbmVEYXRhIHtcblx0XHRjb25zdCBjb3B5ID0gbmV3IEJvbmVEYXRhKHRoaXMuaW5kZXgsIHRoaXMubmFtZSwgcGFyZW50KTtcblx0XHRjb3B5Lmxlbmd0aCA9IHRoaXMubGVuZ3RoO1xuXHRcdGNvcHkuc2V0dXBQb3NlLnNldCh0aGlzLnNldHVwUG9zZSk7XG5cdFx0cmV0dXJuIGNvcHk7XG5cdH1cbn1cblxuLyoqIERldGVybWluZXMgaG93IGEgYm9uZSBpbmhlcml0cyB3b3JsZCB0cmFuc2Zvcm1zIGZyb20gcGFyZW50IGJvbmVzLiAqL1xuZXhwb3J0IGVudW0gSW5oZXJpdCB7IE5vcm1hbCwgT25seVRyYW5zbGF0aW9uLCBOb1JvdGF0aW9uT3JSZWZsZWN0aW9uLCBOb1NjYWxlLCBOb1NjYWxlT3JSZWZsZWN0aW9uIH1cbiJdfQ==
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* Spine Runtimes License Agreement
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
|
+
*
|
|
7
|
+
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
|
+
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
|
+
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
|
+
* http://esotericsoftware.com/spine-editor-license
|
|
11
|
+
*
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
|
+
* "Products"), provided that each user of the Products must obtain their own
|
|
15
|
+
* Spine Editor license and redistribution of the Products in any form must
|
|
16
|
+
* include this license and copyright notice.
|
|
17
|
+
*
|
|
18
|
+
* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
|
|
19
|
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
20
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
21
|
+
* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
|
|
22
|
+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
23
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
|
+
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
|
+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
*****************************************************************************/
|
|
29
|
+
import type { Bone } from "./Bone.js";
|
|
30
|
+
import { Inherit } from "./BoneData.js";
|
|
31
|
+
import type { Physics } from "./Physics.js";
|
|
32
|
+
import type { Pose } from "./Pose.js";
|
|
33
|
+
import type { Skeleton } from "./Skeleton.js";
|
|
34
|
+
import type { Update } from "./Update.js";
|
|
35
|
+
import { type Vector2 } from "./Utils.js";
|
|
36
|
+
/** The applied local pose and world transform for a bone. This is the {@link Bone.getPose} with constraints applied and the
|
|
37
|
+
* world transform computed by {@link Skeleton.updateWorldTransform} and {@link updateWorldTransform}.
|
|
38
|
+
*
|
|
39
|
+
* If the world transform is changed, call {@link updateLocalTransform} before using the local transform. The local
|
|
40
|
+
* transform may be needed by other code (eg to apply another constraint).
|
|
41
|
+
*
|
|
42
|
+
* After changing the world transform, call {@link updateWorldTransform} on every descendant bone. It may be more
|
|
43
|
+
* convenient to modify the local transform instead, then call {@link Skeleton.updateWorldTransform} to update the world
|
|
44
|
+
* transforms for all bones and apply constraints. */
|
|
45
|
+
export declare class BonePose implements Pose<BonePose>, Update {
|
|
46
|
+
bone: Bone;
|
|
47
|
+
/** The local x translation. */
|
|
48
|
+
x: number;
|
|
49
|
+
/** The local y translation. */
|
|
50
|
+
y: number;
|
|
51
|
+
/** The local rotation in degrees, counter clockwise. */
|
|
52
|
+
rotation: number;
|
|
53
|
+
/** The local scaleX. */
|
|
54
|
+
scaleX: number;
|
|
55
|
+
/** The local scaleY. */
|
|
56
|
+
scaleY: number;
|
|
57
|
+
/** The local shearX. */
|
|
58
|
+
shearX: number;
|
|
59
|
+
/** The local shearY. */
|
|
60
|
+
shearY: number;
|
|
61
|
+
inherit: Inherit;
|
|
62
|
+
/** The world transform `[a b][c d]` x-axis x component. */
|
|
63
|
+
a: number;
|
|
64
|
+
/** The world transform `[a b][c d]` y-axis x component. */
|
|
65
|
+
b: number;
|
|
66
|
+
/** The world transform `[a b][c d]` x-axis y component. */
|
|
67
|
+
c: number;
|
|
68
|
+
/** The world transform `[a b][c d]` y-axis y component. */
|
|
69
|
+
d: number;
|
|
70
|
+
/** The world X position. If changed, {@link updateLocalTransform} should be called. */
|
|
71
|
+
worldY: number;
|
|
72
|
+
/** The world Y position. If changed, {@link updateLocalTransform} should be called. */
|
|
73
|
+
worldX: number;
|
|
74
|
+
world: number;
|
|
75
|
+
local: number;
|
|
76
|
+
set(pose: BonePose): void;
|
|
77
|
+
setPosition(x: number, y: number): void;
|
|
78
|
+
setScale(scaleX: number, scaleY: number): void;
|
|
79
|
+
setScale(scale: number): void;
|
|
80
|
+
/** Determines how parent world transforms affect this bone. */
|
|
81
|
+
getInherit(): Inherit;
|
|
82
|
+
setInherit(inherit: Inherit): void;
|
|
83
|
+
/** Called by {@link Skeleton.updateCache} to compute the world transform, if needed. */
|
|
84
|
+
update(skeleton: Skeleton, physics: Physics): void;
|
|
85
|
+
/** Computes the world transform using the parent bone's world transform and this applied local pose. Child bones are not
|
|
86
|
+
* updated.
|
|
87
|
+
*
|
|
88
|
+
* See <a href="https://esotericsoftware.com/spine-runtime-skeletons#World-transforms">World transforms</a> in the Spine
|
|
89
|
+
* Runtimes Guide. */
|
|
90
|
+
updateWorldTransform(skeleton: Skeleton): void;
|
|
91
|
+
/** Computes the local transform values from the world transform.
|
|
92
|
+
*
|
|
93
|
+
* If the world transform is modified (by a constraint, {@link rotateWorld}, etc) then this method should be called so
|
|
94
|
+
* the local transform matches the world transform. The local transform may be needed by other code (eg to apply another
|
|
95
|
+
* constraint).
|
|
96
|
+
*
|
|
97
|
+
* Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. The local transform after
|
|
98
|
+
* calling this method is equivalent to the local transform used to compute the world transform, but may not be identical. */
|
|
99
|
+
updateLocalTransform(skeleton: Skeleton): void;
|
|
100
|
+
private set4;
|
|
101
|
+
private set5;
|
|
102
|
+
/** If the world transform has been modified by constraints and the local transform no longer matches,
|
|
103
|
+
* {@link updateLocalTransform} is called. Call this after {@link Skeleton.updateWorldTransform} before
|
|
104
|
+
* using the applied local transform. */
|
|
105
|
+
validateLocalTransform(skeleton: Skeleton): void;
|
|
106
|
+
modifyLocal(skeleton: Skeleton): void;
|
|
107
|
+
modifyWorld(update: number): void;
|
|
108
|
+
private resetWorld;
|
|
109
|
+
/** The world rotation for the X axis, calculated using {@link a} and {@link c}. This is the direction the bone is
|
|
110
|
+
* pointing. */
|
|
111
|
+
getWorldRotationX(): number;
|
|
112
|
+
/** The world rotation for the Y axis, calculated using {@link b} and {@link d}. */
|
|
113
|
+
getWorldRotationY(): number;
|
|
114
|
+
/** The magnitude (always positive) of the world scale X, calculated using {@link a} and {@link c}. */
|
|
115
|
+
getWorldScaleX(): number;
|
|
116
|
+
/** The magnitude (always positive) of the world scale Y, calculated using {@link b} and {@link d}. */
|
|
117
|
+
getWorldScaleY(): number;
|
|
118
|
+
/** Transforms a point from world coordinates to the bone's local coordinates. */
|
|
119
|
+
worldToLocal(world: Vector2): Vector2;
|
|
120
|
+
/** Transforms a point from the bone's local coordinates to world coordinates. */
|
|
121
|
+
localToWorld(local: Vector2): Vector2;
|
|
122
|
+
/** Transforms a point from world coordinates to the parent bone's local coordinates. */
|
|
123
|
+
worldToParent(world: Vector2): Vector2;
|
|
124
|
+
/** Transforms a point from the parent bone's coordinates to world coordinates. */
|
|
125
|
+
parentToWorld(world: Vector2): Vector2;
|
|
126
|
+
/** Transforms a world rotation to a local rotation. */
|
|
127
|
+
worldToLocalRotation(worldRotation: number): number;
|
|
128
|
+
/** Transforms a local rotation to a world rotation. */
|
|
129
|
+
localToWorldRotation(localRotation: number): number;
|
|
130
|
+
/** Rotates the world transform the specified amount. */
|
|
131
|
+
rotateWorld(degrees: number): void;
|
|
132
|
+
}
|