@aura3d/animation 4.7.13 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AnimationAction.d.ts +80 -1
- package/dist/AnimationAction.d.ts.map +1 -1
- package/dist/AnimationAction.js +450 -80
- package/dist/AnimationAction.js.map +1 -1
- package/dist/AnimationClip.d.ts.map +1 -1
- package/dist/AnimationClip.js.map +1 -1
- package/dist/AnimationClipEvents.d.ts.map +1 -1
- package/dist/AnimationClipEvents.js.map +1 -1
- package/dist/AnimationClipRegistry.d.ts.map +1 -1
- package/dist/AnimationClipRegistry.js.map +1 -1
- package/dist/AnimationController.d.ts.map +1 -1
- package/dist/AnimationController.js.map +1 -1
- package/dist/AnimationEvents.d.ts +23 -0
- package/dist/AnimationEvents.d.ts.map +1 -1
- package/dist/AnimationEvents.js +145 -36
- package/dist/AnimationEvents.js.map +1 -1
- package/dist/AnimationLayer.d.ts.map +1 -1
- package/dist/AnimationLayer.js.map +1 -1
- package/dist/AnimationMixer.d.ts +58 -3
- package/dist/AnimationMixer.d.ts.map +1 -1
- package/dist/AnimationMixer.js +366 -12
- package/dist/AnimationMixer.js.map +1 -1
- package/dist/AnimationObjectGroup.d.ts +36 -12
- package/dist/AnimationObjectGroup.d.ts.map +1 -1
- package/dist/AnimationObjectGroup.js +219 -208
- package/dist/AnimationObjectGroup.js.map +1 -1
- package/dist/AnimationStateGraph.d.ts.map +1 -1
- package/dist/AnimationStateGraph.js.map +1 -1
- package/dist/AnimationStateMachine.d.ts.map +1 -1
- package/dist/AnimationStateMachine.js.map +1 -1
- package/dist/AnimationTrack.d.ts +7 -1
- package/dist/AnimationTrack.d.ts.map +1 -1
- package/dist/AnimationTrack.js +87 -10
- package/dist/AnimationTrack.js.map +1 -1
- package/dist/AnimationUtils.d.ts +16 -14
- package/dist/AnimationUtils.d.ts.map +1 -1
- package/dist/AnimationUtils.js +148 -109
- package/dist/AnimationUtils.js.map +1 -1
- package/dist/BlendTree.d.ts.map +1 -1
- package/dist/BlendTree.js.map +1 -1
- package/dist/Bone.d.ts.map +1 -1
- package/dist/Bone.js.map +1 -1
- package/dist/ECSAnimationBridge.d.ts.map +1 -1
- package/dist/ECSAnimationBridge.js.map +1 -1
- package/dist/FighterAnimationAdapter.d.ts.map +1 -1
- package/dist/FighterAnimationAdapter.js.map +1 -1
- package/dist/FootIk.d.ts.map +1 -1
- package/dist/FootIk.js.map +1 -1
- package/dist/HumanoidBoneInference.d.ts.map +1 -1
- package/dist/HumanoidBoneInference.js.map +1 -1
- package/dist/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/HumanoidRetargeting.js.map +1 -1
- package/dist/IK.d.ts.map +1 -1
- package/dist/IK.js.map +1 -1
- package/dist/Inertialization.d.ts.map +1 -1
- package/dist/Inertialization.js.map +1 -1
- package/dist/Keyframe.d.ts +15 -1
- package/dist/Keyframe.d.ts.map +1 -1
- package/dist/Keyframe.js +34 -1
- package/dist/Keyframe.js.map +1 -1
- package/dist/LocomotionController.d.ts.map +1 -1
- package/dist/LocomotionController.js.map +1 -1
- package/dist/LocomotionEvidence.d.ts.map +1 -1
- package/dist/LocomotionEvidence.js.map +1 -1
- package/dist/LocomotionKit.d.ts.map +1 -1
- package/dist/LocomotionKit.js.map +1 -1
- package/dist/MotionQuality.d.ts.map +1 -1
- package/dist/MotionQuality.js.map +1 -1
- package/dist/PropertyBinding.d.ts +42 -22
- package/dist/PropertyBinding.d.ts.map +1 -1
- package/dist/PropertyBinding.js +390 -293
- package/dist/PropertyBinding.js.map +1 -1
- package/dist/RigQuality.d.ts.map +1 -1
- package/dist/RigQuality.js.map +1 -1
- package/dist/RootMotion.d.ts.map +1 -1
- package/dist/RootMotion.js.map +1 -1
- package/dist/SceneAnimationBridge.d.ts +7 -0
- package/dist/SceneAnimationBridge.d.ts.map +1 -1
- package/dist/SceneAnimationBridge.js +48 -3
- package/dist/SceneAnimationBridge.js.map +1 -1
- package/dist/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Skinning.d.ts.map +1 -1
- package/dist/Skinning.js.map +1 -1
- package/dist/SpringBones.d.ts.map +1 -1
- package/dist/SpringBones.js.map +1 -1
- package/dist/browser-index.d.ts +1 -1
- package/dist/browser-index.d.ts.map +1 -1
- package/dist/browser-index.js +1 -1
- package/dist/browser-index.js.map +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/pose.d.ts.map +1 -1
- package/dist/contracts/pose.js.map +1 -1
- package/dist/experimental/CrowdAnimation.d.ts.map +1 -1
- package/dist/experimental/CrowdAnimation.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lanes/index.d.ts.map +1 -1
- package/dist/lanes/index.js.map +1 -1
- package/dist/lanes/prd01.d.ts.map +1 -1
- package/dist/lanes/prd01.js.map +1 -1
- package/dist/lanes/prd02.d.ts.map +1 -1
- package/dist/lanes/prd02.js.map +1 -1
- package/dist/lanes/prd03.d.ts.map +1 -1
- package/dist/lanes/prd03.js.map +1 -1
- package/dist/lanes/prd04.d.ts.map +1 -1
- package/dist/lanes/prd04.js.map +1 -1
- package/dist/lanes/prd05.d.ts.map +1 -1
- package/dist/lanes/prd05.js.map +1 -1
- package/dist/lanes/prd06.d.ts.map +1 -1
- package/dist/lanes/prd06.js.map +1 -1
- package/dist/lanes/prd07.d.ts.map +1 -1
- package/dist/lanes/prd07.js.map +1 -1
- package/dist/lanes/prd08.d.ts.map +1 -1
- package/dist/lanes/prd08.js.map +1 -1
- package/dist/lanes/prd09.d.ts.map +1 -1
- package/dist/lanes/prd09.js.map +1 -1
- package/dist/lanes/prd10.d.ts.map +1 -1
- package/dist/lanes/prd10.js.map +1 -1
- package/dist/lanes/prd11.d.ts.map +1 -1
- package/dist/lanes/prd11.js.map +1 -1
- package/dist/lanes/prd12.d.ts.map +1 -1
- package/dist/lanes/prd12.js.map +1 -1
- package/dist/lanes/prd13.d.ts.map +1 -1
- package/dist/lanes/prd13.js.map +1 -1
- package/dist/lanes/prd14.d.ts.map +1 -1
- package/dist/lanes/prd14.js.map +1 -1
- package/dist/lanes/prd15.d.ts.map +1 -1
- package/dist/lanes/prd15.js.map +1 -1
- package/dist/library/performanceStateGraph.d.ts.map +1 -1
- package/dist/library/performanceStateGraph.js.map +1 -1
- package/dist/library/standardHumanoidClips.d.ts.map +1 -1
- package/dist/library/standardHumanoidClips.js.map +1 -1
- package/dist/pose/BoneMask.d.ts.map +1 -1
- package/dist/pose/BoneMask.js.map +1 -1
- package/dist/pose/CcdIkConstraint.d.ts.map +1 -1
- package/dist/pose/CcdIkConstraint.js.map +1 -1
- package/dist/pose/CompiledClip.d.ts +15 -8
- package/dist/pose/CompiledClip.d.ts.map +1 -1
- package/dist/pose/CompiledClip.js +82 -50
- package/dist/pose/CompiledClip.js.map +1 -1
- package/dist/pose/LookAtConstraint.d.ts.map +1 -1
- package/dist/pose/LookAtConstraint.js.map +1 -1
- package/dist/pose/MotionMetrics.d.ts.map +1 -1
- package/dist/pose/MotionMetrics.js.map +1 -1
- package/dist/pose/PoseBuffer.d.ts.map +1 -1
- package/dist/pose/PoseBuffer.js.map +1 -1
- package/dist/pose/PoseInertializer.d.ts.map +1 -1
- package/dist/pose/PoseInertializer.js.map +1 -1
- package/dist/pose/PoseMixer.d.ts +196 -19
- package/dist/pose/PoseMixer.d.ts.map +1 -1
- package/dist/pose/PoseMixer.js +1209 -188
- package/dist/pose/PoseMixer.js.map +1 -1
- package/dist/pose/Retarget.d.ts +4 -3
- package/dist/pose/Retarget.d.ts.map +1 -1
- package/dist/pose/Retarget.js +32 -15
- package/dist/pose/Retarget.js.map +1 -1
- package/dist/pose/RetargetCache.d.ts +12 -6
- package/dist/pose/RetargetCache.d.ts.map +1 -1
- package/dist/pose/RetargetCache.js +253 -29
- package/dist/pose/RetargetCache.js.map +1 -1
- package/dist/pose/RetargetWorker.d.ts.map +1 -1
- package/dist/pose/RetargetWorker.js +5 -0
- package/dist/pose/RetargetWorker.js.map +1 -1
- package/dist/pose/SkeletonBinding.d.ts.map +1 -1
- package/dist/pose/SkeletonBinding.js.map +1 -1
- package/dist/pose/blendKernels.d.ts.map +1 -1
- package/dist/pose/blendKernels.js.map +1 -1
- package/dist/pose/makeClipAdditive.d.ts +7 -14
- package/dist/pose/makeClipAdditive.d.ts.map +1 -1
- package/dist/pose/makeClipAdditive.js +53 -85
- package/dist/pose/makeClipAdditive.js.map +1 -1
- package/dist/pose/poseMixerFlags.d.ts.map +1 -1
- package/dist/pose/poseMixerFlags.js.map +1 -1
- package/dist/pose/quatFlat.d.ts.map +1 -1
- package/dist/pose/quatFlat.js.map +1 -1
- package/dist/pose/retarget.worker.d.ts.map +1 -1
- package/dist/pose/retarget.worker.js.map +1 -1
- package/dist/threejs-compatibility/AnimationAction.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationAction.js.map +1 -1
- package/dist/threejs-compatibility/AnimationClip.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationClip.js.map +1 -1
- package/dist/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
- package/dist/threejs-compatibility/AnimationMixer.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationMixer.js.map +1 -1
- package/dist/threejs-compatibility/MorphTargetMixer.d.ts.map +1 -1
- package/dist/threejs-compatibility/MorphTargetMixer.js.map +1 -1
- package/dist/threejs-compatibility/Skeleton.d.ts.map +1 -1
- package/dist/threejs-compatibility/Skeleton.js.map +1 -1
- package/dist/threejs-compatibility/SkinnedMesh.d.ts.map +1 -1
- package/dist/threejs-compatibility/SkinnedMesh.js.map +1 -1
- package/dist/threejs-compatibility/index.d.ts.map +1 -1
- package/dist/threejs-compatibility/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
import { type AnimationObjectGroupLike, type ParsedTrackName, type PropertyBindingLike, type PropertyBindingNode } from "./PropertyBinding.js";
|
|
2
|
+
/**
|
|
3
|
+
* Shares animation paths across a set of objects. Removed objects stay cached
|
|
4
|
+
* until re-added or explicitly uncached. A cached object receives no writes.
|
|
5
|
+
*
|
|
6
|
+
* A subscription owns one binding per member. Composite bindings hold its
|
|
7
|
+
* ordered array, so membership changes rebuild the contents in place with the
|
|
8
|
+
* cached members first and active members after `nCachedObjects_`.
|
|
9
|
+
*/
|
|
2
10
|
export declare class AnimationObjectGroup implements AnimationObjectGroupLike {
|
|
3
11
|
readonly isAnimationObjectGroup: true;
|
|
4
12
|
readonly uuid: string;
|
|
5
|
-
/**
|
|
13
|
+
/** Number of leading cached entries in every subscribed binding array. */
|
|
6
14
|
nCachedObjects_: number;
|
|
7
|
-
private readonly
|
|
8
|
-
private readonly
|
|
9
|
-
private readonly
|
|
10
|
-
private readonly
|
|
11
|
-
private
|
|
12
|
-
private
|
|
15
|
+
private readonly members;
|
|
16
|
+
private readonly membersByObject;
|
|
17
|
+
private readonly membersByUuid;
|
|
18
|
+
private readonly subscriptions;
|
|
19
|
+
private disposed;
|
|
20
|
+
private preparingBindings;
|
|
13
21
|
readonly stats: {
|
|
14
22
|
readonly objects: {
|
|
15
23
|
readonly total: number;
|
|
@@ -17,12 +25,28 @@ export declare class AnimationObjectGroup implements AnimationObjectGroupLike {
|
|
|
17
25
|
};
|
|
18
26
|
readonly bindingsPerObject: number;
|
|
19
27
|
};
|
|
20
|
-
constructor(...
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
constructor(...objects: PropertyBindingNode[]);
|
|
29
|
+
/** Add new objects or reactivate cached objects. Repeated additions are safe. */
|
|
30
|
+
add(...objects: PropertyBindingNode[]): void;
|
|
31
|
+
/** Deactivate objects while retaining their bindings for later reactivation. */
|
|
32
|
+
remove(...objects: PropertyBindingNode[]): void;
|
|
33
|
+
/** Release all group-owned bindings for the supplied objects. */
|
|
34
|
+
uncache(...objects: PropertyBindingNode[]): void;
|
|
35
|
+
/** Internal interface used by composite bindings. */
|
|
25
36
|
subscribe_(path: string, parsedPath?: ParsedTrackName): PropertyBindingLike[];
|
|
37
|
+
private createSubscription;
|
|
38
|
+
/** Internal constant-time membership check for a composite dispatch snapshot. */
|
|
39
|
+
isBindingActive_(path: string, binding: PropertyBindingLike): boolean;
|
|
40
|
+
/** Unsubscribe only this path; previously returned arrays become inert. */
|
|
26
41
|
unsubscribe_(path: string): void;
|
|
42
|
+
/** Release all members and subscriptions. A disposed group cannot be reused. */
|
|
43
|
+
dispose(): void;
|
|
44
|
+
private refreshBindings;
|
|
45
|
+
private orderedMembers;
|
|
46
|
+
private releaseSubscription;
|
|
47
|
+
private assertAlive;
|
|
48
|
+
/** Binding construction can invoke user getters; reject nested mutations. */
|
|
49
|
+
private prepare;
|
|
50
|
+
private assertNotPreparing;
|
|
27
51
|
}
|
|
28
52
|
//# sourceMappingURL=AnimationObjectGroup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationObjectGroup.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"AnimationObjectGroup.d.ts","sourceRoot":"","sources":["../src/AnimationObjectGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AA2B9B;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,wBAAwB;IACnE,QAAQ,CAAC,sBAAsB,EAAG,IAAI,CAAU;IAChD,QAAQ,CAAC,IAAI,SAAmG;IAEhH,0EAA0E;IAC1E,eAAe,SAAK;IAEpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAC/E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAElC,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,OAAO,EAAE,mBAAmB,EAAE;IAY7C,iFAAiF;IACjF,GAAG,CAAC,GAAG,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI;IA2D5C,gFAAgF;IAChF,MAAM,CAAC,GAAG,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAa/C,iEAAiE;IACjE,OAAO,CAAC,GAAG,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAsBhD,qDAAqD;IACrD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,mBAAmB,EAAE;IAK7E,OAAO,CAAC,kBAAkB;IA+B1B,iFAAiF;IACjF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAIrE,2EAA2E;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQhC,gFAAgF;IAChF,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,WAAW;IAInB,6EAA6E;IAC7E,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,kBAAkB;CAK3B"}
|
|
@@ -1,241 +1,252 @@
|
|
|
1
1
|
import { PropertyBinding } from "./PropertyBinding.js";
|
|
2
|
+
function samePath(a, b) {
|
|
3
|
+
return (a.directoryName ?? "") === (b.directoryName ?? "")
|
|
4
|
+
&& (a.nodeName ?? "") === (b.nodeName ?? "")
|
|
5
|
+
&& a.objectName === b.objectName && a.objectIndex === b.objectIndex
|
|
6
|
+
&& a.propertyName === b.propertyName && a.propertyIndex === b.propertyIndex;
|
|
7
|
+
}
|
|
8
|
+
let nextGroupId = 0;
|
|
2
9
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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.
|
|
10
|
+
* Shares animation paths across a set of objects. Removed objects stay cached
|
|
11
|
+
* until re-added or explicitly uncached. A cached object receives no writes.
|
|
9
12
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* `uuid` get a stable generated one so plain `{ name }` nodes can join groups.
|
|
13
|
+
* A subscription owns one binding per member. Composite bindings hold its
|
|
14
|
+
* ordered array, so membership changes rebuild the contents in place with the
|
|
15
|
+
* cached members first and active members after `nCachedObjects_`.
|
|
14
16
|
*/
|
|
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
17
|
export class AnimationObjectGroup {
|
|
29
18
|
isAnimationObjectGroup = true;
|
|
30
|
-
uuid
|
|
31
|
-
/**
|
|
19
|
+
uuid = `animation-object-group-${(nextGroupId++).toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
20
|
+
/** Number of leading cached entries in every subscribed binding array. */
|
|
32
21
|
nCachedObjects_ = 0;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
22
|
+
members = [];
|
|
23
|
+
membersByObject = new Map();
|
|
24
|
+
membersByUuid = new Map();
|
|
25
|
+
subscriptions = new Map();
|
|
26
|
+
disposed = false;
|
|
27
|
+
preparingBindings = false;
|
|
39
28
|
stats;
|
|
40
|
-
constructor(...
|
|
41
|
-
|
|
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;
|
|
29
|
+
constructor(...objects) {
|
|
30
|
+
const group = this;
|
|
47
31
|
this.stats = {
|
|
48
32
|
objects: {
|
|
49
|
-
get total() {
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
get inUse() {
|
|
53
|
-
return scope._objects.length - scope.nCachedObjects_;
|
|
54
|
-
}
|
|
33
|
+
get total() { return group.members.length; },
|
|
34
|
+
get inUse() { return group.members.length - group.nCachedObjects_; }
|
|
55
35
|
},
|
|
56
|
-
get bindingsPerObject() {
|
|
57
|
-
return scope._bindings.length;
|
|
58
|
-
}
|
|
36
|
+
get bindingsPerObject() { return group.subscriptions.size; }
|
|
59
37
|
};
|
|
38
|
+
this.add(...objects);
|
|
60
39
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
40
|
+
/** Add new objects or reactivate cached objects. Repeated additions are safe. */
|
|
41
|
+
add(...objects) {
|
|
42
|
+
this.assertAlive();
|
|
43
|
+
const staged = this.prepare(() => {
|
|
44
|
+
const additions = [];
|
|
45
|
+
const additionsByObject = new Map();
|
|
46
|
+
const additionsByUuid = new Map();
|
|
47
|
+
const reactivations = new Set();
|
|
48
|
+
for (const object of objects) {
|
|
49
|
+
const known = this.membersByObject.get(object) ?? additionsByObject.get(object);
|
|
50
|
+
if (known) {
|
|
51
|
+
if (!known.active)
|
|
52
|
+
reactivations.add(known);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// Read admission identity once: accessors may throw or return changing values.
|
|
56
|
+
const candidateUuid = object.uuid;
|
|
57
|
+
const uuid = typeof candidateUuid === "string" && candidateUuid.length > 0 ? candidateUuid : undefined;
|
|
58
|
+
if (uuid !== undefined && (this.membersByUuid.has(uuid) || additionsByUuid.has(uuid))) {
|
|
59
|
+
// A different object cannot inherit the bindings owned by this UUID.
|
|
60
|
+
console.error(`AnimationObjectGroup: Different objects share UUID "${uuid}".`);
|
|
61
|
+
continue;
|
|
83
62
|
}
|
|
63
|
+
const member = { object, uuid, active: true };
|
|
64
|
+
additions.push(member);
|
|
65
|
+
additionsByObject.set(object, member);
|
|
66
|
+
if (uuid !== undefined)
|
|
67
|
+
additionsByUuid.set(uuid, member);
|
|
84
68
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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;
|
|
69
|
+
// Construct every new path before publishing membership. A failing node
|
|
70
|
+
// accessor or path lookup must not leave a half-added member or empty a
|
|
71
|
+
// composite binding's live array.
|
|
72
|
+
const bindings = new Map();
|
|
73
|
+
for (const subscription of this.subscriptions.values()) {
|
|
74
|
+
const created = new Map();
|
|
75
|
+
for (const member of additions) {
|
|
76
|
+
created.set(member, new PropertyBinding(member.object, subscription.path, subscription.parsedPath));
|
|
105
77
|
}
|
|
78
|
+
bindings.set(subscription, created);
|
|
106
79
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
80
|
+
return { additions, reactivations, bindings };
|
|
81
|
+
});
|
|
82
|
+
if (staged.additions.length === 0 && staged.reactivations.size === 0)
|
|
83
|
+
return;
|
|
84
|
+
for (const member of staged.reactivations)
|
|
85
|
+
member.active = true;
|
|
86
|
+
for (const member of staged.additions) {
|
|
87
|
+
this.members.push(member);
|
|
88
|
+
this.membersByObject.set(member.object, member);
|
|
89
|
+
if (member.uuid !== undefined)
|
|
90
|
+
this.membersByUuid.set(member.uuid, member);
|
|
111
91
|
}
|
|
112
|
-
|
|
92
|
+
for (const [subscription, bindings] of staged.bindings) {
|
|
93
|
+
for (const [member, binding] of bindings) {
|
|
94
|
+
subscription.byMember.set(member, binding);
|
|
95
|
+
subscription.byBinding.set(binding, member);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
this.refreshBindings();
|
|
113
99
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
}
|
|
100
|
+
/** Deactivate objects while retaining their bindings for later reactivation. */
|
|
101
|
+
remove(...objects) {
|
|
102
|
+
this.assertNotPreparing();
|
|
103
|
+
let changed = false;
|
|
104
|
+
for (const object of objects) {
|
|
105
|
+
const member = this.membersByObject.get(object);
|
|
106
|
+
if (member?.active) {
|
|
107
|
+
member.active = false;
|
|
108
|
+
changed = true;
|
|
139
109
|
}
|
|
140
110
|
}
|
|
141
|
-
|
|
111
|
+
if (changed)
|
|
112
|
+
this.refreshBindings();
|
|
142
113
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
}
|
|
114
|
+
/** Release all group-owned bindings for the supplied objects. */
|
|
115
|
+
uncache(...objects) {
|
|
116
|
+
this.assertNotPreparing();
|
|
117
|
+
let changed = false;
|
|
118
|
+
for (const object of objects) {
|
|
119
|
+
const member = this.membersByObject.get(object);
|
|
120
|
+
if (!member)
|
|
121
|
+
continue;
|
|
122
|
+
this.membersByObject.delete(object);
|
|
123
|
+
if (member.uuid !== undefined)
|
|
124
|
+
this.membersByUuid.delete(member.uuid);
|
|
125
|
+
const index = this.members.indexOf(member);
|
|
126
|
+
if (index !== -1)
|
|
127
|
+
this.members.splice(index, 1);
|
|
128
|
+
for (const subscription of this.subscriptions.values()) {
|
|
129
|
+
const binding = subscription.byMember.get(member);
|
|
130
|
+
binding?.unbind();
|
|
131
|
+
if (binding)
|
|
132
|
+
subscription.byBinding.delete(binding);
|
|
133
|
+
subscription.byMember.delete(member);
|
|
193
134
|
}
|
|
135
|
+
changed = true;
|
|
194
136
|
}
|
|
195
|
-
|
|
137
|
+
if (changed)
|
|
138
|
+
this.refreshBindings();
|
|
196
139
|
}
|
|
197
|
-
/** Internal interface used by
|
|
140
|
+
/** Internal interface used by composite bindings. */
|
|
198
141
|
subscribe_(path, parsedPath) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
142
|
+
this.assertAlive();
|
|
143
|
+
return this.prepare(() => this.createSubscription(path, parsedPath));
|
|
144
|
+
}
|
|
145
|
+
createSubscription(path, parsedPath) {
|
|
146
|
+
// Validate supplied descriptors even when there are no members, and take
|
|
147
|
+
// a private copy so a caller cannot later redirect a subscription.
|
|
148
|
+
const normalized = new PropertyBinding({}, path, parsedPath).parsedPath;
|
|
149
|
+
const existing = this.subscriptions.get(path);
|
|
150
|
+
if (existing) {
|
|
151
|
+
if (!samePath(existing.parsedPath, normalized)) {
|
|
152
|
+
throw new Error(`AnimationObjectGroup: Conflicting parsed path for subscription "${path}".`);
|
|
153
|
+
}
|
|
154
|
+
return existing.orderedBindings;
|
|
204
155
|
}
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
156
|
+
const subscription = {
|
|
157
|
+
path,
|
|
158
|
+
parsedPath: normalized,
|
|
159
|
+
orderedBindings: [],
|
|
160
|
+
byMember: new Map(),
|
|
161
|
+
byBinding: new Map()
|
|
162
|
+
};
|
|
163
|
+
// Build before publishing the subscription, so an invalid binding cannot
|
|
164
|
+
// leave a partially registered path or disturb an existing subscription.
|
|
165
|
+
for (const member of this.orderedMembers()) {
|
|
166
|
+
const binding = new PropertyBinding(member.object, path, subscription.parsedPath);
|
|
167
|
+
subscription.byMember.set(member, binding);
|
|
168
|
+
subscription.byBinding.set(binding, member);
|
|
169
|
+
subscription.orderedBindings.push(binding);
|
|
219
170
|
}
|
|
220
|
-
|
|
171
|
+
this.subscriptions.set(path, subscription);
|
|
172
|
+
return subscription.orderedBindings;
|
|
173
|
+
}
|
|
174
|
+
/** Internal constant-time membership check for a composite dispatch snapshot. */
|
|
175
|
+
isBindingActive_(path, binding) {
|
|
176
|
+
return this.subscriptions.get(path)?.byBinding.get(binding)?.active === true;
|
|
221
177
|
}
|
|
178
|
+
/** Unsubscribe only this path; previously returned arrays become inert. */
|
|
222
179
|
unsubscribe_(path) {
|
|
223
|
-
|
|
224
|
-
const
|
|
225
|
-
if (
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
180
|
+
this.assertNotPreparing();
|
|
181
|
+
const subscription = this.subscriptions.get(path);
|
|
182
|
+
if (!subscription)
|
|
183
|
+
return;
|
|
184
|
+
this.subscriptions.delete(path);
|
|
185
|
+
this.releaseSubscription(subscription);
|
|
186
|
+
}
|
|
187
|
+
/** Release all members and subscriptions. A disposed group cannot be reused. */
|
|
188
|
+
dispose() {
|
|
189
|
+
this.assertNotPreparing();
|
|
190
|
+
if (this.disposed)
|
|
191
|
+
return;
|
|
192
|
+
this.disposed = true;
|
|
193
|
+
for (const subscription of this.subscriptions.values())
|
|
194
|
+
this.releaseSubscription(subscription);
|
|
195
|
+
this.subscriptions.clear();
|
|
196
|
+
this.members.length = 0;
|
|
197
|
+
this.membersByObject.clear();
|
|
198
|
+
this.membersByUuid.clear();
|
|
199
|
+
this.nCachedObjects_ = 0;
|
|
200
|
+
}
|
|
201
|
+
refreshBindings() {
|
|
202
|
+
const ordered = this.orderedMembers();
|
|
203
|
+
this.nCachedObjects_ = ordered.filter((member) => !member.active).length;
|
|
204
|
+
for (const subscription of this.subscriptions.values()) {
|
|
205
|
+
const bindings = subscription.orderedBindings;
|
|
206
|
+
bindings.length = 0;
|
|
207
|
+
for (const member of ordered) {
|
|
208
|
+
let binding = subscription.byMember.get(member);
|
|
209
|
+
if (!binding) {
|
|
210
|
+
binding = new PropertyBinding(member.object, subscription.path, subscription.parsedPath);
|
|
211
|
+
subscription.byMember.set(member, binding);
|
|
212
|
+
subscription.byBinding.set(binding, member);
|
|
213
|
+
}
|
|
214
|
+
bindings.push(binding);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
orderedMembers() {
|
|
219
|
+
const cached = [];
|
|
220
|
+
const active = [];
|
|
221
|
+
for (const member of this.members)
|
|
222
|
+
(member.active ? active : cached).push(member);
|
|
223
|
+
return cached.concat(active);
|
|
224
|
+
}
|
|
225
|
+
releaseSubscription(subscription) {
|
|
226
|
+
for (const binding of subscription.byMember.values())
|
|
227
|
+
binding.unbind();
|
|
228
|
+
subscription.byMember.clear();
|
|
229
|
+
subscription.byBinding.clear();
|
|
230
|
+
subscription.orderedBindings.length = 0;
|
|
231
|
+
}
|
|
232
|
+
assertAlive() {
|
|
233
|
+
if (this.disposed)
|
|
234
|
+
throw new Error("AnimationObjectGroup is disposed.");
|
|
235
|
+
}
|
|
236
|
+
/** Binding construction can invoke user getters; reject nested mutations. */
|
|
237
|
+
prepare(create) {
|
|
238
|
+
this.assertNotPreparing();
|
|
239
|
+
this.preparingBindings = true;
|
|
240
|
+
try {
|
|
241
|
+
return create();
|
|
242
|
+
}
|
|
243
|
+
finally {
|
|
244
|
+
this.preparingBindings = false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
assertNotPreparing() {
|
|
248
|
+
if (this.preparingBindings) {
|
|
249
|
+
throw new Error("AnimationObjectGroup cannot be mutated while preparing bindings.");
|
|
239
250
|
}
|
|
240
251
|
}
|
|
241
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationObjectGroup.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"AnimationObjectGroup.js","sourceRoot":"","sources":["../src/AnimationObjectGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationStateGraph.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"AnimationStateGraph.d.ts","sourceRoot":"","sources":["../src/AnimationStateGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,mBAAmB,EAC5C,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAuB,MAAM,4BAA4B,CAAC;AAExF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,kCAAkC,CAAC,OAAO,GAAE,mCAAwC,GAAG,qBAAqB,CAoB3H;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,EACtE,KAAK,SAAS,GACb,SAAS,kCAAkC,EAAE,CAK/C;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,GAAE,oCAAyC,GAAG,qBAAqB,CAiB7H"}
|