@safe-engine/pixi 8.8.2 → 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 (141) 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/dragonbones/DragonBonesComponent.d.ts +1 -1
  5. package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -1
  6. package/dist/dragonbones/DragonBonesComponent.js +1 -1
  7. package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
  8. package/dist/dragonbones/DragonBonesSystem.js +1 -1
  9. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts +59 -0
  10. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts.map +1 -0
  11. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.js +180 -0
  12. package/dist/dragonbones/db-pixi/PixiFactory.d.ts +87 -0
  13. package/dist/dragonbones/db-pixi/PixiFactory.d.ts.map +1 -0
  14. package/dist/dragonbones/db-pixi/PixiFactory.js +159 -0
  15. package/dist/dragonbones/db-pixi/PixiSlot.d.ts +31 -0
  16. package/dist/dragonbones/db-pixi/PixiSlot.d.ts.map +1 -0
  17. package/dist/dragonbones/db-pixi/PixiSlot.js +332 -0
  18. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts +38 -0
  19. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts.map +1 -0
  20. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.js +85 -0
  21. package/dist/dragonbones/db-pixi/index.d.ts +5 -0
  22. package/dist/dragonbones/db-pixi/index.d.ts.map +1 -0
  23. package/dist/dragonbones/db-pixi/index.js +4 -0
  24. package/dist/dragonbones/dragonBones/animation/Animation.d.ts +241 -0
  25. package/dist/dragonbones/dragonBones/animation/Animation.d.ts.map +1 -0
  26. package/dist/dragonbones/dragonBones/animation/Animation.js +692 -0
  27. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts +323 -0
  28. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts.map +1 -0
  29. package/dist/dragonbones/dragonBones/animation/AnimationState.js +1161 -0
  30. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts +100 -0
  31. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts.map +1 -0
  32. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.js +479 -0
  33. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts +38 -0
  34. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts.map +1 -0
  35. package/dist/dragonbones/dragonBones/animation/IAnimatable.js +9 -0
  36. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts +159 -0
  37. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts.map +1 -0
  38. package/dist/dragonbones/dragonBones/animation/TimelineState.js +998 -0
  39. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts +74 -0
  40. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts.map +1 -0
  41. package/dist/dragonbones/dragonBones/animation/WorldClock.js +162 -0
  42. package/dist/dragonbones/dragonBones/armature/Armature.d.ts +314 -0
  43. package/dist/dragonbones/dragonBones/armature/Armature.d.ts.map +1 -0
  44. package/dist/dragonbones/dragonBones/armature/Armature.js +650 -0
  45. package/dist/dragonbones/dragonBones/armature/Bone.d.ts +123 -0
  46. package/dist/dragonbones/dragonBones/armature/Bone.d.ts.map +1 -0
  47. package/dist/dragonbones/dragonBones/armature/Bone.js +438 -0
  48. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts +99 -0
  49. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts.map +1 -0
  50. package/dist/dragonbones/dragonBones/armature/Constraint.js +672 -0
  51. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts +47 -0
  52. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts.map +1 -0
  53. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.js +1 -0
  54. package/dist/dragonbones/dragonBones/armature/Slot.d.ts +357 -0
  55. package/dist/dragonbones/dragonBones/armature/Slot.d.ts.map +1 -0
  56. package/dist/dragonbones/dragonBones/armature/Slot.js +1009 -0
  57. package/dist/dragonbones/dragonBones/armature/Surface.d.ts +41 -0
  58. package/dist/dragonbones/dragonBones/armature/Surface.d.ts.map +1 -0
  59. package/dist/dragonbones/dragonBones/armature/Surface.js +463 -0
  60. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts +80 -0
  61. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts.map +1 -0
  62. package/dist/dragonbones/dragonBones/armature/TransformObject.js +77 -0
  63. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts +53 -0
  64. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts.map +1 -0
  65. package/dist/dragonbones/dragonBones/core/BaseObject.js +130 -0
  66. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts +236 -0
  67. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts.map +1 -0
  68. package/dist/dragonbones/dragonBones/core/DragonBones.js +61 -0
  69. package/dist/dragonbones/dragonBones/event/EventObject.d.ts +143 -0
  70. package/dist/dragonbones/dragonBones/event/EventObject.d.ts.map +1 -0
  71. package/dist/dragonbones/dragonBones/event/EventObject.js +99 -0
  72. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts +48 -0
  73. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts.map +1 -0
  74. package/dist/dragonbones/dragonBones/event/IEventDispatcher.js +1 -0
  75. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts +292 -0
  76. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts.map +1 -0
  77. package/dist/dragonbones/dragonBones/factory/BaseFactory.js +735 -0
  78. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts +17 -0
  79. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts.map +1 -0
  80. package/dist/dragonbones/dragonBones/geom/ColorTransform.js +33 -0
  81. package/dist/dragonbones/dragonBones/geom/Curve.d.ts +10 -0
  82. package/dist/dragonbones/dragonBones/geom/Curve.d.ts.map +1 -0
  83. package/dist/dragonbones/dragonBones/geom/Curve.js +26 -0
  84. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts +105 -0
  85. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts.map +1 -0
  86. package/dist/dragonbones/dragonBones/geom/Matrix.js +207 -0
  87. package/dist/dragonbones/dragonBones/geom/Point.d.ts +38 -0
  88. package/dist/dragonbones/dragonBones/geom/Point.d.ts.map +1 -0
  89. package/dist/dragonbones/dragonBones/geom/Point.js +31 -0
  90. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts +53 -0
  91. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts.map +1 -0
  92. package/dist/dragonbones/dragonBones/geom/Rectangle.js +37 -0
  93. package/dist/dragonbones/dragonBones/geom/Transform.d.ts +102 -0
  94. package/dist/dragonbones/dragonBones/geom/Transform.d.ts.map +1 -0
  95. package/dist/dragonbones/dragonBones/geom/Transform.js +170 -0
  96. package/dist/dragonbones/dragonBones/index.d.ts +37 -0
  97. package/dist/dragonbones/dragonBones/index.d.ts.map +1 -0
  98. package/dist/dragonbones/dragonBones/index.js +36 -0
  99. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts +162 -0
  100. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts.map +1 -0
  101. package/dist/dragonbones/dragonBones/model/AnimationConfig.js +81 -0
  102. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts +174 -0
  103. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts.map +1 -0
  104. package/dist/dragonbones/dragonBones/model/AnimationData.js +256 -0
  105. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts +319 -0
  106. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts.map +1 -0
  107. package/dist/dragonbones/dragonBones/model/ArmatureData.js +450 -0
  108. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts +188 -0
  109. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts.map +1 -0
  110. package/dist/dragonbones/dragonBones/model/BoundingBoxData.js +500 -0
  111. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts +15 -0
  112. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts.map +1 -0
  113. package/dist/dragonbones/dragonBones/model/CanvasData.js +17 -0
  114. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts +46 -0
  115. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts.map +1 -0
  116. package/dist/dragonbones/dragonBones/model/ConstraintData.js +57 -0
  117. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts +98 -0
  118. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts.map +1 -0
  119. package/dist/dragonbones/dragonBones/model/DisplayData.js +174 -0
  120. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts +108 -0
  121. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts.map +1 -0
  122. package/dist/dragonbones/dragonBones/model/DragonBonesData.js +86 -0
  123. package/dist/dragonbones/dragonBones/model/SkinData.d.ts +40 -0
  124. package/dist/dragonbones/dragonBones/model/SkinData.d.ts.map +1 -0
  125. package/dist/dragonbones/dragonBones/model/SkinData.js +68 -0
  126. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts +73 -0
  127. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts.map +1 -0
  128. package/dist/dragonbones/dragonBones/model/TextureAtlasData.js +102 -0
  129. package/dist/dragonbones/dragonBones/model/UserData.d.ts +73 -0
  130. package/dist/dragonbones/dragonBones/model/UserData.d.ts.map +1 -0
  131. package/dist/dragonbones/dragonBones/model/UserData.js +101 -0
  132. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts +29 -0
  133. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts.map +1 -0
  134. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.js +356 -0
  135. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts +153 -0
  136. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts.map +1 -0
  137. package/dist/dragonbones/dragonBones/parser/DataParser.js +283 -0
  138. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts +130 -0
  139. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts.map +1 -0
  140. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.js +2098 -0
  141. package/package.json +1 -2
