@safe-engine/pixi 8.8.1 → 8.8.3

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.
Files changed (146) hide show
  1. package/dist/app.d.ts +1 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +20 -1
  4. package/dist/core/NodePool.d.ts +1 -1
  5. package/dist/core/Size.d.ts +0 -1
  6. package/dist/core/Size.d.ts.map +1 -1
  7. package/dist/dragonbones/DragonBonesComponent.d.ts +1 -1
  8. package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -1
  9. package/dist/dragonbones/DragonBonesComponent.js +1 -1
  10. package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
  11. package/dist/dragonbones/DragonBonesSystem.js +1 -1
  12. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts +59 -0
  13. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts.map +1 -0
  14. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.js +180 -0
  15. package/dist/dragonbones/db-pixi/PixiFactory.d.ts +87 -0
  16. package/dist/dragonbones/db-pixi/PixiFactory.d.ts.map +1 -0
  17. package/dist/dragonbones/db-pixi/PixiFactory.js +159 -0
  18. package/dist/dragonbones/db-pixi/PixiSlot.d.ts +31 -0
  19. package/dist/dragonbones/db-pixi/PixiSlot.d.ts.map +1 -0
  20. package/dist/dragonbones/db-pixi/PixiSlot.js +332 -0
  21. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts +38 -0
  22. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts.map +1 -0
  23. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.js +85 -0
  24. package/dist/dragonbones/db-pixi/index.d.ts +5 -0
  25. package/dist/dragonbones/db-pixi/index.d.ts.map +1 -0
  26. package/dist/dragonbones/db-pixi/index.js +4 -0
  27. package/dist/dragonbones/dragonBones/animation/Animation.d.ts +241 -0
  28. package/dist/dragonbones/dragonBones/animation/Animation.d.ts.map +1 -0
  29. package/dist/dragonbones/dragonBones/animation/Animation.js +692 -0
  30. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts +323 -0
  31. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts.map +1 -0
  32. package/dist/dragonbones/dragonBones/animation/AnimationState.js +1161 -0
  33. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts +100 -0
  34. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts.map +1 -0
  35. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.js +479 -0
  36. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts +38 -0
  37. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts.map +1 -0
  38. package/dist/dragonbones/dragonBones/animation/IAnimatable.js +9 -0
  39. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts +159 -0
  40. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts.map +1 -0
  41. package/dist/dragonbones/dragonBones/animation/TimelineState.js +998 -0
  42. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts +74 -0
  43. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts.map +1 -0
  44. package/dist/dragonbones/dragonBones/animation/WorldClock.js +162 -0
  45. package/dist/dragonbones/dragonBones/armature/Armature.d.ts +314 -0
  46. package/dist/dragonbones/dragonBones/armature/Armature.d.ts.map +1 -0
  47. package/dist/dragonbones/dragonBones/armature/Armature.js +650 -0
  48. package/dist/dragonbones/dragonBones/armature/Bone.d.ts +123 -0
  49. package/dist/dragonbones/dragonBones/armature/Bone.d.ts.map +1 -0
  50. package/dist/dragonbones/dragonBones/armature/Bone.js +438 -0
  51. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts +99 -0
  52. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts.map +1 -0
  53. package/dist/dragonbones/dragonBones/armature/Constraint.js +672 -0
  54. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts +47 -0
  55. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts.map +1 -0
  56. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.js +1 -0
  57. package/dist/dragonbones/dragonBones/armature/Slot.d.ts +357 -0
  58. package/dist/dragonbones/dragonBones/armature/Slot.d.ts.map +1 -0
  59. package/dist/dragonbones/dragonBones/armature/Slot.js +1009 -0
  60. package/dist/dragonbones/dragonBones/armature/Surface.d.ts +41 -0
  61. package/dist/dragonbones/dragonBones/armature/Surface.d.ts.map +1 -0
  62. package/dist/dragonbones/dragonBones/armature/Surface.js +463 -0
  63. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts +80 -0
  64. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts.map +1 -0
  65. package/dist/dragonbones/dragonBones/armature/TransformObject.js +77 -0
  66. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts +53 -0
  67. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts.map +1 -0
  68. package/dist/dragonbones/dragonBones/core/BaseObject.js +130 -0
  69. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts +236 -0
  70. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts.map +1 -0
  71. package/dist/dragonbones/dragonBones/core/DragonBones.js +61 -0
  72. package/dist/dragonbones/dragonBones/event/EventObject.d.ts +143 -0
  73. package/dist/dragonbones/dragonBones/event/EventObject.d.ts.map +1 -0
  74. package/dist/dragonbones/dragonBones/event/EventObject.js +99 -0
  75. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts +48 -0
  76. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts.map +1 -0
  77. package/dist/dragonbones/dragonBones/event/IEventDispatcher.js +1 -0
  78. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts +292 -0
  79. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts.map +1 -0
  80. package/dist/dragonbones/dragonBones/factory/BaseFactory.js +735 -0
  81. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts +17 -0
  82. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts.map +1 -0
  83. package/dist/dragonbones/dragonBones/geom/ColorTransform.js +33 -0
  84. package/dist/dragonbones/dragonBones/geom/Curve.d.ts +10 -0
  85. package/dist/dragonbones/dragonBones/geom/Curve.d.ts.map +1 -0
  86. package/dist/dragonbones/dragonBones/geom/Curve.js +26 -0
  87. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts +105 -0
  88. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts.map +1 -0
  89. package/dist/dragonbones/dragonBones/geom/Matrix.js +207 -0
  90. package/dist/dragonbones/dragonBones/geom/Point.d.ts +38 -0
  91. package/dist/dragonbones/dragonBones/geom/Point.d.ts.map +1 -0
  92. package/dist/dragonbones/dragonBones/geom/Point.js +31 -0
  93. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts +53 -0
  94. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts.map +1 -0
  95. package/dist/dragonbones/dragonBones/geom/Rectangle.js +37 -0
  96. package/dist/dragonbones/dragonBones/geom/Transform.d.ts +102 -0
  97. package/dist/dragonbones/dragonBones/geom/Transform.d.ts.map +1 -0
  98. package/dist/dragonbones/dragonBones/geom/Transform.js +170 -0
  99. package/dist/dragonbones/dragonBones/index.d.ts +37 -0
  100. package/dist/dragonbones/dragonBones/index.d.ts.map +1 -0
  101. package/dist/dragonbones/dragonBones/index.js +36 -0
  102. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts +162 -0
  103. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts.map +1 -0
  104. package/dist/dragonbones/dragonBones/model/AnimationConfig.js +81 -0
  105. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts +174 -0
  106. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts.map +1 -0
  107. package/dist/dragonbones/dragonBones/model/AnimationData.js +256 -0
  108. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts +319 -0
  109. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts.map +1 -0
  110. package/dist/dragonbones/dragonBones/model/ArmatureData.js +450 -0
  111. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts +188 -0
  112. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts.map +1 -0
  113. package/dist/dragonbones/dragonBones/model/BoundingBoxData.js +500 -0
  114. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts +15 -0
  115. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts.map +1 -0
  116. package/dist/dragonbones/dragonBones/model/CanvasData.js +17 -0
  117. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts +46 -0
  118. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts.map +1 -0
  119. package/dist/dragonbones/dragonBones/model/ConstraintData.js +57 -0
  120. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts +98 -0
  121. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts.map +1 -0
  122. package/dist/dragonbones/dragonBones/model/DisplayData.js +174 -0
  123. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts +108 -0
  124. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts.map +1 -0
  125. package/dist/dragonbones/dragonBones/model/DragonBonesData.js +86 -0
  126. package/dist/dragonbones/dragonBones/model/SkinData.d.ts +40 -0
  127. package/dist/dragonbones/dragonBones/model/SkinData.d.ts.map +1 -0
  128. package/dist/dragonbones/dragonBones/model/SkinData.js +68 -0
  129. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts +73 -0
  130. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts.map +1 -0
  131. package/dist/dragonbones/dragonBones/model/TextureAtlasData.js +102 -0
  132. package/dist/dragonbones/dragonBones/model/UserData.d.ts +73 -0
  133. package/dist/dragonbones/dragonBones/model/UserData.d.ts.map +1 -0
  134. package/dist/dragonbones/dragonBones/model/UserData.js +101 -0
  135. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts +29 -0
  136. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts.map +1 -0
  137. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.js +356 -0
  138. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts +153 -0
  139. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts.map +1 -0
  140. package/dist/dragonbones/dragonBones/parser/DataParser.js +283 -0
  141. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts +130 -0
  142. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts.map +1 -0
  143. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.js +2098 -0
  144. package/dist/dragonbones/index.js +1 -1
  145. package/dist/helper/utils.js +1 -1
  146. package/package.json +3 -4
