@babylonjs/lottie-player 8.24.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/animationConfiguration.d.ts +80 -0
- package/animationConfiguration.d.ts.map +1 -0
- package/animationConfiguration.js +16 -0
- package/animationConfiguration.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.d.ts.map +1 -0
- package/index.js +3 -0
- package/index.js.map +1 -0
- package/license.md +21 -0
- package/localPlayer.d.ts +38 -0
- package/localPlayer.d.ts.map +1 -0
- package/localPlayer.js +100 -0
- package/localPlayer.js.map +1 -0
- package/maths/bezier.d.ts +45 -0
- package/maths/bezier.d.ts.map +1 -0
- package/maths/bezier.js +53 -0
- package/maths/bezier.js.map +1 -0
- package/maths/boundingBox.d.ts +39 -0
- package/maths/boundingBox.d.ts.map +1 -0
- package/maths/boundingBox.js +204 -0
- package/maths/boundingBox.js.map +1 -0
- package/maths/matrix.d.ts +92 -0
- package/maths/matrix.d.ts.map +1 -0
- package/maths/matrix.js +174 -0
- package/maths/matrix.js.map +1 -0
- package/messageTypes.d.ts +88 -0
- package/messageTypes.d.ts.map +1 -0
- package/messageTypes.js +2 -0
- package/messageTypes.js.map +1 -0
- package/nodes/controlNode.d.ts +32 -0
- package/nodes/controlNode.d.ts.map +1 -0
- package/nodes/controlNode.js +38 -0
- package/nodes/controlNode.js.map +1 -0
- package/nodes/node.d.ts +121 -0
- package/nodes/node.d.ts.map +1 -0
- package/nodes/node.js +357 -0
- package/nodes/node.js.map +1 -0
- package/nodes/spriteNode.d.ts +32 -0
- package/nodes/spriteNode.d.ts.map +1 -0
- package/nodes/spriteNode.js +51 -0
- package/nodes/spriteNode.js.map +1 -0
- package/package.json +48 -0
- package/parsing/parsedTypes.d.ts +141 -0
- package/parsing/parsedTypes.d.ts.map +1 -0
- package/parsing/parsedTypes.js +2 -0
- package/parsing/parsedTypes.js.map +1 -0
- package/parsing/parser.d.ts +59 -0
- package/parsing/parser.d.ts.map +1 -0
- package/parsing/parser.js +500 -0
- package/parsing/parser.js.map +1 -0
- package/parsing/rawTypes.d.ts +238 -0
- package/parsing/rawTypes.d.ts.map +1 -0
- package/parsing/rawTypes.js +4 -0
- package/parsing/rawTypes.js.map +1 -0
- package/parsing/spritePacker.d.ts +122 -0
- package/parsing/spritePacker.d.ts.map +1 -0
- package/parsing/spritePacker.js +409 -0
- package/parsing/spritePacker.js.map +1 -0
- package/player.d.ts +42 -0
- package/player.d.ts.map +1 -0
- package/player.js +146 -0
- package/player.js.map +1 -0
- package/readme.md +44 -0
- package/rendering/animationController.d.ts +93 -0
- package/rendering/animationController.d.ts.map +1 -0
- package/rendering/animationController.js +246 -0
- package/rendering/animationController.js.map +1 -0
- package/rendering/renderingManager.d.ts +46 -0
- package/rendering/renderingManager.d.ts.map +1 -0
- package/rendering/renderingManager.js +61 -0
- package/rendering/renderingManager.js.map +1 -0
- package/worker.d.ts +2 -0
- package/worker.d.ts.map +1 -0
- package/worker.js +62 -0
- package/worker.js.map +1 -0
package/nodes/node.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import { ThinMatrix } from "../maths/matrix.js";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a node in the scenegraph that contains the animation information from a lottie animation layer or group.
|
|
4
|
+
*/
|
|
5
|
+
export class Node {
|
|
6
|
+
/**
|
|
7
|
+
* Gets the id of this node.
|
|
8
|
+
* @returns The unique identifier of this node.
|
|
9
|
+
*/
|
|
10
|
+
get id() {
|
|
11
|
+
return this._id;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Gets the childer of this node.
|
|
15
|
+
* @returns An array of child nodes.
|
|
16
|
+
*/
|
|
17
|
+
get children() {
|
|
18
|
+
return this._children;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Gets whether this node is a shape.
|
|
22
|
+
* @returns True if this node is a shape, false otherwise.
|
|
23
|
+
*/
|
|
24
|
+
get isShape() {
|
|
25
|
+
return this._isShape;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Gets the world matrix of this node.
|
|
29
|
+
* @returns The world matrix.
|
|
30
|
+
*/
|
|
31
|
+
get worldMatrix() {
|
|
32
|
+
return this._worldMatrix;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Gets whether this node is animated.
|
|
36
|
+
* @returns True if this node has animations, false otherwise.
|
|
37
|
+
*/
|
|
38
|
+
get isAnimated() {
|
|
39
|
+
return this._isAnimated;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets the opacity of this node.
|
|
43
|
+
* If the node is not visible, the opacity will be 0.
|
|
44
|
+
* The opacity is multiplied by the parent opacity, except if the parent is a layer, in that case it is ignored
|
|
45
|
+
* @returns The opacity of the node, from 0 to 1.
|
|
46
|
+
*/
|
|
47
|
+
get opacity() {
|
|
48
|
+
if (!this._isVisible) {
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
if (this._opacity.currentValue === 0) {
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
return this._opacity.currentValue * (this._parent?.opacity ?? 1);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Gets the initial scale of this node.
|
|
58
|
+
* @returns The initial scale.
|
|
59
|
+
*/
|
|
60
|
+
get startScale() {
|
|
61
|
+
return this._scale.startValue;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Gets the local position start value.
|
|
65
|
+
*/
|
|
66
|
+
get positionStart() {
|
|
67
|
+
return this._position.startValue;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Gets the local position current value.
|
|
71
|
+
*/
|
|
72
|
+
get positionCurrent() {
|
|
73
|
+
return this._position.currentValue;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets the local rotation start value (in degrees).
|
|
77
|
+
*/
|
|
78
|
+
get rotationStart() {
|
|
79
|
+
return this._rotation.startValue;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Gets the local rotation current value (in degrees).
|
|
83
|
+
*/
|
|
84
|
+
get rotationCurrent() {
|
|
85
|
+
return this._rotation.currentValue;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Gets the local scale start value.
|
|
89
|
+
*/
|
|
90
|
+
get scaleStart() {
|
|
91
|
+
return this._scale.startValue;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Gets the local scale current value.
|
|
95
|
+
*/
|
|
96
|
+
get scaleCurrent() {
|
|
97
|
+
return this._scale.currentValue;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Gets the parent node of this node.
|
|
101
|
+
* @returns The parent node, or undefined if this is a root node.
|
|
102
|
+
*/
|
|
103
|
+
get parent() {
|
|
104
|
+
return this._parent;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Sets the node visibility.
|
|
108
|
+
* @param value The new visibility value.
|
|
109
|
+
*/
|
|
110
|
+
set isVisible(value) {
|
|
111
|
+
if (this._isVisible === value) {
|
|
112
|
+
return; // No change in visibility
|
|
113
|
+
}
|
|
114
|
+
this._isVisible = value;
|
|
115
|
+
// Propage to children
|
|
116
|
+
for (let i = 0; i < this._children.length; i++) {
|
|
117
|
+
this._children[i].isVisible = value;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Constructs a new node.
|
|
122
|
+
* @param id Unique identifier for the node.
|
|
123
|
+
* @param position Position of the node in the scene.
|
|
124
|
+
* @param rotation Rotation of the node in degrees.
|
|
125
|
+
* @param scale Scale of the node in the scene.
|
|
126
|
+
* @param opacity Opacity of the node, from 0 to 1.
|
|
127
|
+
* @param parent Parent node in the scenegraph.
|
|
128
|
+
*/
|
|
129
|
+
constructor(id, position, rotation, scale, opacity, parent) {
|
|
130
|
+
this._isVisible = false;
|
|
131
|
+
this._isAnimated = false;
|
|
132
|
+
this._animationsFunctions = [];
|
|
133
|
+
this._isControl = false;
|
|
134
|
+
this._isShape = false;
|
|
135
|
+
this._isVisible = false;
|
|
136
|
+
this._id = id;
|
|
137
|
+
this._position = position || { startValue: { x: 0, y: 0 }, currentValue: { x: 0, y: 0 }, currentKeyframeIndex: 0 };
|
|
138
|
+
this._rotation = rotation || { startValue: 0, currentValue: 0, currentKeyframeIndex: 0 };
|
|
139
|
+
this._scale = scale || { startValue: { x: 1, y: 1 }, currentValue: { x: 1, y: 1 }, currentKeyframeIndex: 0 };
|
|
140
|
+
this._localMatrix = new ThinMatrix();
|
|
141
|
+
this._globalMatrix = new ThinMatrix();
|
|
142
|
+
// Store the matrix at least once
|
|
143
|
+
this._localMatrix.compose(this._scale.currentValue, this._rotation.currentValue, this._position.currentValue);
|
|
144
|
+
this._opacity = opacity || { startValue: 1, currentValue: 1, currentKeyframeIndex: 0 };
|
|
145
|
+
// Animated ?
|
|
146
|
+
if (this._position.keyframes !== undefined && this._position.keyframes.length > 0) {
|
|
147
|
+
this._isAnimated = true;
|
|
148
|
+
this._animationsFunctions.push((frame) => {
|
|
149
|
+
return this._updatePosition(frame);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (this._rotation.keyframes !== undefined && this._rotation.keyframes.length > 0) {
|
|
153
|
+
this._isAnimated = true;
|
|
154
|
+
this._animationsFunctions.push((frame) => {
|
|
155
|
+
return this._updateRotation(frame);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (this._scale.keyframes !== undefined && this._scale.keyframes.length > 0) {
|
|
159
|
+
this._isAnimated = true;
|
|
160
|
+
this._animationsFunctions.push((frame) => {
|
|
161
|
+
return this._updateScale(frame);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
// Parenting
|
|
165
|
+
this._children = [];
|
|
166
|
+
if (parent) {
|
|
167
|
+
this._worldMatrix = this._globalMatrix;
|
|
168
|
+
this._parent = parent;
|
|
169
|
+
parent._children.push(this);
|
|
170
|
+
this._localMatrix.multiplyToRef(parent._worldMatrix, this._globalMatrix);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this._worldMatrix = this._localMatrix;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Resets the node's properties to their initial values.
|
|
178
|
+
*/
|
|
179
|
+
reset() {
|
|
180
|
+
// Vectors need to be copied to avoid modifying the original start values
|
|
181
|
+
this._position.currentValue = { x: this._position.startValue.x, y: this._position.startValue.y };
|
|
182
|
+
if (this._position.keyframes) {
|
|
183
|
+
this._position.currentKeyframeIndex = 0;
|
|
184
|
+
}
|
|
185
|
+
this._rotation.currentValue = this._rotation.startValue;
|
|
186
|
+
if (this._rotation.keyframes) {
|
|
187
|
+
this._rotation.currentKeyframeIndex = 0;
|
|
188
|
+
}
|
|
189
|
+
this._scale.currentValue = { x: this._scale.startValue.x, y: this._scale.startValue.y };
|
|
190
|
+
if (this._scale.keyframes) {
|
|
191
|
+
this._scale.currentKeyframeIndex = 0;
|
|
192
|
+
}
|
|
193
|
+
this._opacity.currentValue = this._opacity.startValue;
|
|
194
|
+
if (this._opacity.keyframes) {
|
|
195
|
+
this._opacity.currentKeyframeIndex = 0;
|
|
196
|
+
}
|
|
197
|
+
for (let i = 0; i < this._children.length; i++) {
|
|
198
|
+
this._children[i].reset();
|
|
199
|
+
}
|
|
200
|
+
// On reset update the scenegraph so all matrices are reset to their initial values
|
|
201
|
+
if (this._parent === undefined) {
|
|
202
|
+
this.update(0, false, true);
|
|
203
|
+
}
|
|
204
|
+
this._isVisible = false;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Updates the node's properties based on the current frame of the animation.
|
|
208
|
+
* @param frame Frame number we are playing in the animation.
|
|
209
|
+
* @param isParentUpdated Whether the parent node has been updated.
|
|
210
|
+
* @param isReset Whether the node is being reset.
|
|
211
|
+
* @returns True if the node was updated, false otherwise.
|
|
212
|
+
*/
|
|
213
|
+
update(frame, isParentUpdated = false, isReset = false) {
|
|
214
|
+
let isUpdated = false || isReset;
|
|
215
|
+
if (this.isAnimated) {
|
|
216
|
+
for (let i = 0; i < this._animationsFunctions.length; i++) {
|
|
217
|
+
isUpdated = this._animationsFunctions[i](frame) || isUpdated;
|
|
218
|
+
}
|
|
219
|
+
if (isUpdated) {
|
|
220
|
+
this._localMatrix.compose(this._scale.currentValue, this._rotation.currentValue, this._position.currentValue);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (this._parent) {
|
|
224
|
+
if (isParentUpdated || isUpdated) {
|
|
225
|
+
this._localMatrix.multiplyToRef(this._parent._worldMatrix, this._globalMatrix);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
this._updateOpacity(frame);
|
|
229
|
+
for (let i = 0; i < this._children.length; i++) {
|
|
230
|
+
this._children[i].update(frame, isUpdated || isParentUpdated);
|
|
231
|
+
}
|
|
232
|
+
return isUpdated || isParentUpdated;
|
|
233
|
+
}
|
|
234
|
+
_updatePosition(frame) {
|
|
235
|
+
const keyframes = this._position.keyframes;
|
|
236
|
+
if (frame < keyframes[0].time) {
|
|
237
|
+
return false; // Animation not started yet
|
|
238
|
+
}
|
|
239
|
+
if (frame > keyframes[keyframes.length - 1].time) {
|
|
240
|
+
this._position.currentValue = keyframes[keyframes.length - 1].value;
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
// Find the right keyframe we are currently in
|
|
244
|
+
let currentFrameIndex = -1;
|
|
245
|
+
for (let i = this._position.currentKeyframeIndex; i < keyframes.length - 1; i++) {
|
|
246
|
+
if (frame >= keyframes[i].time && frame < keyframes[i + 1].time) {
|
|
247
|
+
currentFrameIndex = i;
|
|
248
|
+
this._position.currentKeyframeIndex = currentFrameIndex;
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (currentFrameIndex === -1) {
|
|
253
|
+
return false; // No valid keyframe found for the current animation frame
|
|
254
|
+
}
|
|
255
|
+
const currentVector2Keyframe = keyframes[currentFrameIndex];
|
|
256
|
+
const nextVector2Keyframe = keyframes[currentFrameIndex + 1];
|
|
257
|
+
// Animate the position
|
|
258
|
+
const gradient = (frame - currentVector2Keyframe.time) / (nextVector2Keyframe.time - currentVector2Keyframe.time);
|
|
259
|
+
const easeGradientFactor = currentVector2Keyframe.easeFunction1.interpolate(gradient);
|
|
260
|
+
this._position.currentValue.x = currentVector2Keyframe.value.x + easeGradientFactor * (nextVector2Keyframe.value.x - currentVector2Keyframe.value.x);
|
|
261
|
+
const easeGradientFactor2 = currentVector2Keyframe.easeFunction2.interpolate(gradient);
|
|
262
|
+
this._position.currentValue.y = currentVector2Keyframe.value.y + easeGradientFactor2 * (nextVector2Keyframe.value.y - currentVector2Keyframe.value.y);
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
_updateRotation(frame) {
|
|
266
|
+
const keyframes = this._rotation.keyframes;
|
|
267
|
+
if (frame < keyframes[0].time) {
|
|
268
|
+
return false; // Animation not started yet
|
|
269
|
+
}
|
|
270
|
+
if (frame > keyframes[keyframes.length - 1].time) {
|
|
271
|
+
this._rotation.currentValue = keyframes[keyframes.length - 1].value;
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
274
|
+
// Find the right keyframe we are currently in
|
|
275
|
+
let currentFrameIndex = -1;
|
|
276
|
+
for (let i = this._rotation.currentKeyframeIndex; i < keyframes.length - 1; i++) {
|
|
277
|
+
if (frame >= keyframes[i].time && frame < keyframes[i + 1].time) {
|
|
278
|
+
currentFrameIndex = i;
|
|
279
|
+
this._rotation.currentKeyframeIndex = currentFrameIndex;
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (currentFrameIndex === -1) {
|
|
284
|
+
return false; // No valid keyframe found for the current animation frame
|
|
285
|
+
}
|
|
286
|
+
const currentScalarKeyframe = keyframes[currentFrameIndex];
|
|
287
|
+
const nextScalarKeyframe = keyframes[currentFrameIndex + 1];
|
|
288
|
+
// Animate the position
|
|
289
|
+
const gradient = (frame - currentScalarKeyframe.time) / (nextScalarKeyframe.time - currentScalarKeyframe.time);
|
|
290
|
+
const easeGradientFactor = currentScalarKeyframe.easeFunction.interpolate(gradient);
|
|
291
|
+
this._rotation.currentValue = -(currentScalarKeyframe.value + easeGradientFactor * (nextScalarKeyframe.value - currentScalarKeyframe.value));
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
_updateScale(frame) {
|
|
295
|
+
const keyframes = this._scale.keyframes;
|
|
296
|
+
if (frame < keyframes[0].time) {
|
|
297
|
+
return false; // Animation not started yet
|
|
298
|
+
}
|
|
299
|
+
if (frame > keyframes[keyframes.length - 1].time) {
|
|
300
|
+
this._scale.currentValue = keyframes[keyframes.length - 1].value;
|
|
301
|
+
return true;
|
|
302
|
+
}
|
|
303
|
+
// Find the right keyframe we are currently in
|
|
304
|
+
let currentFrameIndex = -1;
|
|
305
|
+
for (let i = this._scale.currentKeyframeIndex; i < keyframes.length - 1; i++) {
|
|
306
|
+
if (frame >= keyframes[i].time && frame < keyframes[i + 1].time) {
|
|
307
|
+
currentFrameIndex = i;
|
|
308
|
+
this._scale.currentKeyframeIndex = currentFrameIndex;
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
if (currentFrameIndex === -1) {
|
|
313
|
+
return false; // No valid keyframe found for the current animation frame
|
|
314
|
+
}
|
|
315
|
+
const currentVector2Keyframe = keyframes[currentFrameIndex];
|
|
316
|
+
const nextVector2Keyframe = keyframes[currentFrameIndex + 1];
|
|
317
|
+
// Animate the scale
|
|
318
|
+
const gradient = (frame - currentVector2Keyframe.time) / (nextVector2Keyframe.time - currentVector2Keyframe.time);
|
|
319
|
+
const easeGradientFactor = currentVector2Keyframe.easeFunction1.interpolate(gradient);
|
|
320
|
+
this._scale.currentValue.x = currentVector2Keyframe.value.x + easeGradientFactor * (nextVector2Keyframe.value.x - currentVector2Keyframe.value.x);
|
|
321
|
+
const easeGradientFactor2 = currentVector2Keyframe.easeFunction2.interpolate(gradient);
|
|
322
|
+
this._scale.currentValue.y = currentVector2Keyframe.value.y + easeGradientFactor2 * (nextVector2Keyframe.value.y - currentVector2Keyframe.value.y);
|
|
323
|
+
return true;
|
|
324
|
+
}
|
|
325
|
+
_updateOpacity(frame) {
|
|
326
|
+
if (this._opacity.keyframes === undefined || this._opacity.keyframes.length === 0) {
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
if (frame < this._opacity.keyframes[0].time) {
|
|
330
|
+
return false; // Animation not started yet
|
|
331
|
+
}
|
|
332
|
+
if (frame > this._opacity.keyframes[this._opacity.keyframes.length - 1].time) {
|
|
333
|
+
this._opacity.currentValue = this._opacity.keyframes[this._opacity.keyframes.length - 1].value;
|
|
334
|
+
return true;
|
|
335
|
+
}
|
|
336
|
+
// Find the right keyframe we are currently in
|
|
337
|
+
let currentFrameIndex = -1;
|
|
338
|
+
for (let i = this._opacity.currentKeyframeIndex; i < this._opacity.keyframes.length - 1; i++) {
|
|
339
|
+
if (frame >= this._opacity.keyframes[i].time && frame < this._opacity.keyframes[i + 1].time) {
|
|
340
|
+
currentFrameIndex = i;
|
|
341
|
+
this._opacity.currentKeyframeIndex = currentFrameIndex;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (currentFrameIndex === -1) {
|
|
346
|
+
return false; // No valid keyframe found for the current animation frame
|
|
347
|
+
}
|
|
348
|
+
const currentScalarKeyframe = this._opacity.keyframes[currentFrameIndex];
|
|
349
|
+
const nextScalarKeyframe = this._opacity.keyframes[currentFrameIndex + 1];
|
|
350
|
+
// Animate the opacity
|
|
351
|
+
const gradient = (frame - currentScalarKeyframe.time) / (nextScalarKeyframe.time - currentScalarKeyframe.time);
|
|
352
|
+
const easeGradientFactor = currentScalarKeyframe.easeFunction?.interpolate(gradient) ?? 0;
|
|
353
|
+
this._opacity.currentValue = currentScalarKeyframe.value + easeGradientFactor * (nextScalarKeyframe.value - currentScalarKeyframe.value);
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../dev/lottiePlayer/src/nodes/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ThinSprite } from "@babylonjs/core/Sprites/thinSprite.js";
|
|
2
|
+
import type { ScalarProperty, Vector2Property } from "../parsing/parsedTypes.js";
|
|
3
|
+
import { Node } from "./node.js";
|
|
4
|
+
/**
|
|
5
|
+
* Represents a sprite in the scene graph.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SpriteNode extends Node {
|
|
8
|
+
private _sprite;
|
|
9
|
+
private _originalWidth;
|
|
10
|
+
private _originalHeight;
|
|
11
|
+
private _firstTime;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new SpriteNode instance.
|
|
14
|
+
* @param id Unique identifier for the sprite node.
|
|
15
|
+
* @param sprite The sprite associated with this node.
|
|
16
|
+
* @param position The position of the sprite in the scene.
|
|
17
|
+
* @param rotation The rotation of the sprite in degrees.
|
|
18
|
+
* @param scale The scale of the sprite in the scene.
|
|
19
|
+
* @param opacity The opacity of the sprite.
|
|
20
|
+
* @param parent The parent node in the scene graph.
|
|
21
|
+
*/
|
|
22
|
+
constructor(id: string, sprite: ThinSprite, position?: Vector2Property, rotation?: ScalarProperty, scale?: Vector2Property, opacity?: ScalarProperty, parent?: Node);
|
|
23
|
+
/**
|
|
24
|
+
* Updates the node's properties based on the current frame of the animation.
|
|
25
|
+
* @param frame Frame number we are playing in the animation.
|
|
26
|
+
* @param isParentUpdated Whether the parent node has been updated.
|
|
27
|
+
* @param isReset Whether the node is being reset.
|
|
28
|
+
* @returns True if the node was updated, false otherwise.
|
|
29
|
+
*/
|
|
30
|
+
update(frame: number, isParentUpdated?: boolean, isReset?: boolean): boolean;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=spriteNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spriteNode.d.ts","sourceRoot":"","sources":["../../../../dev/lottiePlayer/src/nodes/spriteNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,8CAAgC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B;;GAEG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAChC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;;;;;;;OASG;gBACgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI;IAU1K;;;;;;OAMG;IACa,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,UAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO;CAoB3F"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Node } from "./node.js";
|
|
2
|
+
/**
|
|
3
|
+
* Temporary scale vector used during sprite updates for matrix decomposition.
|
|
4
|
+
*/
|
|
5
|
+
const TempScale = { x: 1, y: 1 };
|
|
6
|
+
/**
|
|
7
|
+
* Represents a sprite in the scene graph.
|
|
8
|
+
*/
|
|
9
|
+
export class SpriteNode extends Node {
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new SpriteNode instance.
|
|
12
|
+
* @param id Unique identifier for the sprite node.
|
|
13
|
+
* @param sprite The sprite associated with this node.
|
|
14
|
+
* @param position The position of the sprite in the scene.
|
|
15
|
+
* @param rotation The rotation of the sprite in degrees.
|
|
16
|
+
* @param scale The scale of the sprite in the scene.
|
|
17
|
+
* @param opacity The opacity of the sprite.
|
|
18
|
+
* @param parent The parent node in the scene graph.
|
|
19
|
+
*/
|
|
20
|
+
constructor(id, sprite, position, rotation, scale, opacity, parent) {
|
|
21
|
+
super(id, position, rotation, scale, opacity, parent);
|
|
22
|
+
this._firstTime = true;
|
|
23
|
+
this._sprite = sprite;
|
|
24
|
+
this._originalWidth = sprite.width;
|
|
25
|
+
this._originalHeight = sprite.height;
|
|
26
|
+
this._isShape = true;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Updates the node's properties based on the current frame of the animation.
|
|
30
|
+
* @param frame Frame number we are playing in the animation.
|
|
31
|
+
* @param isParentUpdated Whether the parent node has been updated.
|
|
32
|
+
* @param isReset Whether the node is being reset.
|
|
33
|
+
* @returns True if the node was updated, false otherwise.
|
|
34
|
+
*/
|
|
35
|
+
update(frame, isParentUpdated = false, isReset = false) {
|
|
36
|
+
const isDirty = super.update(frame, isParentUpdated, isReset) || this._firstTime;
|
|
37
|
+
this._firstTime = false;
|
|
38
|
+
if (isDirty) {
|
|
39
|
+
const rotation = this.worldMatrix.decompose(TempScale, this._sprite.position);
|
|
40
|
+
// Apply scaling to the original sprite dimensions
|
|
41
|
+
this._sprite.width = this._originalWidth * TempScale.x;
|
|
42
|
+
this._sprite.height = this._originalHeight * TempScale.y;
|
|
43
|
+
// Rotation
|
|
44
|
+
this._sprite.angle = rotation;
|
|
45
|
+
}
|
|
46
|
+
// Opacity
|
|
47
|
+
this._sprite.color.a = this.opacity;
|
|
48
|
+
return isDirty;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=spriteNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spriteNode.js","sourceRoot":"","sources":["../../../../dev/lottiePlayer/src/nodes/spriteNode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;GAEG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEjC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAOhC;;;;;;;;;OASG;IACH,YAAmB,EAAU,EAAE,MAAkB,EAAE,QAA0B,EAAE,QAAyB,EAAE,KAAuB,EAAE,OAAwB,EAAE,MAAa;QACtK,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAblD,eAAU,GAAG,IAAI,CAAC;QAetB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QAErC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACa,MAAM,CAAC,KAAa,EAAE,eAAe,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK;QAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;QACjF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9E,kDAAkD;YAClD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC;YAEzD,WAAW;YACX,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QAClC,CAAC;QAED,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAEpC,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@babylonjs/lottie-player",
|
|
3
|
+
"version": "8.24.1",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"module": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"esnext": "index.js",
|
|
8
|
+
"description": "Babylon.js Lottie Player",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"animation",
|
|
11
|
+
"2D",
|
|
12
|
+
"javascript",
|
|
13
|
+
"html5",
|
|
14
|
+
"webgl",
|
|
15
|
+
"webgl2",
|
|
16
|
+
"webgpu",
|
|
17
|
+
"babylon",
|
|
18
|
+
"lottie"
|
|
19
|
+
],
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"readme": "README.md",
|
|
22
|
+
"type": "module",
|
|
23
|
+
"sideEffects": true,
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/BabylonJS/Babylon.js.git"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"**/*.js",
|
|
30
|
+
"**/*.d.ts",
|
|
31
|
+
"**/*.map",
|
|
32
|
+
"readme.md",
|
|
33
|
+
"license.md"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "npm run clean && npm run compile",
|
|
37
|
+
"clean": "rimraf dist && rimraf *.tsbuildinfo -g && rimraf \"./**/*.!(cmd|md|json|build.json|lts.json|tasks.json|cjs)\" -g",
|
|
38
|
+
"compile": "tsc -b tsconfig.build.json",
|
|
39
|
+
"postcompile": "build-tools -c add-js-to-es6"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@dev/build-tools": "^1.0.0",
|
|
43
|
+
"@dev/core": "^1.0.0"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@babylonjs/core": "^7.47.3 || ^8.0.1"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { IVector2Like } from "@babylonjs/core/Maths/math.like.js";
|
|
2
|
+
import type { BezierCurve } from "../maths/bezier.js";
|
|
3
|
+
import type { Node } from "../nodes/node.js";
|
|
4
|
+
/**
|
|
5
|
+
* Represents a Babylon.js thin version of a Lottie animation.
|
|
6
|
+
*/
|
|
7
|
+
export type AnimationInfo = {
|
|
8
|
+
/**
|
|
9
|
+
* Frame number where the animation starts.
|
|
10
|
+
*/
|
|
11
|
+
startFrame: number;
|
|
12
|
+
/**
|
|
13
|
+
* Frame number where the animation ends.
|
|
14
|
+
*/
|
|
15
|
+
endFrame: number;
|
|
16
|
+
/**
|
|
17
|
+
* Frame rate of the animation.
|
|
18
|
+
*/
|
|
19
|
+
frameRate: number;
|
|
20
|
+
/**
|
|
21
|
+
* Width of the animation in pixels
|
|
22
|
+
*/
|
|
23
|
+
widthPx: number;
|
|
24
|
+
/**
|
|
25
|
+
* Height of the animation in pixels
|
|
26
|
+
*/
|
|
27
|
+
heightPx: number;
|
|
28
|
+
/**
|
|
29
|
+
* Nodes representing the animation
|
|
30
|
+
*/
|
|
31
|
+
nodes: Node[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Transform properties for a Lottie animation.
|
|
35
|
+
* Any of these properties may be animated.
|
|
36
|
+
*/
|
|
37
|
+
export type Transform = {
|
|
38
|
+
/**
|
|
39
|
+
* The anchor point of the layer, which is the point around which transformations are applied.
|
|
40
|
+
*/
|
|
41
|
+
anchorPoint: Vector2Property;
|
|
42
|
+
/**
|
|
43
|
+
* The position of the layer in the animation.
|
|
44
|
+
*/
|
|
45
|
+
position: Vector2Property;
|
|
46
|
+
/**
|
|
47
|
+
* The rotation of the layer in degrees.
|
|
48
|
+
*/
|
|
49
|
+
rotation: ScalarProperty;
|
|
50
|
+
/**
|
|
51
|
+
* The scale of the layer in the X and Y axis.
|
|
52
|
+
*/
|
|
53
|
+
scale: Vector2Property;
|
|
54
|
+
/**
|
|
55
|
+
* The opacity of the layer, represented as a scalar value.
|
|
56
|
+
*/
|
|
57
|
+
opacity: ScalarProperty;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Represents a scalar that can be animated.
|
|
61
|
+
*/
|
|
62
|
+
export type ScalarProperty = {
|
|
63
|
+
/**
|
|
64
|
+
* The initial value of the property at the start of the animation.
|
|
65
|
+
*/
|
|
66
|
+
startValue: number;
|
|
67
|
+
/**
|
|
68
|
+
* The current value of the property during the animation.
|
|
69
|
+
*/
|
|
70
|
+
currentValue: number;
|
|
71
|
+
/**
|
|
72
|
+
* An array of keyframes for the property.
|
|
73
|
+
*/
|
|
74
|
+
keyframes?: ScalarKeyframe[];
|
|
75
|
+
/**
|
|
76
|
+
* The index of the current keyframe being processed in the animation.
|
|
77
|
+
*/
|
|
78
|
+
currentKeyframeIndex: number;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Represents a keyframe for a scalar property.
|
|
82
|
+
*/
|
|
83
|
+
export type ScalarKeyframe = {
|
|
84
|
+
/**
|
|
85
|
+
* The value at this keyframe.
|
|
86
|
+
*/
|
|
87
|
+
value: number;
|
|
88
|
+
/**
|
|
89
|
+
* The time at which this keyframe occurs in the animation, in frames.
|
|
90
|
+
*/
|
|
91
|
+
time: number;
|
|
92
|
+
/**
|
|
93
|
+
* The easing function applied to the transition from this keyframe to the next one.
|
|
94
|
+
*/
|
|
95
|
+
easeFunction: BezierCurve;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Represents a 2D vector that can be animated.
|
|
99
|
+
*/
|
|
100
|
+
export type Vector2Property = {
|
|
101
|
+
/**
|
|
102
|
+
* The initial value at the start of the animation.
|
|
103
|
+
*/
|
|
104
|
+
startValue: IVector2Like;
|
|
105
|
+
/**
|
|
106
|
+
* The current value during the animation.
|
|
107
|
+
*/
|
|
108
|
+
currentValue: IVector2Like;
|
|
109
|
+
/**
|
|
110
|
+
* An array of keyframes for the property.
|
|
111
|
+
*/
|
|
112
|
+
keyframes?: Vector2Keyframe[];
|
|
113
|
+
/**
|
|
114
|
+
* The index of the current keyframe being processed in the animation.
|
|
115
|
+
*/
|
|
116
|
+
currentKeyframeIndex: number;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Represents a keyframe for a 2D vector property.
|
|
120
|
+
*/
|
|
121
|
+
export type Vector2Keyframe = {
|
|
122
|
+
/**
|
|
123
|
+
* The value at this keyframe.
|
|
124
|
+
*/
|
|
125
|
+
value: IVector2Like;
|
|
126
|
+
/**
|
|
127
|
+
* The time at which this keyframe occurs in the animation, in frames.
|
|
128
|
+
*/
|
|
129
|
+
time: number;
|
|
130
|
+
/**
|
|
131
|
+
* The easing function applied to the transition from this keyframe to the next one.
|
|
132
|
+
* This is used for the first dimension of the vector.
|
|
133
|
+
*/
|
|
134
|
+
easeFunction1: BezierCurve;
|
|
135
|
+
/**
|
|
136
|
+
* The easing function applied to the transition from this keyframe to the next one.
|
|
137
|
+
* This is used for the second dimension of the vector.
|
|
138
|
+
*/
|
|
139
|
+
easeFunction2: BezierCurve;
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=parsedTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsedTypes.d.ts","sourceRoot":"","sources":["../../../../dev/lottiePlayer/src/parsing/parsedTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,2CAA6B;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB;;OAEG;IACH,WAAW,EAAE,eAAe,CAAC;IAC7B;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IACzB;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,YAAY,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,UAAU,EAAE,YAAY,CAAC;IACzB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,aAAa,EAAE,WAAW,CAAC;IAC3B;;;OAGG;IACH,aAAa,EAAE,WAAW,CAAC;CAC9B,CAAC"}
|