@@ -0,0 +1,100 @@
1
+ import { Armature } from "../armature/Armature";
2
+ import { BaseObject } from "../core/BaseObject";
3
+ import { TweenType } from "../core/DragonBones";
4
+ import { AnimationData, TimelineData } from "../model/AnimationData";
5
+ import { AnimationState } from "./AnimationState";
6
+ /**
7
+ * @internal
8
+ */
9
+ export declare abstract class TimelineState extends BaseObject {
10
+ dirty: boolean;
11
+ /**
12
+ * -1: start, 0: play, 1: complete;
13
+ */
14
+ playState: number;
15
+ currentPlayTimes: number;
16
+ currentTime: number;
17
+ target: BaseObject;
18
+ protected _isTween: boolean;
19
+ protected _valueOffset: number;
20
+ protected _frameValueOffset: number;
21
+ protected _frameOffset: number;
22
+ protected _frameRate: number;
23
+ protected _frameCount: number;
24
+ protected _frameIndex: number;
25
+ protected _frameRateR: number;
26
+ protected _position: number;
27
+ protected _duration: number;
28
+ protected _timeScale: number;
29
+ protected _timeOffset: number;
30
+ protected _animationData: AnimationData;
31
+ protected _timelineData: TimelineData | null;
32
+ protected _armature: Armature;
33
+ protected _animationState: AnimationState;
34
+ protected _actionTimeline: TimelineState;
35
+ protected _timelineArray: Array<number> | Uint16Array;
36
+ protected _frameArray: Array<number> | Int16Array;
37
+ protected _valueArray: Array<number> | Int16Array | Float32Array;
38
+ protected _frameIndices: Array<number>;
39
+ protected _onClear(): void;
40
+ protected abstract _onArriveAtFrame(): void;
41
+ protected abstract _onUpdateFrame(): void;
42
+ protected _setCurrentTime(passedTime: number): boolean;
43
+ init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;
44
+ fadeOut(): void;
45
+ update(passedTime: number): void;
46
+ blend(_isDirty: boolean): void;
47
+ }
48
+ /**
49
+ * @internal
50
+ */
51
+ export declare abstract class TweenTimelineState extends TimelineState {
52
+ private static _getEasingValue;
53
+ private static _getEasingCurveValue;
54
+ protected _tweenType: TweenType;
55
+ protected _curveCount: number;
56
+ protected _framePosition: number;
57
+ protected _frameDurationR: number;
58
+ protected _tweenEasing: number;
59
+ protected _tweenProgress: number;
60
+ protected _valueScale: number;
61
+ protected _onClear(): void;
62
+ protected _onArriveAtFrame(): void;
63
+ protected _onUpdateFrame(): void;
64
+ }
65
+ /**
66
+ * @internal
67
+ */
68
+ export declare abstract class SingleValueTimelineState extends TweenTimelineState {
69
+ protected _current: number;
70
+ protected _difference: number;
71
+ protected _result: number;
72
+ protected _onClear(): void;
73
+ protected _onArriveAtFrame(): void;
74
+ protected _onUpdateFrame(): void;
75
+ }
76
+ /**
77
+ * @internal
78
+ */
79
+ export declare abstract class DoubleValueTimelineState extends TweenTimelineState {
80
+ protected _currentA: number;
81
+ protected _currentB: number;
82
+ protected _differenceA: number;
83
+ protected _differenceB: number;
84
+ protected _resultA: number;
85
+ protected _resultB: number;
86
+ protected _onClear(): void;
87
+ protected _onArriveAtFrame(): void;
88
+ protected _onUpdateFrame(): void;
89
+ }
90
+ /**
91
+ * @internal
92
+ */
93
+ export declare abstract class MutilpleValueTimelineState extends TweenTimelineState {
94
+ protected _valueCount: number;
95
+ protected readonly _rd: Array<number>;
96
+ protected _onClear(): void;
97
+ protected _onArriveAtFrame(): void;
98
+ protected _onUpdateFrame(): void;
99
+ }
100
+ //# sourceMappingURL=BaseTimelineState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTimelineState.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/animation/BaseTimelineState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,479 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ /**
3
+ * @internal
4
+ */
5
+ export class TimelineState extends BaseObject {
6
+ _onClear() {
7
+ this.dirty = false;
8
+ this.playState = -1;
9
+ this.currentPlayTimes = 0;
10
+ this.currentTime = -1.0;
11
+ this.target = null;
12
+ this._isTween = false;
13
+ this._valueOffset = 0;
14
+ this._frameValueOffset = 0;
15
+ this._frameOffset = 0;
16
+ this._frameRate = 0;
17
+ this._frameCount = 0;
18
+ this._frameIndex = -1;
19
+ this._frameRateR = 0.0;
20
+ this._position = 0.0;
21
+ this._duration = 0.0;
22
+ this._timeScale = 1.0;
23
+ this._timeOffset = 0.0;
24
+ this._animationData = null; //
25
+ this._timelineData = null; //
26
+ this._armature = null; //
27
+ this._animationState = null; //
28
+ this._actionTimeline = null; //
29
+ this._frameArray = null; //
30
+ this._valueArray = null; //
31
+ this._timelineArray = null; //
32
+ this._frameIndices = null; //
33
+ }
34
+ _setCurrentTime(passedTime) {
35
+ const prevState = this.playState;
36
+ const prevPlayTimes = this.currentPlayTimes;
37
+ const prevTime = this.currentTime;
38
+ if (this._actionTimeline !== null && this._frameCount <= 1) {
39
+ // No frame or only one frame.
40
+ this.playState = this._actionTimeline.playState >= 0 ? 1 : -1;
41
+ this.currentPlayTimes = 1;
42
+ this.currentTime = this._actionTimeline.currentTime;
43
+ }
44
+ else if (this._actionTimeline === null ||
45
+ this._timeScale !== 1.0 ||
46
+ this._timeOffset !== 0.0) {
47
+ // Action timeline or has scale and offset.
48
+ const playTimes = this._animationState.playTimes;
49
+ const totalTime = playTimes * this._duration;
50
+ passedTime *= this._timeScale;
51
+ if (this._timeOffset !== 0.0) {
52
+ passedTime += this._timeOffset * this._animationData.duration;
53
+ }
54
+ if (playTimes > 0 &&
55
+ (passedTime >= totalTime || passedTime <= -totalTime)) {
56
+ if (this.playState <= 0 && this._animationState._playheadState === 3) {
57
+ this.playState = 1;
58
+ }
59
+ this.currentPlayTimes = playTimes;
60
+ if (passedTime < 0.0) {
61
+ this.currentTime = 0.0;
62
+ }
63
+ else {
64
+ this.currentTime =
65
+ this.playState === 1 ? this._duration + 0.000001 : this._duration; // Precision problem
66
+ }
67
+ }
68
+ else {
69
+ if (this.playState !== 0 && this._animationState._playheadState === 3) {
70
+ this.playState = 0;
71
+ }
72
+ if (passedTime < 0.0) {
73
+ passedTime = -passedTime;
74
+ this.currentPlayTimes = Math.floor(passedTime / this._duration);
75
+ this.currentTime = this._duration - (passedTime % this._duration);
76
+ }
77
+ else {
78
+ this.currentPlayTimes = Math.floor(passedTime / this._duration);
79
+ this.currentTime = passedTime % this._duration;
80
+ }
81
+ }
82
+ this.currentTime += this._position;
83
+ }
84
+ else {
85
+ // Multi frames.
86
+ this.playState = this._actionTimeline.playState;
87
+ this.currentPlayTimes = this._actionTimeline.currentPlayTimes;
88
+ this.currentTime = this._actionTimeline.currentTime;
89
+ }
90
+ if (this.currentPlayTimes === prevPlayTimes &&
91
+ this.currentTime === prevTime) {
92
+ return false;
93
+ }
94
+ // Clear frame flag when timeline start or loopComplete.
95
+ if ((prevState < 0 && this.playState !== prevState) ||
96
+ (this.playState <= 0 && this.currentPlayTimes !== prevPlayTimes)) {
97
+ this._frameIndex = -1;
98
+ }
99
+ return true;
100
+ }
101
+ init(armature, animationState, timelineData) {
102
+ this._armature = armature;
103
+ this._animationState = animationState;
104
+ this._timelineData = timelineData;
105
+ this._actionTimeline = this._animationState._actionTimeline;
106
+ if (this === this._actionTimeline) {
107
+ this._actionTimeline = null; //
108
+ }
109
+ this._animationData = this._animationState.animationData;
110
+ //
111
+ this._frameRate = this._animationData.parent.frameRate;
112
+ this._frameRateR = 1.0 / this._frameRate;
113
+ this._position = this._animationState._position;
114
+ this._duration = this._animationState._duration;
115
+ if (this._timelineData !== null) {
116
+ const dragonBonesData = this._animationData.parent.parent; // May by the animation data is not belone to this armature data.
117
+ this._frameArray = dragonBonesData.frameArray;
118
+ this._timelineArray = dragonBonesData.timelineArray;
119
+ this._frameIndices = dragonBonesData.frameIndices;
120
+ //
121
+ this._frameCount =
122
+ this._timelineArray[this._timelineData.offset + 2 /* BinaryOffset.TimelineKeyFrameCount */];
123
+ this._frameValueOffset =
124
+ this._timelineArray[this._timelineData.offset + 4 /* BinaryOffset.TimelineFrameValueOffset */];
125
+ this._timeScale =
126
+ 100.0 /
127
+ this._timelineArray[this._timelineData.offset + 0 /* BinaryOffset.TimelineScale */];
128
+ this._timeOffset =
129
+ this._timelineArray[this._timelineData.offset + 1 /* BinaryOffset.TimelineOffset */] * 0.01;
130
+ }
131
+ }
132
+ fadeOut() {
133
+ this.dirty = false;
134
+ }
135
+ update(passedTime) {
136
+ if (this._setCurrentTime(passedTime)) {
137
+ if (this._frameCount > 1) {
138
+ const timelineFrameIndex = Math.floor(this.currentTime * this._frameRate); // uint
139
+ const frameIndex = this._frameIndices[this._timelineData.frameIndicesOffset +
140
+ timelineFrameIndex];
141
+ if (this._frameIndex !== frameIndex) {
142
+ this._frameIndex = frameIndex;
143
+ this._frameOffset =
144
+ this._animationData.frameOffset +
145
+ this._timelineArray[this._timelineData.offset +
146
+ 5 /* BinaryOffset.TimelineFrameOffset */ +
147
+ this._frameIndex];
148
+ this._onArriveAtFrame();
149
+ }
150
+ }
151
+ else if (this._frameIndex < 0) {
152
+ this._frameIndex = 0;
153
+ if (this._timelineData !== null) {
154
+ // May be pose timeline.
155
+ this._frameOffset =
156
+ this._animationData.frameOffset +
157
+ this._timelineArray[this._timelineData.offset + 5 /* BinaryOffset.TimelineFrameOffset */];
158
+ }
159
+ this._onArriveAtFrame();
160
+ }
161
+ if (this._isTween || this.dirty) {
162
+ this._onUpdateFrame();
163
+ }
164
+ }
165
+ }
166
+ blend(_isDirty) { }
167
+ }
168
+ /**
169
+ * @internal
170
+ */
171
+ export class TweenTimelineState extends TimelineState {
172
+ static _getEasingValue(tweenType, progress, easing) {
173
+ let value = progress;
174
+ switch (tweenType) {
175
+ case 3 /* TweenType.QuadIn */:
176
+ value = Math.pow(progress, 2.0);
177
+ break;
178
+ case 4 /* TweenType.QuadOut */:
179
+ value = 1.0 - Math.pow(1.0 - progress, 2.0);
180
+ break;
181
+ case 5 /* TweenType.QuadInOut */:
182
+ value = 0.5 * (1.0 - Math.cos(progress * Math.PI));
183
+ break;
184
+ }
185
+ return (value - progress) * easing + progress;
186
+ }
187
+ static _getEasingCurveValue(progress, samples, count, offset) {
188
+ if (progress <= 0.0) {
189
+ return 0.0;
190
+ }
191
+ else if (progress >= 1.0) {
192
+ return 1.0;
193
+ }
194
+ const isOmited = count > 0;
195
+ const segmentCount = count + 1; // + 2 - 1
196
+ const valueIndex = Math.floor(progress * segmentCount);
197
+ let fromValue = 0.0;
198
+ let toValue = 0.0;
199
+ if (isOmited) {
200
+ fromValue = valueIndex === 0 ? 0.0 : samples[offset + valueIndex - 1];
201
+ toValue =
202
+ valueIndex === segmentCount - 1
203
+ ? 10000.0
204
+ : samples[offset + valueIndex];
205
+ }
206
+ else {
207
+ fromValue = samples[offset + valueIndex - 1];
208
+ toValue = samples[offset + valueIndex];
209
+ }
210
+ return ((fromValue +
211
+ (toValue - fromValue) * (progress * segmentCount - valueIndex)) *
212
+ 0.0001);
213
+ }
214
+ _onClear() {
215
+ super._onClear();
216
+ this._tweenType = 0 /* TweenType.None */;
217
+ this._curveCount = 0;
218
+ this._framePosition = 0.0;
219
+ this._frameDurationR = 0.0;
220
+ this._tweenEasing = 0.0;
221
+ this._tweenProgress = 0.0;
222
+ this._valueScale = 1.0;
223
+ }
224
+ _onArriveAtFrame() {
225
+ if (this._frameCount > 1 &&
226
+ (this._frameIndex !== this._frameCount - 1 ||
227
+ this._animationState.playTimes === 0 ||
228
+ this._animationState.currentPlayTimes <
229
+ this._animationState.playTimes - 1)) {
230
+ this._tweenType =
231
+ this._frameArray[this._frameOffset + 1 /* BinaryOffset.FrameTweenType */];
232
+ this._isTween = this._tweenType !== 0 /* TweenType.None */;
233
+ if (this._isTween) {
234
+ if (this._tweenType === 2 /* TweenType.Curve */) {
235
+ this._curveCount =
236
+ this._frameArray[this._frameOffset +
237
+ 2 /* BinaryOffset.FrameTweenEasingOrCurveSampleCount */];
238
+ }
239
+ else if (this._tweenType !== 0 /* TweenType.None */ &&
240
+ this._tweenType !== 1 /* TweenType.Line */) {
241
+ this._tweenEasing =
242
+ this._frameArray[this._frameOffset +
243
+ 2 /* BinaryOffset.FrameTweenEasingOrCurveSampleCount */] * 0.01;
244
+ }
245
+ }
246
+ else {
247
+ this.dirty = true;
248
+ }
249
+ this._framePosition =
250
+ this._frameArray[this._frameOffset] * this._frameRateR;
251
+ if (this._frameIndex === this._frameCount - 1) {
252
+ this._frameDurationR =
253
+ 1.0 / (this._animationData.duration - this._framePosition);
254
+ }
255
+ else {
256
+ const nextFrameOffset = this._animationData.frameOffset +
257
+ this._timelineArray[this._timelineData.offset +
258
+ 5 /* BinaryOffset.TimelineFrameOffset */ +
259
+ this._frameIndex +
260
+ 1];
261
+ const frameDuration = this._frameArray[nextFrameOffset] * this._frameRateR -
262
+ this._framePosition;
263
+ if (frameDuration > 0) {
264
+ this._frameDurationR = 1.0 / frameDuration;
265
+ }
266
+ else {
267
+ this._frameDurationR = 0.0;
268
+ }
269
+ }
270
+ }
271
+ else {
272
+ this.dirty = true;
273
+ this._isTween = false;
274
+ }
275
+ }
276
+ _onUpdateFrame() {
277
+ if (this._isTween) {
278
+ this.dirty = true;
279
+ this._tweenProgress =
280
+ (this.currentTime - this._framePosition) * this._frameDurationR;
281
+ if (this._tweenType === 2 /* TweenType.Curve */) {
282
+ this._tweenProgress = TweenTimelineState._getEasingCurveValue(this._tweenProgress, this._frameArray, this._curveCount, this._frameOffset + 3 /* BinaryOffset.FrameCurveSamples */);
283
+ }
284
+ else if (this._tweenType !== 1 /* TweenType.Line */) {
285
+ this._tweenProgress = TweenTimelineState._getEasingValue(this._tweenType, this._tweenProgress, this._tweenEasing);
286
+ }
287
+ }
288
+ }
289
+ }
290
+ /**
291
+ * @internal
292
+ */
293
+ export class SingleValueTimelineState extends TweenTimelineState {
294
+ _onClear() {
295
+ super._onClear();
296
+ this._current = 0.0;
297
+ this._difference = 0.0;
298
+ this._result = 0.0;
299
+ }
300
+ _onArriveAtFrame() {
301
+ super._onArriveAtFrame();
302
+ if (this._timelineData !== null) {
303
+ const valueScale = this._valueScale;
304
+ const valueArray = this._valueArray;
305
+ //
306
+ const valueOffset = this._valueOffset + this._frameValueOffset + this._frameIndex;
307
+ if (this._isTween) {
308
+ const nextValueOffset = this._frameIndex === this._frameCount - 1
309
+ ? this._valueOffset + this._frameValueOffset
310
+ : valueOffset + 1;
311
+ if (valueScale === 1.0) {
312
+ this._current = valueArray[valueOffset];
313
+ this._difference = valueArray[nextValueOffset] - this._current;
314
+ }
315
+ else {
316
+ this._current = valueArray[valueOffset] * valueScale;
317
+ this._difference =
318
+ valueArray[nextValueOffset] * valueScale - this._current;
319
+ }
320
+ }
321
+ else {
322
+ this._result = valueArray[valueOffset] * valueScale;
323
+ }
324
+ }
325
+ else {
326
+ this._result = 0.0;
327
+ }
328
+ }
329
+ _onUpdateFrame() {
330
+ super._onUpdateFrame();
331
+ if (this._isTween) {
332
+ this._result = this._current + this._difference * this._tweenProgress;
333
+ }
334
+ }
335
+ }
336
+ /**
337
+ * @internal
338
+ */
339
+ export class DoubleValueTimelineState extends TweenTimelineState {
340
+ _onClear() {
341
+ super._onClear();
342
+ this._currentA = 0.0;
343
+ this._currentB = 0.0;
344
+ this._differenceA = 0.0;
345
+ this._differenceB = 0.0;
346
+ this._resultA = 0.0;
347
+ this._resultB = 0.0;
348
+ }
349
+ _onArriveAtFrame() {
350
+ super._onArriveAtFrame();
351
+ if (this._timelineData !== null) {
352
+ const valueScale = this._valueScale;
353
+ const valueArray = this._valueArray;
354
+ //
355
+ const valueOffset = this._valueOffset + this._frameValueOffset + this._frameIndex * 2;
356
+ if (this._isTween) {
357
+ const nextValueOffset = this._frameIndex === this._frameCount - 1
358
+ ? this._valueOffset + this._frameValueOffset
359
+ : valueOffset + 2;
360
+ if (valueScale === 1.0) {
361
+ this._currentA = valueArray[valueOffset];
362
+ this._currentB = valueArray[valueOffset + 1];
363
+ this._differenceA = valueArray[nextValueOffset] - this._currentA;
364
+ this._differenceB = valueArray[nextValueOffset + 1] - this._currentB;
365
+ }
366
+ else {
367
+ this._currentA = valueArray[valueOffset] * valueScale;
368
+ this._currentB = valueArray[valueOffset + 1] * valueScale;
369
+ this._differenceA =
370
+ valueArray[nextValueOffset] * valueScale - this._currentA;
371
+ this._differenceB =
372
+ valueArray[nextValueOffset + 1] * valueScale - this._currentB;
373
+ }
374
+ }
375
+ else {
376
+ this._resultA = valueArray[valueOffset] * valueScale;
377
+ this._resultB = valueArray[valueOffset + 1] * valueScale;
378
+ }
379
+ }
380
+ else {
381
+ this._resultA = 0.0;
382
+ this._resultB = 0.0;
383
+ }
384
+ }
385
+ _onUpdateFrame() {
386
+ super._onUpdateFrame();
387
+ if (this._isTween) {
388
+ this._resultA = this._currentA + this._differenceA * this._tweenProgress;
389
+ this._resultB = this._currentB + this._differenceB * this._tweenProgress;
390
+ }
391
+ }
392
+ }
393
+ /**
394
+ * @internal
395
+ */
396
+ export class MutilpleValueTimelineState extends TweenTimelineState {
397
+ constructor() {
398
+ super(...arguments);
399
+ this._rd = [];
400
+ }
401
+ _onClear() {
402
+ super._onClear();
403
+ this._valueCount = 0;
404
+ this._rd.length = 0;
405
+ }
406
+ _onArriveAtFrame() {
407
+ super._onArriveAtFrame();
408
+ const valueCount = this._valueCount;
409
+ const rd = this._rd;
410
+ if (this._timelineData !== null) {
411
+ const valueScale = this._valueScale;
412
+ const valueArray = this._valueArray;
413
+ //
414
+ const valueOffset = this._valueOffset +
415
+ this._frameValueOffset +
416
+ this._frameIndex * valueCount;
417
+ if (this._isTween) {
418
+ const nextValueOffset = this._frameIndex === this._frameCount - 1
419
+ ? this._valueOffset + this._frameValueOffset
420
+ : valueOffset + valueCount;
421
+ if (valueScale === 1.0) {
422
+ for (let i = 0; i < valueCount; ++i) {
423
+ rd[valueCount + i] =
424
+ valueArray[nextValueOffset + i] - valueArray[valueOffset + i];
425
+ }
426
+ }
427
+ else {
428
+ for (let i = 0; i < valueCount; ++i) {
429
+ rd[valueCount + i] =
430
+ (valueArray[nextValueOffset + i] - valueArray[valueOffset + i]) *
431
+ valueScale;
432
+ }
433
+ }
434
+ }
435
+ else if (valueScale === 1.0) {
436
+ for (let i = 0; i < valueCount; ++i) {
437
+ rd[i] = valueArray[valueOffset + i];
438
+ }
439
+ }
440
+ else {
441
+ for (let i = 0; i < valueCount; ++i) {
442
+ rd[i] = valueArray[valueOffset + i] * valueScale;
443
+ }
444
+ }
445
+ }
446
+ else {
447
+ for (let i = 0; i < valueCount; ++i) {
448
+ rd[i] = 0.0;
449
+ }
450
+ }
451
+ }
452
+ _onUpdateFrame() {
453
+ super._onUpdateFrame();
454
+ if (this._isTween) {
455
+ const valueCount = this._valueCount;
456
+ const valueScale = this._valueScale;
457
+ const tweenProgress = this._tweenProgress;
458
+ const valueArray = this._valueArray;
459
+ const rd = this._rd;
460
+ //
461
+ const valueOffset = this._valueOffset +
462
+ this._frameValueOffset +
463
+ this._frameIndex * valueCount;
464
+ if (valueScale === 1.0) {
465
+ for (let i = 0; i < valueCount; ++i) {
466
+ rd[i] =
467
+ valueArray[valueOffset + i] + rd[valueCount + i] * tweenProgress;
468
+ }
469
+ }
470
+ else {
471
+ for (let i = 0; i < valueCount; ++i) {
472
+ rd[i] =
473
+ valueArray[valueOffset + i] * valueScale +
474
+ rd[valueCount + i] * tweenProgress;
475
+ }
476
+ }
477
+ }
478
+ }
479
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * - Play animation interface. (Both Armature and Wordclock implement the interface)
3
+ * Any instance that implements the interface can be added to the Worldclock instance and advance time by Worldclock instance uniformly.
4
+ * @see dragonBones.WorldClock
5
+ * @see dragonBones.Armature
6
+ * @version DragonBones 3.0
7
+ * @language en_US
8
+ */
9
+ import { WorldClock } from "./WorldClock";
10
+ /**
11
+ * - Play animation interface. (Both Armature and WordClock implement this interface)
12
+ * Any instance that implements this interface can be added to the WorldClock instance and have its time updated uniformly by the WorldClock instance.
13
+ * @see dragonBones.WorldClock
14
+ * @see dragonBones.Armature
15
+ * @version DragonBones 3.0
16
+ * @language en_US
17
+ */
18
+ export interface IAnimatable {
19
+ /**
20
+ * - Advance time.
21
+ * @param passedTime - Passed time. (In seconds)
22
+ * @version DragonBones 3.0
23
+ * @language en_US
24
+ */
25
+ advanceTime(passedTime: number): void;
26
+ /**
27
+ * - The Wordclock instance to which the current belongs.
28
+ * @example
29
+ * <pre>
30
+ * armature.clock = factory.clock; // Add armature to clock.
31
+ * armature.clock = null; // Remove armature from clock.
32
+ * </pre>
33
+ * @version DragonBones 5.0
34
+ * @language en_US
35
+ */
36
+ clock: WorldClock | null;
37
+ }
38
+ //# sourceMappingURL=IAnimatable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAnimatable.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/animation/IAnimatable.ts"],"names":[],"mappings":"AAAA;;;;;;;OAOO;AAEP,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;;;;;OASG;IACH,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * - Play animation interface. (Both Armature and Wordclock implement the interface)
3
+ * Any instance that implements the interface can be added to the Worldclock instance and advance time by Worldclock instance uniformly.
4
+ * @see dragonBones.WorldClock
5
+ * @see dragonBones.Armature
6
+ * @version DragonBones 3.0
7
+ * @language en_US
8
+ */
9
+ export {};