@@ -0,0 +1,123 @@
1
+ import { OffsetMode } from "../core/DragonBones";
2
+ import { Transform } from "../geom/Transform";
3
+ import { BoneData } from "../model/ArmatureData";
4
+ import { Armature } from "./Armature";
5
+ import { TransformObject } from "./TransformObject";
6
+ /**
7
+ * - Bone is one of the most important logical units in the armature animation system,
8
+ * and is responsible for the realization of translate, rotation, scaling in the animations.
9
+ * A armature can contain multiple bones.
10
+ * @see dragonBones.BoneData
11
+ * @see dragonBones.Armature
12
+ * @see dragonBones.Slot
13
+ * @version DragonBones 3.0
14
+ * @language en_US
15
+ */
16
+ export declare class Bone extends TransformObject {
17
+ static toString(): string;
18
+ /**
19
+ * - The offset mode.
20
+ * @see #offset
21
+ * @version DragonBones 5.5
22
+ * @language en_US
23
+ */
24
+ offsetMode: OffsetMode;
25
+ /**
26
+ * @internal
27
+ */
28
+ readonly animationPose: Transform;
29
+ /**
30
+ * @internal
31
+ */
32
+ _transformDirty: boolean;
33
+ /**
34
+ * @internal
35
+ */
36
+ _childrenTransformDirty: boolean;
37
+ protected _localDirty: boolean;
38
+ /**
39
+ * @internal
40
+ */
41
+ _hasConstraint: boolean;
42
+ protected _visible: boolean;
43
+ protected _cachedFrameIndex: number;
44
+ /**
45
+ * @internal
46
+ */
47
+ _boneData: BoneData;
48
+ /**
49
+ * @private
50
+ */
51
+ protected _parent: Bone | null;
52
+ /**
53
+ * @internal
54
+ */
55
+ _cachedFrameIndices: Array<number> | null;
56
+ protected _onClear(): void;
57
+ protected _updateGlobalTransformMatrix(isCache: boolean): void;
58
+ /**
59
+ * @internal
60
+ */
61
+ _updateAlpha(): void;
62
+ /**
63
+ * @internal
64
+ */
65
+ init(boneData: BoneData, armatureValue: Armature): void;
66
+ /**
67
+ * @internal
68
+ */
69
+ update(cacheFrameIndex: number): void;
70
+ /**
71
+ * @internal
72
+ */
73
+ updateByConstraint(): void;
74
+ /**
75
+ * - Forces the bone to update the transform in the next frame.
76
+ * When the bone is not animated or its animation state is finished, the bone will not continue to update,
77
+ * and when the skeleton must be updated for some reason, the method needs to be called explicitly.
78
+ * @example
79
+ * <pre>
80
+ * let bone = armature.getBone("arm");
81
+ * bone.offset.scaleX = 2.0;
82
+ * bone.invalidUpdate();
83
+ * </pre>
84
+ * @version DragonBones 3.0
85
+ * @language en_US
86
+ */
87
+ invalidUpdate(): void;
88
+ /**
89
+ * - Check whether the bone contains a specific bone.
90
+ * @see dragonBones.Bone
91
+ * @version DragonBones 3.0
92
+ * @language en_US
93
+ */
94
+ contains(value: Bone): boolean;
95
+ /**
96
+ * - The bone data.
97
+ * @version DragonBones 4.5
98
+ * @language en_US
99
+ */
100
+ get boneData(): BoneData;
101
+ /**
102
+ * - The visible of all slots in the bone.
103
+ * @default true
104
+ * @see dragonBones.Slot#visible
105
+ * @version DragonBones 3.0
106
+ * @language en_US
107
+ */
108
+ get visible(): boolean;
109
+ set visible(value: boolean);
110
+ /**
111
+ * - The bone name.
112
+ * @version DragonBones 3.0
113
+ * @language en_US
114
+ */
115
+ get name(): string;
116
+ /**
117
+ * - The parent bone to which it belongs.
118
+ * @version DragonBones 3.0
119
+ * @language en_US
120
+ */
121
+ get parent(): Bone | null;
122
+ }
123
+ //# sourceMappingURL=Bone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bone.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/armature/Bone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,eAAe;WACzB,QAAQ,IAAI,MAAM;IAGhC;;;;;OAKG;IACI,UAAU,EAAE,UAAU,CAAC;IAC9B;;OAEG;IACH,SAAgB,aAAa,EAAE,SAAS,CAAmB;IAC3D;;OAEG;IACI,eAAe,EAAE,OAAO,CAAC;IAChC;;OAEG;IACI,uBAAuB,EAAE,OAAO,CAAC;IACxC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACI,cAAc,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACpC;;OAEG;IACI,SAAS,EAAE,QAAQ,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B;;OAEG;IACI,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAEjD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAiB1B,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgN9D;;OAEG;IACI,YAAY;IAOnB;;OAEG;IACI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,IAAI;IAiB9D;;OAEG;IACI,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IA4F5C;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAcjC;;;;;;;;;;;;OAYG;IACI,aAAa,IAAI,IAAI;IAG5B;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAYrC;;;;OAIG;IACH,IAAW,QAAQ,IAAI,QAAQ,CAE9B;IACD;;;;;;OAMG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IACD,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAYhC;IACD;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IACD;;;;OAIG;IACH,IAAW,MAAM,IAAI,IAAI,GAAG,IAAI,CAE/B;CACF"}
@@ -0,0 +1,438 @@
1
+ import { DragonBones } from "../core/DragonBones";
2
+ import { Transform } from "../geom/Transform";
3
+ import { TransformObject } from "./TransformObject";
4
+ /**
5
+ * - Bone is one of the most important logical units in the armature animation system,
6
+ * and is responsible for the realization of translate, rotation, scaling in the animations.
7
+ * A armature can contain multiple bones.
8
+ * @see dragonBones.BoneData
9
+ * @see dragonBones.Armature
10
+ * @see dragonBones.Slot
11
+ * @version DragonBones 3.0
12
+ * @language en_US
13
+ */
14
+ export class Bone extends TransformObject {
15
+ constructor() {
16
+ super(...arguments);
17
+ /**
18
+ * @internal
19
+ */
20
+ this.animationPose = new Transform();
21
+ }
22
+ static toString() {
23
+ return "[class dragonBones.Bone]";
24
+ }
25
+ _onClear() {
26
+ super._onClear();
27
+ this.offsetMode = 1 /* OffsetMode.Additive */;
28
+ this.animationPose.identity();
29
+ this._transformDirty = false;
30
+ this._childrenTransformDirty = false;
31
+ this._localDirty = true;
32
+ this._hasConstraint = false;
33
+ this._visible = true;
34
+ this._cachedFrameIndex = -1;
35
+ this._boneData = null; //
36
+ this._parent = null; //
37
+ this._cachedFrameIndices = null;
38
+ }
39
+ _updateGlobalTransformMatrix(isCache) {
40
+ // For typescript.
41
+ const boneData = this._boneData;
42
+ const global = this.global;
43
+ const globalTransformMatrix = this.globalTransformMatrix;
44
+ const origin = this.origin;
45
+ const offset = this.offset;
46
+ const animationPose = this.animationPose;
47
+ const parent = this._parent; //
48
+ const flipX = this._armature.flipX;
49
+ const flipY = this._armature.flipY === DragonBones.yDown;
50
+ let inherit = parent !== null;
51
+ let rotation = 0.0;
52
+ if (this.offsetMode === 1 /* OffsetMode.Additive */) {
53
+ if (origin !== null) {
54
+ // global.copyFrom(this.origin).add(this.offset).add(this.animationPose);
55
+ global.x = origin.x + offset.x + animationPose.x;
56
+ global.scaleX = origin.scaleX * offset.scaleX * animationPose.scaleX;
57
+ global.scaleY = origin.scaleY * offset.scaleY * animationPose.scaleY;
58
+ if (DragonBones.yDown) {
59
+ global.y = origin.y + offset.y + animationPose.y;
60
+ global.skew = origin.skew + offset.skew + animationPose.skew;
61
+ global.rotation =
62
+ origin.rotation + offset.rotation + animationPose.rotation;
63
+ }
64
+ else {
65
+ global.y = origin.y - offset.y + animationPose.y;
66
+ global.skew = origin.skew - offset.skew + animationPose.skew;
67
+ global.rotation =
68
+ origin.rotation - offset.rotation + animationPose.rotation;
69
+ }
70
+ }
71
+ else {
72
+ global.copyFrom(offset);
73
+ if (!DragonBones.yDown) {
74
+ global.y = -global.y;
75
+ global.skew = -global.skew;
76
+ global.rotation = -global.rotation;
77
+ }
78
+ global.add(animationPose);
79
+ }
80
+ }
81
+ else if (this.offsetMode === 0 /* OffsetMode.None */) {
82
+ if (origin !== null) {
83
+ global.copyFrom(origin).add(animationPose);
84
+ }
85
+ else {
86
+ global.copyFrom(animationPose);
87
+ }
88
+ }
89
+ else {
90
+ inherit = false;
91
+ global.copyFrom(offset);
92
+ if (!DragonBones.yDown) {
93
+ global.y = -global.y;
94
+ global.skew = -global.skew;
95
+ global.rotation = -global.rotation;
96
+ }
97
+ }
98
+ if (inherit) {
99
+ const isSurface = parent._boneData.type === 1 /* BoneType.Surface */;
100
+ const surfaceBone = isSurface ? parent._bone : null;
101
+ const parentMatrix = isSurface
102
+ ? parent._getGlobalTransformMatrix(global.x, global.y)
103
+ : parent.globalTransformMatrix;
104
+ if (boneData.inheritScale && (!isSurface || surfaceBone !== null)) {
105
+ if (isSurface) {
106
+ if (boneData.inheritRotation) {
107
+ global.rotation += parent.global.rotation;
108
+ }
109
+ surfaceBone.updateGlobalTransform();
110
+ global.scaleX *= surfaceBone.global.scaleX;
111
+ global.scaleY *= surfaceBone.global.scaleY;
112
+ parentMatrix.transformPoint(global.x, global.y, global);
113
+ global.toMatrix(globalTransformMatrix);
114
+ if (boneData.inheritTranslation) {
115
+ global.x = globalTransformMatrix.tx;
116
+ global.y = globalTransformMatrix.ty;
117
+ }
118
+ else {
119
+ globalTransformMatrix.tx = global.x;
120
+ globalTransformMatrix.ty = global.y;
121
+ }
122
+ }
123
+ else {
124
+ if (!boneData.inheritRotation) {
125
+ parent.updateGlobalTransform();
126
+ if (flipX && flipY) {
127
+ rotation = global.rotation - (parent.global.rotation + Math.PI);
128
+ }
129
+ else if (flipX) {
130
+ rotation = global.rotation + parent.global.rotation + Math.PI;
131
+ }
132
+ else if (flipY) {
133
+ rotation = global.rotation + parent.global.rotation;
134
+ }
135
+ else {
136
+ rotation = global.rotation - parent.global.rotation;
137
+ }
138
+ global.rotation = rotation;
139
+ }
140
+ global.toMatrix(globalTransformMatrix);
141
+ globalTransformMatrix.concat(parentMatrix);
142
+ if (boneData.inheritTranslation) {
143
+ global.x = globalTransformMatrix.tx;
144
+ global.y = globalTransformMatrix.ty;
145
+ }
146
+ else {
147
+ globalTransformMatrix.tx = global.x;
148
+ globalTransformMatrix.ty = global.y;
149
+ }
150
+ if (isCache) {
151
+ global.fromMatrix(globalTransformMatrix);
152
+ }
153
+ else {
154
+ this._globalDirty = true;
155
+ }
156
+ }
157
+ }
158
+ else {
159
+ if (boneData.inheritTranslation) {
160
+ const x = global.x;
161
+ const y = global.y;
162
+ global.x = parentMatrix.a * x + parentMatrix.c * y + parentMatrix.tx;
163
+ global.y = parentMatrix.b * x + parentMatrix.d * y + parentMatrix.ty;
164
+ }
165
+ else {
166
+ if (flipX) {
167
+ global.x = -global.x;
168
+ }
169
+ if (flipY) {
170
+ global.y = -global.y;
171
+ }
172
+ }
173
+ if (boneData.inheritRotation) {
174
+ parent.updateGlobalTransform();
175
+ if (parent.global.scaleX < 0.0) {
176
+ rotation = global.rotation + parent.global.rotation + Math.PI;
177
+ }
178
+ else {
179
+ rotation = global.rotation + parent.global.rotation;
180
+ }
181
+ if (parentMatrix.a * parentMatrix.d - parentMatrix.b * parentMatrix.c <
182
+ 0.0) {
183
+ rotation -= global.rotation * 2.0;
184
+ if (flipX !== flipY || boneData.inheritReflection) {
185
+ global.skew += Math.PI;
186
+ }
187
+ if (!DragonBones.yDown) {
188
+ global.skew = -global.skew;
189
+ }
190
+ }
191
+ global.rotation = rotation;
192
+ }
193
+ else if (flipX || flipY) {
194
+ if (flipX && flipY) {
195
+ rotation = global.rotation + Math.PI;
196
+ }
197
+ else {
198
+ if (flipX) {
199
+ rotation = Math.PI - global.rotation;
200
+ }
201
+ else {
202
+ rotation = -global.rotation;
203
+ }
204
+ global.skew += Math.PI;
205
+ }
206
+ global.rotation = rotation;
207
+ }
208
+ global.toMatrix(globalTransformMatrix);
209
+ }
210
+ }
211
+ else {
212
+ if (flipX || flipY) {
213
+ if (flipX) {
214
+ global.x = -global.x;
215
+ }
216
+ if (flipY) {
217
+ global.y = -global.y;
218
+ }
219
+ if (flipX && flipY) {
220
+ rotation = global.rotation + Math.PI;
221
+ }
222
+ else {
223
+ if (flipX) {
224
+ rotation = Math.PI - global.rotation;
225
+ }
226
+ else {
227
+ rotation = -global.rotation;
228
+ }
229
+ global.skew += Math.PI;
230
+ }
231
+ global.rotation = rotation;
232
+ }
233
+ global.toMatrix(globalTransformMatrix);
234
+ }
235
+ }
236
+ /**
237
+ * @internal
238
+ */
239
+ _updateAlpha() {
240
+ if (this._parent !== null) {
241
+ this._globalAlpha = this._alpha * this._parent._globalAlpha;
242
+ }
243
+ else {
244
+ this._globalAlpha = this._alpha * this._armature._globalAlpha;
245
+ }
246
+ }
247
+ /**
248
+ * @internal
249
+ */
250
+ init(boneData, armatureValue) {
251
+ if (this._boneData !== null) {
252
+ return;
253
+ }
254
+ this._boneData = boneData;
255
+ this._armature = armatureValue;
256
+ this._alpha = this._boneData.alpha;
257
+ if (this._boneData.parent !== null) {
258
+ this._parent = this._armature.getBone(this._boneData.parent.name);
259
+ }
260
+ this._armature._addBone(this);
261
+ //
262
+ this.origin = this._boneData.transform;
263
+ }
264
+ /**
265
+ * @internal
266
+ */
267
+ update(cacheFrameIndex) {
268
+ if (cacheFrameIndex >= 0 && this._cachedFrameIndices !== null) {
269
+ const cachedFrameIndex = this._cachedFrameIndices[cacheFrameIndex];
270
+ if (cachedFrameIndex >= 0 &&
271
+ this._cachedFrameIndex === cachedFrameIndex) {
272
+ // Same cache.
273
+ this._transformDirty = false;
274
+ }
275
+ else if (cachedFrameIndex >= 0) {
276
+ // Has been Cached.
277
+ this._transformDirty = true;
278
+ this._cachedFrameIndex = cachedFrameIndex;
279
+ }
280
+ else {
281
+ if (this._hasConstraint) {
282
+ // Update constraints.
283
+ for (const constraint of this._armature._constraints) {
284
+ if (constraint._root === this) {
285
+ constraint.update();
286
+ }
287
+ }
288
+ }
289
+ if (this._transformDirty ||
290
+ (this._parent !== null && this._parent._childrenTransformDirty)) {
291
+ // Dirty.
292
+ this._transformDirty = true;
293
+ this._cachedFrameIndex = -1;
294
+ }
295
+ else if (this._cachedFrameIndex >= 0) {
296
+ // Same cache, but not set index yet.
297
+ this._transformDirty = false;
298
+ this._cachedFrameIndices[cacheFrameIndex] = this._cachedFrameIndex;
299
+ }
300
+ else {
301
+ // Dirty.
302
+ this._transformDirty = true;
303
+ this._cachedFrameIndex = -1;
304
+ }
305
+ }
306
+ }
307
+ else {
308
+ if (this._hasConstraint) {
309
+ // Update constraints.
310
+ for (const constraint of this._armature._constraints) {
311
+ if (constraint._root === this) {
312
+ constraint.update();
313
+ }
314
+ }
315
+ }
316
+ if (this._transformDirty ||
317
+ (this._parent !== null && this._parent._childrenTransformDirty)) {
318
+ // Dirty.
319
+ cacheFrameIndex = -1;
320
+ this._transformDirty = true;
321
+ this._cachedFrameIndex = -1;
322
+ }
323
+ }
324
+ if (this._transformDirty) {
325
+ this._transformDirty = false;
326
+ this._childrenTransformDirty = true;
327
+ //
328
+ if (this._cachedFrameIndex < 0) {
329
+ const isCache = cacheFrameIndex >= 0;
330
+ if (this._localDirty) {
331
+ this._updateGlobalTransformMatrix(isCache);
332
+ }
333
+ if (isCache && this._cachedFrameIndices !== null) {
334
+ this._cachedFrameIndex = this._cachedFrameIndices[cacheFrameIndex] =
335
+ this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global);
336
+ }
337
+ }
338
+ else {
339
+ this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex);
340
+ }
341
+ //
342
+ }
343
+ else if (this._childrenTransformDirty) {
344
+ this._childrenTransformDirty = false;
345
+ }
346
+ this._localDirty = true;
347
+ }
348
+ /**
349
+ * @internal
350
+ */
351
+ updateByConstraint() {
352
+ if (this._localDirty) {
353
+ this._localDirty = false;
354
+ if (this._transformDirty ||
355
+ (this._parent !== null && this._parent._childrenTransformDirty)) {
356
+ this._updateGlobalTransformMatrix(true);
357
+ }
358
+ this._transformDirty = true;
359
+ }
360
+ }
361
+ /**
362
+ * - Forces the bone to update the transform in the next frame.
363
+ * When the bone is not animated or its animation state is finished, the bone will not continue to update,
364
+ * and when the skeleton must be updated for some reason, the method needs to be called explicitly.
365
+ * @example
366
+ * <pre>
367
+ * let bone = armature.getBone("arm");
368
+ * bone.offset.scaleX = 2.0;
369
+ * bone.invalidUpdate();
370
+ * </pre>
371
+ * @version DragonBones 3.0
372
+ * @language en_US
373
+ */
374
+ invalidUpdate() {
375
+ this._transformDirty = true;
376
+ }
377
+ /**
378
+ * - Check whether the bone contains a specific bone.
379
+ * @see dragonBones.Bone
380
+ * @version DragonBones 3.0
381
+ * @language en_US
382
+ */
383
+ contains(value) {
384
+ if (value === this) {
385
+ return false;
386
+ }
387
+ let ancestor = value;
388
+ while (ancestor !== this && ancestor !== null) {
389
+ ancestor = ancestor.parent;
390
+ }
391
+ return ancestor === this;
392
+ }
393
+ /**
394
+ * - The bone data.
395
+ * @version DragonBones 4.5
396
+ * @language en_US
397
+ */
398
+ get boneData() {
399
+ return this._boneData;
400
+ }
401
+ /**
402
+ * - The visible of all slots in the bone.
403
+ * @default true
404
+ * @see dragonBones.Slot#visible
405
+ * @version DragonBones 3.0
406
+ * @language en_US
407
+ */
408
+ get visible() {
409
+ return this._visible;
410
+ }
411
+ set visible(value) {
412
+ if (this._visible === value) {
413
+ return;
414
+ }
415
+ this._visible = value;
416
+ for (const slot of this._armature.getSlots()) {
417
+ if (slot.parent === this) {
418
+ slot._updateVisible();
419
+ }
420
+ }
421
+ }
422
+ /**
423
+ * - The bone name.
424
+ * @version DragonBones 3.0
425
+ * @language en_US
426
+ */
427
+ get name() {
428
+ return this._boneData.name;
429
+ }
430
+ /**
431
+ * - The parent bone to which it belongs.
432
+ * @version DragonBones 3.0
433
+ * @language en_US
434
+ */
435
+ get parent() {
436
+ return this._parent;
437
+ }
438
+ }
@@ -0,0 +1,99 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ import { Matrix } from "../geom/Matrix";
3
+ import { Point } from "../geom/Point";
4
+ import { Transform } from "../geom/Transform";
5
+ import { ConstraintData } from "../model/ConstraintData";
6
+ import { GeometryData, PathDisplayData } from "../model/DisplayData";
7
+ import { Armature } from "./Armature";
8
+ import { Bone } from "./Bone";
9
+ /**
10
+ * - The base class of the constraint.
11
+ * A constraint is used to control the movement of a bone or a slot.
12
+ * @internal
13
+ */
14
+ export declare abstract class Constraint extends BaseObject {
15
+ protected static readonly _helpMatrix: Matrix;
16
+ protected static readonly _helpTransform: Transform;
17
+ protected static readonly _helpPoint: Point;
18
+ /**
19
+ * - For timeline state.
20
+ * @internal
21
+ */
22
+ _constraintData: ConstraintData;
23
+ protected _armature: Armature;
24
+ /**
25
+ * - For sort bones.
26
+ * @internal
27
+ */
28
+ _target: Bone;
29
+ /**
30
+ * - For sort bones.
31
+ * @internal
32
+ */
33
+ _root: Bone;
34
+ protected _bone: Bone | null;
35
+ protected _onClear(): void;
36
+ abstract init(constraintData: ConstraintData, armature: Armature): void;
37
+ abstract update(): void;
38
+ abstract invalidUpdate(): void;
39
+ get name(): string;
40
+ }
41
+ /**
42
+ * - The inverse kinematics constraint.
43
+ * @internal
44
+ */
45
+ export declare class IKConstraint extends Constraint {
46
+ static toString(): string;
47
+ private _scaleEnabled;
48
+ /**
49
+ * - For timeline state.
50
+ * @internal
51
+ */
52
+ _bendPositive: boolean;
53
+ /**
54
+ * - For timeline state.
55
+ * @internal
56
+ */
57
+ _weight: number;
58
+ protected _onClear(): void;
59
+ private _computeA;
60
+ private _computeB;
61
+ init(constraintData: ConstraintData, armature: Armature): void;
62
+ /**
63
+ * - Update the constraint.
64
+ */
65
+ update(): void;
66
+ invalidUpdate(): void;
67
+ }
68
+ /**
69
+ * - The path constraint.
70
+ * The path constraint is used to control the movement of a bone or a slot along a path.
71
+ * @internal
72
+ */
73
+ export declare class PathConstraint extends Constraint {
74
+ dirty: boolean;
75
+ pathOffset: number;
76
+ position: number;
77
+ spacing: number;
78
+ rotateOffset: number;
79
+ rotateMix: number;
80
+ translateMix: number;
81
+ private _pathSlot;
82
+ private _bones;
83
+ private _spaces;
84
+ private _positions;
85
+ private _curves;
86
+ private _boneLengths;
87
+ private _pathGlobalVertices;
88
+ private _segments;
89
+ static toString(): string;
90
+ protected _onClear(): void;
91
+ protected _updatePathVertices(verticesData: GeometryData): void;
92
+ protected _computeVertices(start: number, count: number, offset: number, out: Array<number>): void;
93
+ protected _computeBezierCurve(pathDisplayDta: PathDisplayData, spaceCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): void;
94
+ private addCurvePosition;
95
+ init(constraintData: ConstraintData, armature: Armature): void;
96
+ update(): void;
97
+ invalidUpdate(): void;
98
+ }
99
+ //# sourceMappingURL=Constraint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constraint.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/armature/Constraint.ts"],"names":[],"mappings":"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"}