@aura3d/animation 4.0.2 → 4.0.4

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 (48) hide show
  1. package/dist/AnimationAction.d.ts +55 -1
  2. package/dist/AnimationAction.d.ts.map +1 -1
  3. package/dist/AnimationAction.js +156 -27
  4. package/dist/AnimationAction.js.map +1 -1
  5. package/dist/AnimationController.d.ts +8 -0
  6. package/dist/AnimationController.d.ts.map +1 -1
  7. package/dist/AnimationController.js.map +1 -1
  8. package/dist/AnimationEvents.d.ts +1 -1
  9. package/dist/AnimationEvents.d.ts.map +1 -1
  10. package/dist/AnimationEvents.js +33 -14
  11. package/dist/AnimationEvents.js.map +1 -1
  12. package/dist/AnimationMixer.d.ts +35 -0
  13. package/dist/AnimationMixer.d.ts.map +1 -1
  14. package/dist/AnimationMixer.js +60 -10
  15. package/dist/AnimationMixer.js.map +1 -1
  16. package/dist/AnimationObjectGroup.d.ts +28 -0
  17. package/dist/AnimationObjectGroup.d.ts.map +1 -0
  18. package/dist/AnimationObjectGroup.js +242 -0
  19. package/dist/AnimationObjectGroup.js.map +1 -0
  20. package/dist/AnimationTrack.d.ts +18 -2
  21. package/dist/AnimationTrack.d.ts.map +1 -1
  22. package/dist/AnimationTrack.js +62 -0
  23. package/dist/AnimationTrack.js.map +1 -1
  24. package/dist/AnimationUtils.d.ts +56 -0
  25. package/dist/AnimationUtils.d.ts.map +1 -0
  26. package/dist/AnimationUtils.js +202 -0
  27. package/dist/AnimationUtils.js.map +1 -0
  28. package/dist/PropertyBinding.d.ts +93 -0
  29. package/dist/PropertyBinding.d.ts.map +1 -0
  30. package/dist/PropertyBinding.js +393 -0
  31. package/dist/PropertyBinding.js.map +1 -0
  32. package/dist/SceneAnimationBridge.d.ts +23 -1
  33. package/dist/SceneAnimationBridge.d.ts.map +1 -1
  34. package/dist/SceneAnimationBridge.js +152 -14
  35. package/dist/SceneAnimationBridge.js.map +1 -1
  36. package/dist/browser-index.d.ts +3 -0
  37. package/dist/browser-index.d.ts.map +1 -1
  38. package/dist/browser-index.js +3 -0
  39. package/dist/browser-index.js.map +1 -1
  40. package/dist/index.d.ts +3 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +3 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/pose/blendKernels.d.ts +1 -1
  45. package/dist/pose/blendKernels.d.ts.map +1 -1
  46. package/dist/pose/blendKernels.js +3 -3
  47. package/dist/pose/blendKernels.js.map +1 -1
  48. package/package.json +2 -2
@@ -1,26 +1,45 @@
1
- export function eventsBetween(markers, clipName, fromTime, toTime, duration, looped) {
1
+ export function eventsBetween(markers, clipName, fromTime, toTime, duration, looped, forward = true) {
2
2
  const events = [];
3
3
  if (duration <= 0) {
4
4
  return events;
5
5
  }
6
- if (!looped || toTime >= fromTime) {
6
+ if (forward) {
7
+ if (!looped) {
8
+ for (const marker of markers) {
9
+ if (marker.time > fromTime && marker.time <= toTime) {
10
+ events.push({ ...marker, clipName });
11
+ }
12
+ }
13
+ return events;
14
+ }
15
+ const lateEvents = [];
16
+ const earlyEvents = [];
7
17
  for (const marker of markers) {
8
- if (marker.time > fromTime && marker.time <= toTime) {
9
- events.push({ ...marker, clipName });
18
+ if (marker.time > fromTime && marker.time <= duration) {
19
+ lateEvents.push({ ...marker, clipName });
20
+ }
21
+ else if (marker.time >= 0 && marker.time <= toTime) {
22
+ earlyEvents.push({ ...marker, clipName });
10
23
  }
11
24
  }
12
- return events;
25
+ return [...lateEvents, ...earlyEvents];
13
26
  }
14
- const lateEvents = [];
15
- const earlyEvents = [];
16
- for (const marker of markers) {
17
- if (marker.time > fromTime && marker.time <= duration) {
18
- lateEvents.push({ ...marker, clipName });
19
- }
20
- else if (marker.time >= 0 && marker.time <= toTime) {
21
- earlyEvents.push({ ...marker, clipName });
22
- }
27
+ // Reverse playback (negative timeScale): markers are emitted in the order
28
+ // they are crossed, i.e. descending clip time. A looped wrap crosses from
29
+ // `fromTime` down to 0 and continues from `duration` down to `toTime`.
30
+ if (!looped) {
31
+ const crossed = markers.filter((marker) => marker.time <= fromTime && marker.time > toTime);
32
+ crossed.sort((a, b) => b.time - a.time);
33
+ return crossed.map((marker) => ({ ...marker, clipName }));
23
34
  }
35
+ const lateEvents = markers
36
+ .filter((marker) => marker.time <= fromTime && marker.time >= 0)
37
+ .sort((a, b) => b.time - a.time)
38
+ .map((marker) => ({ ...marker, clipName }));
39
+ const earlyEvents = markers
40
+ .filter((marker) => marker.time <= duration && marker.time > toTime)
41
+ .sort((a, b) => b.time - a.time)
42
+ .map((marker) => ({ ...marker, clipName }));
24
43
  return [...lateEvents, ...earlyEvents];
25
44
  }
26
45
  //# sourceMappingURL=AnimationEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationEvents.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationEvents.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,aAAa,CAAC,OAAwC,EAAE,QAAgB,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB,EAAE,MAAe;IAC3J,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YACtD,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"AnimationEvents.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationEvents.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,31 @@ export type AnimationApplyError = {
30
30
  readonly target: string;
31
31
  readonly message: string;
32
32
  };
33
+ /**
34
+ * Low-level playback events the mixer dispatches via {@link AnimationMixer.addEventListener}
35
+ * (three's `AnimationMixer` "finished"/"loop" contract, SA-01). Clip marker
36
+ * events remain on {@link AnimationMixer.onEvent}.
37
+ */
38
+ export type AnimationMixerPlaybackEventType = "finished" | "loop";
39
+ export interface AnimationMixerFinishedEvent {
40
+ readonly type: "finished";
41
+ readonly action: AnimationAction;
42
+ /** `1` when the playhead crossed the clip end, `-1` when it crossed the start (negative timeScale). */
43
+ readonly direction: number;
44
+ }
45
+ export interface AnimationMixerLoopEvent {
46
+ readonly type: "loop";
47
+ readonly action: AnimationAction;
48
+ /** Signed count of clip boundaries wrapped during this update (negative in reverse). */
49
+ readonly loopDelta: number;
50
+ }
51
+ export type AnimationMixerPlaybackEvent = AnimationMixerFinishedEvent | AnimationMixerLoopEvent;
52
+ export type AnimationMixerPlaybackEventListener = (event: AnimationMixerPlaybackEvent) => void;
53
+ /** three's event-map overload: listeners narrow to the event matching `type`. */
54
+ export interface AnimationMixerPlaybackEventMap {
55
+ readonly finished: AnimationMixerFinishedEvent;
56
+ readonly loop: AnimationMixerLoopEvent;
57
+ }
33
58
  export declare class AnimationMixer {
34
59
  private readonly options;
35
60
  readonly target: AnimationTarget | undefined;
@@ -39,6 +64,7 @@ export declare class AnimationMixer {
39
64
  private readonly values;
40
65
  private applyErrors;
41
66
  private readonly eventListeners;
67
+ private readonly playbackListeners;
42
68
  private disposed;
43
69
  private warnedEmptyUpdate;
44
70
  private inertialTransition;
@@ -60,6 +86,15 @@ export declare class AnimationMixer {
60
86
  update(delta: number): readonly AnimationEvent[];
61
87
  getValue(target: string): AnimationValue | undefined;
62
88
  onEvent(listener: (event: AnimationEvent) => void): () => void;
89
+ /**
90
+ * three's `mixer.addEventListener("finished" | "loop", listener)` — fires when
91
+ * any registered action crosses its final repetition ("finished", once per
92
+ * finish) or wraps a loop boundary ("loop", with the signed `loopDelta`).
93
+ * Returns an unsubscribe callback.
94
+ */
95
+ addEventListener<K extends AnimationMixerPlaybackEventType>(type: K, listener: (event: AnimationMixerPlaybackEventMap[K]) => void): () => void;
96
+ removeEventListener<K extends AnimationMixerPlaybackEventType>(type: K, listener: (event: AnimationMixerPlaybackEventMap[K]) => void): void;
97
+ private dispatchPlaybackEvent;
63
98
  snapshot(): AnimationMixerSnapshot;
64
99
  dispose(): void;
65
100
  private assertAlive;
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationMixer.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimationMixer.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export class AnimationMixer {
13
13
  values = new Map();
14
14
  applyErrors = [];
15
15
  eventListeners = new Set();
16
+ playbackListeners = new Map();
16
17
  disposed = false;
17
18
  warnedEmptyUpdate = false;
18
19
  inertialTransition;
@@ -52,8 +53,8 @@ export class AnimationMixer {
52
53
  }
53
54
  setTimeScale(timeScale) {
54
55
  this.assertAlive();
55
- if (!Number.isFinite(timeScale) || timeScale < 0) {
56
- throw new Error("AnimationMixer.setTimeScale: timeScale must be finite and non-negative.");
56
+ if (!Number.isFinite(timeScale)) {
57
+ throw new Error("AnimationMixer.setTimeScale: timeScale must be finite.");
57
58
  }
58
59
  this.timeScale = timeScale;
59
60
  }
@@ -104,11 +105,11 @@ export class AnimationMixer {
104
105
  }
105
106
  update(delta) {
106
107
  this.assertAlive();
107
- if (!Number.isFinite(delta) || delta < 0) {
108
- throw new Error("AnimationMixer.update: delta must be finite and non-negative.");
108
+ if (!Number.isFinite(delta)) {
109
+ throw new Error("AnimationMixer.update: delta must be finite.");
109
110
  }
110
- if (!Number.isFinite(this.timeScale) || this.timeScale < 0) {
111
- throw new Error("AnimationMixer.update: timeScale must be finite and non-negative; call AnimationMixer.setTimeScale with a valid value.");
111
+ if (!Number.isFinite(this.timeScale)) {
112
+ throw new Error("AnimationMixer.update: timeScale must be finite; call AnimationMixer.setTimeScale with a valid value.");
112
113
  }
113
114
  for (const layer of this.layers) {
114
115
  if (!Number.isFinite(layer.weight) || layer.weight < 0) {
@@ -134,6 +135,13 @@ export class AnimationMixer {
134
135
  if (actionEvents.length > 0) {
135
136
  events.push(...actionEvents);
136
137
  }
138
+ const signals = action.consumePlaybackSignals();
139
+ if (signals.loopDelta !== 0) {
140
+ this.dispatchPlaybackEvent({ type: "loop", action, loopDelta: signals.loopDelta });
141
+ }
142
+ if (signals.finishedDirection !== 0) {
143
+ this.dispatchPlaybackEvent({ type: "finished", action, direction: signals.finishedDirection });
144
+ }
137
145
  if (!action.playing && action.weight <= 0) {
138
146
  continue;
139
147
  }
@@ -212,6 +220,47 @@ export class AnimationMixer {
212
220
  this.eventListeners.add(listener);
213
221
  return () => this.eventListeners.delete(listener);
214
222
  }
223
+ /**
224
+ * three's `mixer.addEventListener("finished" | "loop", listener)` — fires when
225
+ * any registered action crosses its final repetition ("finished", once per
226
+ * finish) or wraps a loop boundary ("loop", with the signed `loopDelta`).
227
+ * Returns an unsubscribe callback.
228
+ */
229
+ addEventListener(type, listener) {
230
+ this.assertAlive();
231
+ if (type !== "finished" && type !== "loop") {
232
+ throw new Error(`AnimationMixer.addEventListener: unknown event type "${String(type)}"; expected "finished" or "loop".`);
233
+ }
234
+ if (typeof listener !== "function") {
235
+ throw new Error(`AnimationMixer.addEventListener: listener for "${type}" must be a function.`);
236
+ }
237
+ let listeners = this.playbackListeners.get(type);
238
+ if (!listeners) {
239
+ listeners = new Set();
240
+ this.playbackListeners.set(type, listeners);
241
+ }
242
+ listeners.add(listener);
243
+ return () => this.removeEventListener(type, listener);
244
+ }
245
+ removeEventListener(type, listener) {
246
+ const listeners = this.playbackListeners.get(type);
247
+ if (!listeners) {
248
+ return;
249
+ }
250
+ listeners.delete(listener);
251
+ if (listeners.size === 0) {
252
+ this.playbackListeners.delete(type);
253
+ }
254
+ }
255
+ dispatchPlaybackEvent(event) {
256
+ const listeners = this.playbackListeners.get(event.type);
257
+ if (!listeners) {
258
+ return;
259
+ }
260
+ for (const listener of Array.from(listeners)) {
261
+ listener(event);
262
+ }
263
+ }
215
264
  snapshot() {
216
265
  const values = {};
217
266
  for (const [target, value] of this.values) {
@@ -232,6 +281,7 @@ export class AnimationMixer {
232
281
  this.values.clear();
233
282
  this.applyErrors = [];
234
283
  this.eventListeners.clear();
284
+ this.playbackListeners.clear();
235
285
  this.inertialTransition = undefined;
236
286
  this.disposed = true;
237
287
  }
@@ -325,7 +375,7 @@ function blendBase(current, type, value, weight) {
325
375
  if (type === "scalar") {
326
376
  current.value = current.value + (value - current.value) * t;
327
377
  }
328
- else if (type === "vector3") {
378
+ else if (type === "vector3" || type === "color") {
329
379
  const a = current.value;
330
380
  const b = value;
331
381
  current.value = [a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t, a[2] + (b[2] - a[2]) * t];
@@ -373,7 +423,7 @@ function additiveContribution(type, value, weight) {
373
423
  if (type === "scalar") {
374
424
  return value * weight;
375
425
  }
376
- if (type === "vector3") {
426
+ if (type === "vector3" || type === "color") {
377
427
  const vector = value;
378
428
  return [vector[0] * weight, vector[1] * weight, vector[2] * weight];
379
429
  }
@@ -392,7 +442,7 @@ function applyAdditive(type, base, delta) {
392
442
  if (type === "scalar") {
393
443
  return base + delta;
394
444
  }
395
- if (type === "vector3") {
445
+ if (type === "vector3" || type === "color") {
396
446
  const a = base;
397
447
  const b = delta;
398
448
  return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
@@ -414,7 +464,7 @@ function additiveNeutral(type, value) {
414
464
  if (type === "scalar") {
415
465
  return 0;
416
466
  }
417
- if (type === "vector3") {
467
+ if (type === "vector3" || type === "color") {
418
468
  return [0, 0, 0];
419
469
  }
420
470
  if (type === "number-array") {
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationMixer.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimationMixer.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type AnimationObjectGroupLike, type ParsedTrackName, type PropertyBindingLike, type PropertyBindingNode } from "./PropertyBinding.js";
2
+ export declare class AnimationObjectGroup implements AnimationObjectGroupLike {
3
+ readonly isAnimationObjectGroup: true;
4
+ readonly uuid: string;
5
+ /** Threshold between cached and active objects; read by the composite binding. */
6
+ nCachedObjects_: number;
7
+ private readonly _objects;
8
+ private readonly _indicesByUUID;
9
+ private readonly _paths;
10
+ private readonly _parsedPaths;
11
+ private readonly _bindings;
12
+ private readonly _bindingsIndicesByPath;
13
+ readonly stats: {
14
+ readonly objects: {
15
+ readonly total: number;
16
+ readonly inUse: number;
17
+ };
18
+ readonly bindingsPerObject: number;
19
+ };
20
+ constructor(...args: PropertyBindingNode[]);
21
+ add(...args: PropertyBindingNode[]): void;
22
+ remove(...args: PropertyBindingNode[]): void;
23
+ uncache(...args: PropertyBindingNode[]): void;
24
+ /** Internal interface used by `PropertyBindingComposite`. */
25
+ subscribe_(path: string, parsedPath?: ParsedTrackName): PropertyBindingLike[];
26
+ unsubscribe_(path: string): void;
27
+ }
28
+ //# sourceMappingURL=AnimationObjectGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationObjectGroup.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationObjectGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AA+BhK,qBAAa,oBAAqB,YAAW,wBAAwB;IACnE,QAAQ,CAAC,sBAAsB,EAAG,IAAI,CAAU;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,kFAAkF;IAClF,eAAe,SAAK;IAEpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA0C;IAEjF,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,OAAO,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACrE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACpC,CAAC;gBAEU,GAAG,IAAI,EAAE,mBAAmB,EAAE;IAsB1C,GAAG,CAAC,GAAG,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI;IA8DzC,MAAM,CAAC,GAAG,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAqC5C,OAAO,CAAC,GAAG,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAiE7C,6DAA6D;IAC7D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,mBAAmB,EAAE;IA+B7E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAwBjC"}
@@ -0,0 +1,242 @@
1
+ import { PropertyBinding } from "./PropertyBinding.js";
2
+ /**
3
+ * SA-02 — three-compatible `AnimationObjectGroup` (`three@0.185.x
4
+ * src/animation/AnimationObjectGroup.js`). A group of objects that receives a
5
+ * shared animation state: add the objects you would otherwise pass as the
6
+ * mixer root, then pass this group instead. `PropertyBinding.create` detects
7
+ * `isAnimationObjectGroup` and produces a composite binding that fans each
8
+ * track path out over all active objects.
9
+ *
10
+ * Objects keep the cached/active bookkeeping of the original implementation:
11
+ * `remove()` moves objects into a cached region (bindings preserved), `add()`
12
+ * reactivates them, and `uncache()` frees them entirely. Objects without a
13
+ * `uuid` get a stable generated one so plain `{ name }` nodes can join groups.
14
+ */
15
+ let objectGroupUuidCounter = 0;
16
+ const generatedUuids = new WeakMap();
17
+ function objectUuid(object) {
18
+ if (typeof object.uuid === "string" && object.uuid.length > 0) {
19
+ return object.uuid;
20
+ }
21
+ let uuid = generatedUuids.get(object);
22
+ if (!uuid) {
23
+ uuid = `animation-object-group-${(objectGroupUuidCounter++).toString(16)}-${Math.random().toString(36).slice(2, 10)}`;
24
+ generatedUuids.set(object, uuid);
25
+ }
26
+ return uuid;
27
+ }
28
+ export class AnimationObjectGroup {
29
+ isAnimationObjectGroup = true;
30
+ uuid;
31
+ /** Threshold between cached and active objects; read by the composite binding. */
32
+ nCachedObjects_ = 0;
33
+ _objects;
34
+ _indicesByUUID = {};
35
+ _paths = [];
36
+ _parsedPaths = [];
37
+ _bindings = [];
38
+ _bindingsIndicesByPath = {};
39
+ stats;
40
+ constructor(...args) {
41
+ this.uuid = `animation-object-group-${(objectGroupUuidCounter++).toString(16)}-${Math.random().toString(36).slice(2, 10)}`;
42
+ this._objects = args.slice();
43
+ for (let i = 0, n = args.length; i !== n; ++i) {
44
+ this._indicesByUUID[objectUuid(args[i])] = i;
45
+ }
46
+ const scope = this;
47
+ this.stats = {
48
+ objects: {
49
+ get total() {
50
+ return scope._objects.length;
51
+ },
52
+ get inUse() {
53
+ return scope._objects.length - scope.nCachedObjects_;
54
+ }
55
+ },
56
+ get bindingsPerObject() {
57
+ return scope._bindings.length;
58
+ }
59
+ };
60
+ }
61
+ add(...args) {
62
+ const objects = this._objects;
63
+ const indicesByUUID = this._indicesByUUID;
64
+ const paths = this._paths;
65
+ const parsedPaths = this._parsedPaths;
66
+ const bindings = this._bindings;
67
+ const nBindings = bindings.length;
68
+ let knownObject;
69
+ let nObjects = objects.length;
70
+ let nCachedObjects = this.nCachedObjects_;
71
+ for (let i = 0, n = args.length; i !== n; ++i) {
72
+ const object = args[i];
73
+ const uuid = objectUuid(object);
74
+ let index = indicesByUUID[uuid];
75
+ if (index === undefined) {
76
+ // unknown object -> add it to the ACTIVE region
77
+ index = nObjects++;
78
+ indicesByUUID[uuid] = index;
79
+ objects.push(object);
80
+ // accounting is done, now do the same for all bindings
81
+ for (let j = 0, m = nBindings; j !== m; ++j) {
82
+ bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j]));
83
+ }
84
+ }
85
+ else if (index < nCachedObjects) {
86
+ knownObject = objects[index];
87
+ // move existing object to the ACTIVE region
88
+ const firstActiveIndex = --nCachedObjects;
89
+ const lastCachedObject = objects[firstActiveIndex];
90
+ indicesByUUID[objectUuid(lastCachedObject)] = index;
91
+ objects[index] = lastCachedObject;
92
+ indicesByUUID[uuid] = firstActiveIndex;
93
+ objects[firstActiveIndex] = object;
94
+ for (let j = 0, m = nBindings; j !== m; ++j) {
95
+ const bindingsForPath = bindings[j];
96
+ const lastCached = bindingsForPath[firstActiveIndex];
97
+ let binding = bindingsForPath[index];
98
+ bindingsForPath[index] = lastCached;
99
+ if (binding === undefined) {
100
+ // since we do not bother to create new bindings for objects that
101
+ // are cached, the binding may or may not exist
102
+ binding = new PropertyBinding(object, paths[j], parsedPaths[j]);
103
+ }
104
+ bindingsForPath[firstActiveIndex] = binding;
105
+ }
106
+ }
107
+ else if (objects[index] !== knownObject) {
108
+ console.error("AnimationObjectGroup: Different objects with the same UUID detected. " +
109
+ "Clean the caches or recreate your infrastructure when reloading scenes.");
110
+ } // else the object is already where we want it to be
111
+ }
112
+ this.nCachedObjects_ = nCachedObjects;
113
+ }
114
+ remove(...args) {
115
+ const objects = this._objects;
116
+ const indicesByUUID = this._indicesByUUID;
117
+ const bindings = this._bindings;
118
+ const nBindings = bindings.length;
119
+ let nCachedObjects = this.nCachedObjects_;
120
+ for (let i = 0, n = args.length; i !== n; ++i) {
121
+ const object = args[i];
122
+ const uuid = objectUuid(object);
123
+ const index = indicesByUUID[uuid];
124
+ if (index !== undefined && index >= nCachedObjects) {
125
+ // move existing object into the CACHED region
126
+ const lastCachedIndex = nCachedObjects++;
127
+ const firstActiveObject = objects[lastCachedIndex];
128
+ indicesByUUID[objectUuid(firstActiveObject)] = index;
129
+ objects[index] = firstActiveObject;
130
+ indicesByUUID[uuid] = lastCachedIndex;
131
+ objects[lastCachedIndex] = object;
132
+ for (let j = 0, m = nBindings; j !== m; ++j) {
133
+ const bindingsForPath = bindings[j];
134
+ const firstActive = bindingsForPath[lastCachedIndex];
135
+ const binding = bindingsForPath[index];
136
+ bindingsForPath[index] = firstActive;
137
+ bindingsForPath[lastCachedIndex] = binding;
138
+ }
139
+ }
140
+ }
141
+ this.nCachedObjects_ = nCachedObjects;
142
+ }
143
+ uncache(...args) {
144
+ const objects = this._objects;
145
+ const indicesByUUID = this._indicesByUUID;
146
+ const bindings = this._bindings;
147
+ const nBindings = bindings.length;
148
+ let nCachedObjects = this.nCachedObjects_;
149
+ let nObjects = objects.length;
150
+ for (let i = 0, n = args.length; i !== n; ++i) {
151
+ const object = args[i];
152
+ const uuid = objectUuid(object);
153
+ const index = indicesByUUID[uuid];
154
+ if (index !== undefined) {
155
+ delete indicesByUUID[uuid];
156
+ if (index < nCachedObjects) {
157
+ // object is cached, shrink the CACHED region
158
+ const firstActiveIndex = --nCachedObjects;
159
+ const lastCachedObject = objects[firstActiveIndex];
160
+ const lastIndex = --nObjects;
161
+ const lastObject = objects[lastIndex];
162
+ // last cached object takes this object's place
163
+ indicesByUUID[objectUuid(lastCachedObject)] = index;
164
+ objects[index] = lastCachedObject;
165
+ // last object goes to the activated slot and pop
166
+ indicesByUUID[objectUuid(lastObject)] = firstActiveIndex;
167
+ objects[firstActiveIndex] = lastObject;
168
+ objects.pop();
169
+ for (let j = 0, m = nBindings; j !== m; ++j) {
170
+ const bindingsForPath = bindings[j];
171
+ const lastCached = bindingsForPath[firstActiveIndex];
172
+ const last = bindingsForPath[lastIndex];
173
+ bindingsForPath[index] = lastCached;
174
+ bindingsForPath[firstActiveIndex] = last;
175
+ bindingsForPath.pop();
176
+ }
177
+ }
178
+ else {
179
+ // object is active, just swap with the last and pop
180
+ const lastIndex = --nObjects;
181
+ const lastObject = objects[lastIndex];
182
+ if (lastIndex > 0) {
183
+ indicesByUUID[objectUuid(lastObject)] = index;
184
+ }
185
+ objects[index] = lastObject;
186
+ objects.pop();
187
+ for (let j = 0, m = nBindings; j !== m; ++j) {
188
+ const bindingsForPath = bindings[j];
189
+ bindingsForPath[index] = bindingsForPath[lastIndex];
190
+ bindingsForPath.pop();
191
+ }
192
+ }
193
+ }
194
+ }
195
+ this.nCachedObjects_ = nCachedObjects;
196
+ }
197
+ /** Internal interface used by `PropertyBindingComposite`. */
198
+ subscribe_(path, parsedPath) {
199
+ const indicesByPath = this._bindingsIndicesByPath;
200
+ let index = indicesByPath[path];
201
+ const bindings = this._bindings;
202
+ if (index !== undefined) {
203
+ return bindings[index];
204
+ }
205
+ const paths = this._paths;
206
+ const parsedPaths = this._parsedPaths;
207
+ const objects = this._objects;
208
+ const nObjects = objects.length;
209
+ const nCachedObjects = this.nCachedObjects_;
210
+ const bindingsForPath = new Array(nObjects);
211
+ index = bindings.length;
212
+ indicesByPath[path] = index;
213
+ paths.push(path);
214
+ parsedPaths.push(parsedPath);
215
+ bindings.push(bindingsForPath);
216
+ for (let i = nCachedObjects, n = objects.length; i !== n; ++i) {
217
+ const object = objects[i];
218
+ bindingsForPath[i] = new PropertyBinding(object, path, parsedPath);
219
+ }
220
+ return bindingsForPath;
221
+ }
222
+ unsubscribe_(path) {
223
+ const indicesByPath = this._bindingsIndicesByPath;
224
+ const index = indicesByPath[path];
225
+ if (index !== undefined) {
226
+ const paths = this._paths;
227
+ const parsedPaths = this._parsedPaths;
228
+ const bindings = this._bindings;
229
+ const lastBindingsIndex = bindings.length - 1;
230
+ const lastBindings = bindings[lastBindingsIndex];
231
+ const lastBindingsPath = paths[lastBindingsIndex];
232
+ indicesByPath[lastBindingsPath] = index;
233
+ bindings[index] = lastBindings;
234
+ bindings.pop();
235
+ parsedPaths[index] = parsedPaths[lastBindingsIndex];
236
+ parsedPaths.pop();
237
+ paths[index] = paths[lastBindingsIndex];
238
+ paths.pop();
239
+ }
240
+ }
241
+ }
242
+ //# sourceMappingURL=AnimationObjectGroup.js.map