@flighthq/skeleton2d 0.3.1-next.575.c1f8e01 → 0.3.1-next.617.89baf58
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/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/skeleton2dAnimationTarget.d.ts +1 -0
- package/dist/skeleton2dAnimationTarget.d.ts.map +1 -1
- package/dist/skeleton2dAnimationTarget.js +22 -10
- package/dist/skeleton2dAnimationTarget.js.map +1 -1
- package/package.json +10 -9
- package/src/skeleton2dAnimationTarget.test.ts +19 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { applyAnimationClipToSkeleton2D, cloneSkeleton2D, computeSkeleton2DBoneMatrices, computeSkeleton2DBoneWorldTransform, computeSkeleton2DBoundingBoxAttachmentVertices, computeSkeleton2DClippingAttachmentVertices, computeSkeleton2DPointAttachmentPosition, computeSkeleton2DPointAttachmentRotation, computeSkeleton2DRegionAttachmentVertices, computeSkeleton2DWorldTransforms, createSkeleton2D, createSkeleton2DBoneAnimationTarget, createSkeleton2DSlotAnimationTarget, deformSkeleton2DMeshAttachment, deformSkeleton2DPathAttachment, disposeSkeleton2D, explainSkeleton2DDeformLength, equalsSkeleton2D, getSkeleton2DBoneIndexByName, getSkeleton2DBoneWorldMatrix, getSkeleton2DClippingAttachmentSlotRange, getSkeleton2DSlotDeformOffsets, registerSkeleton2DAnimationTargetBinder, registerSkeleton2DConstraintSolver, registerSkeleton2DDeformAnimationTarget, registerSkeleton2DIkConstraintSolver, registerSkeleton2DPathConstraintSolver, registerSkeleton2DTransformConstraintSolver, setSkeleton2DBindPose, setSkeleton2DSlotDeform, solveSkeleton2DConstraints, validateSkeleton2D, } from './contract';
|
|
1
|
+
export { applyAnimationClipToSkeleton2D, cloneSkeleton2D, computeSkeleton2DBoneMatrices, computeSkeleton2DBoneWorldTransform, computeSkeleton2DBoundingBoxAttachmentVertices, computeSkeleton2DClippingAttachmentVertices, computeSkeleton2DPointAttachmentPosition, computeSkeleton2DPointAttachmentRotation, computeSkeleton2DRegionAttachmentVertices, computeSkeleton2DWorldTransforms, createSkeleton2D, createSkeleton2DBoneAnimationTarget, createSkeleton2DSlotAnimationTarget, deformSkeleton2DMeshAttachment, deformSkeleton2DPathAttachment, disposeSkeleton2D, explainSkeleton2DDeformLength, equalsSkeleton2D, getSkeleton2DAnimationTargetBinder, getSkeleton2DAnimationTargetBinderKinds, getSkeleton2DBoneIndexByName, getSkeleton2DBoneWorldMatrix, getSkeleton2DClippingAttachmentSlotRange, getSkeleton2DSlotDeformOffsets, registerSkeleton2DAnimationTargetBinder, registerSkeleton2DConstraintSolver, registerSkeleton2DDeformAnimationTarget, registerSkeleton2DIkConstraintSolver, registerSkeleton2DPathConstraintSolver, registerSkeleton2DTransformConstraintSolver, setSkeleton2DBindPose, setSkeleton2DSlotDeform, solveSkeleton2DConstraints, unregisterSkeleton2DAnimationTargetBinder, validateSkeleton2D, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,eAAe,EACf,6BAA6B,EAC7B,mCAAmC,EACnC,8CAA8C,EAC9C,2CAA2C,EAC3C,wCAAwC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,gCAAgC,EAChC,gBAAgB,EAChB,mCAAmC,EACnC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,8BAA8B,EAC9B,uCAAuC,EACvC,kCAAkC,EAClC,uCAAuC,EACvC,oCAAoC,EACpC,sCAAsC,EACtC,2CAA2C,EAC3C,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,eAAe,EACf,6BAA6B,EAC7B,mCAAmC,EACnC,8CAA8C,EAC9C,2CAA2C,EAC3C,wCAAwC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,gCAAgC,EAChC,gBAAgB,EAChB,mCAAmC,EACnC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,kCAAkC,EAClC,uCAAuC,EACvC,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,8BAA8B,EAC9B,uCAAuC,EACvC,kCAAkC,EAClC,uCAAuC,EACvC,oCAAoC,EACpC,sCAAsC,EACtC,2CAA2C,EAC3C,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { applyAnimationClipToSkeleton2D, cloneSkeleton2D, computeSkeleton2DBoneMatrices, computeSkeleton2DBoneWorldTransform, computeSkeleton2DBoundingBoxAttachmentVertices, computeSkeleton2DClippingAttachmentVertices, computeSkeleton2DPointAttachmentPosition, computeSkeleton2DPointAttachmentRotation, computeSkeleton2DRegionAttachmentVertices, computeSkeleton2DWorldTransforms, createSkeleton2D, createSkeleton2DBoneAnimationTarget, createSkeleton2DSlotAnimationTarget, deformSkeleton2DMeshAttachment, deformSkeleton2DPathAttachment, disposeSkeleton2D, explainSkeleton2DDeformLength, equalsSkeleton2D, getSkeleton2DBoneIndexByName, getSkeleton2DBoneWorldMatrix, getSkeleton2DClippingAttachmentSlotRange, getSkeleton2DSlotDeformOffsets, registerSkeleton2DAnimationTargetBinder, registerSkeleton2DConstraintSolver, registerSkeleton2DDeformAnimationTarget, registerSkeleton2DIkConstraintSolver, registerSkeleton2DPathConstraintSolver, registerSkeleton2DTransformConstraintSolver, setSkeleton2DBindPose, setSkeleton2DSlotDeform, solveSkeleton2DConstraints, validateSkeleton2D, } from './contract';
|
|
1
|
+
export { applyAnimationClipToSkeleton2D, cloneSkeleton2D, computeSkeleton2DBoneMatrices, computeSkeleton2DBoneWorldTransform, computeSkeleton2DBoundingBoxAttachmentVertices, computeSkeleton2DClippingAttachmentVertices, computeSkeleton2DPointAttachmentPosition, computeSkeleton2DPointAttachmentRotation, computeSkeleton2DRegionAttachmentVertices, computeSkeleton2DWorldTransforms, createSkeleton2D, createSkeleton2DBoneAnimationTarget, createSkeleton2DSlotAnimationTarget, deformSkeleton2DMeshAttachment, deformSkeleton2DPathAttachment, disposeSkeleton2D, explainSkeleton2DDeformLength, equalsSkeleton2D, getSkeleton2DAnimationTargetBinder, getSkeleton2DAnimationTargetBinderKinds, getSkeleton2DBoneIndexByName, getSkeleton2DBoneWorldMatrix, getSkeleton2DClippingAttachmentSlotRange, getSkeleton2DSlotDeformOffsets, registerSkeleton2DAnimationTargetBinder, registerSkeleton2DConstraintSolver, registerSkeleton2DDeformAnimationTarget, registerSkeleton2DIkConstraintSolver, registerSkeleton2DPathConstraintSolver, registerSkeleton2DTransformConstraintSolver, setSkeleton2DBindPose, setSkeleton2DSlotDeform, solveSkeleton2DConstraints, unregisterSkeleton2DAnimationTargetBinder, validateSkeleton2D, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,eAAe,EACf,6BAA6B,EAC7B,mCAAmC,EACnC,8CAA8C,EAC9C,2CAA2C,EAC3C,wCAAwC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,gCAAgC,EAChC,gBAAgB,EAChB,mCAAmC,EACnC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,8BAA8B,EAC9B,uCAAuC,EACvC,kCAAkC,EAClC,uCAAuC,EACvC,oCAAoC,EACpC,sCAAsC,EACtC,2CAA2C,EAC3C,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,eAAe,EACf,6BAA6B,EAC7B,mCAAmC,EACnC,8CAA8C,EAC9C,2CAA2C,EAC3C,wCAAwC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,gCAAgC,EAChC,gBAAgB,EAChB,mCAAmC,EACnC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,kCAAkC,EAClC,uCAAuC,EACvC,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,8BAA8B,EAC9B,uCAAuC,EACvC,kCAAkC,EAClC,uCAAuC,EACvC,oCAAoC,EACpC,sCAAsC,EACtC,2CAA2C,EAC3C,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -10,6 +10,7 @@ export declare function createSkeleton2DSlotAnimationTarget(slotIndex: number, p
|
|
|
10
10
|
*/
|
|
11
11
|
export declare function findSkeleton2DStepKeyframe(times: ArrayLike<number>, time: number): number;
|
|
12
12
|
export declare function getSkeleton2DAnimationTargetBinder(kind: Skeleton2DAnimationTargetKind): Skeleton2DAnimationTargetBinder | null;
|
|
13
|
+
export declare function getSkeleton2DAnimationTargetBinderKinds(): readonly Skeleton2DAnimationTargetKind[];
|
|
13
14
|
export declare function registerSkeleton2DAnimationTargetBinder(kind: Skeleton2DAnimationTargetKind, bind: Skeleton2DAnimationTargetBinder): void;
|
|
14
15
|
export declare function unregisterSkeleton2DAnimationTargetBinder(kind: Skeleton2DAnimationTargetKind): void;
|
|
15
16
|
//# sourceMappingURL=skeleton2dAnimationTarget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton2dAnimationTarget.d.ts","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skeleton2dAnimationTarget.d.ts","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,YAAY,EAGZ,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAE9B,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,uBAAuB,GAC5B,yBAAyB,CAE3B;AAID,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,2BAA2B,EACjC,WAAW,GAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,IAAW,GAC1D,6BAA6B,CAE/B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzF;AAID,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,6BAA6B,GAClC,+BAA+B,GAAG,IAAI,CAExC;AAID,wBAAgB,uCAAuC,IAAI,SAAS,6BAA6B,EAAE,CAIlG;AAMD,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,6BAA6B,EACnC,IAAI,EAAE,+BAA+B,GACpC,IAAI,CAEN;AAED,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAEnG"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { sampleAnimationTrack } from '@flighthq/animation/contract';
|
|
2
|
+
import { createKeyedTable, getRegistryTableEntry, getRegistryTableKeys, withRegistryTableEntry, withoutRegistryTableEntry, } from '@flighthq/registry/contract';
|
|
2
3
|
import { Skeleton2DAnimationPath as BonePath, Skeleton2DAnimationTargetKind as TargetKind, Skeleton2DSlotAnimationPath as SlotPath, } from '@flighthq/types/contract';
|
|
3
4
|
import { reportSkeleton2DCoercedInterpolation } from './skeleton2dGuards';
|
|
4
5
|
// The binding target for a bone transform channel. Prefer this over a literal: `kind` is what the binder
|
|
@@ -31,17 +32,24 @@ export function findSkeleton2DStepKeyframe(times, time) {
|
|
|
31
32
|
// The binder registered for a target kind, or null when nothing claims it — the sentinel a channel with a
|
|
32
33
|
// foreign or unregistered target is skipped on.
|
|
33
34
|
export function getSkeleton2DAnimationTargetBinder(kind) {
|
|
34
|
-
return
|
|
35
|
+
return getRegistryTableEntry(getSkeleton2DAnimationTargetBinderRegistry(), kind);
|
|
36
|
+
}
|
|
37
|
+
// A sorted snapshot of every target kind with a binder. The array is detached from process-wide registry
|
|
38
|
+
// state, so callers can inspect or mutate it without changing which channels the posing pass can bind.
|
|
39
|
+
export function getSkeleton2DAnimationTargetBinderKinds() {
|
|
40
|
+
const kinds = [];
|
|
41
|
+
getRegistryTableKeys(kinds, getSkeleton2DAnimationTargetBinderRegistry());
|
|
42
|
+
return kinds;
|
|
35
43
|
}
|
|
36
44
|
// Claims a target kind for a binder, so a family this package does not own — a constraint solver's
|
|
37
45
|
// channels, a vendor's own rig feature — poses through the same single pass as bones and slots instead of
|
|
38
46
|
// needing a second one. Last write wins, which is what lets a caller replace a built-in binding; collisions
|
|
39
47
|
// between third parties are avoided by the vendor-prefix convention rather than by a guard.
|
|
40
48
|
export function registerSkeleton2DAnimationTargetBinder(kind, bind) {
|
|
41
|
-
_binders
|
|
49
|
+
_binders = withRegistryTableEntry(getSkeleton2DAnimationTargetBinderRegistry(), kind, bind);
|
|
42
50
|
}
|
|
43
51
|
export function unregisterSkeleton2DAnimationTargetBinder(kind) {
|
|
44
|
-
_binders
|
|
52
|
+
_binders = withoutRegistryTableEntry(getSkeleton2DAnimationTargetBinderRegistry(), kind);
|
|
45
53
|
}
|
|
46
54
|
// Composes one bone channel's sampled delta onto the setup bone. Translate, rotate and shear ADD; scale
|
|
47
55
|
// MULTIPLIES. Reading from `setup` rather than from `pose` is what keeps a clip blendable and what stops
|
|
@@ -160,13 +168,17 @@ function clampColorChannel(value) {
|
|
|
160
168
|
// The bone and slot binders are entered here rather than through an `enable*` call the caller has to
|
|
161
169
|
// remember, because posing a rig from a clip is what this package IS — a skeleton2d bundle that shed the
|
|
162
170
|
// bone binder would leave `applyAnimationClipToSkeleton2D` a silent no-op. Every family beyond those two
|
|
163
|
-
// registers explicitly and shakes out when unused, which is the part the registry buys.
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
171
|
+
// registers explicitly and shakes out when unused, which is the part the registry buys. The table is
|
|
172
|
+
// created on first use, so importing the package performs no observable registration.
|
|
173
|
+
function getSkeleton2DAnimationTargetBinderRegistry() {
|
|
174
|
+
if (_binders !== null)
|
|
175
|
+
return _binders;
|
|
176
|
+
_binders = createKeyedTable('Skeleton2DAnimationTargetBinder', 'Unclaimed');
|
|
177
|
+
_binders = withRegistryTableEntry(_binders, TargetKind.Bone, bindSkeleton2DBoneChannel);
|
|
178
|
+
_binders = withRegistryTableEntry(_binders, TargetKind.Slot, bindSkeleton2DSlotChannel);
|
|
179
|
+
return _binders;
|
|
180
|
+
}
|
|
181
|
+
let _binders = null;
|
|
170
182
|
const _scratch = [0, 0, 0, 0];
|
|
171
183
|
// The walk every non-blendable channel is forced onto, named once so the guard and the walk agree.
|
|
172
184
|
const STEP_INTERPOLATION = 'Step';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton2dAnimationTarget.js","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"skeleton2dAnimationTarget.js","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/skeleton2d",
|
|
3
|
-
"version": "0.3.1-next.
|
|
3
|
+
"version": "0.3.1-next.617.89baf58",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,14 +38,15 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/animation": "0.3.1-next.
|
|
42
|
-
"@flighthq/entity": "0.3.1-next.
|
|
43
|
-
"@flighthq/geometry": "0.3.1-next.
|
|
44
|
-
"@flighthq/log": "0.3.1-next.
|
|
45
|
-
"@flighthq/node": "0.3.1-next.
|
|
46
|
-
"@flighthq/math": "0.3.1-next.
|
|
47
|
-
"@flighthq/path": "0.3.1-next.
|
|
48
|
-
"@flighthq/
|
|
41
|
+
"@flighthq/animation": "0.3.1-next.617.89baf58",
|
|
42
|
+
"@flighthq/entity": "0.3.1-next.617.89baf58",
|
|
43
|
+
"@flighthq/geometry": "0.3.1-next.617.89baf58",
|
|
44
|
+
"@flighthq/log": "0.3.1-next.617.89baf58",
|
|
45
|
+
"@flighthq/node": "0.3.1-next.617.89baf58",
|
|
46
|
+
"@flighthq/math": "0.3.1-next.617.89baf58",
|
|
47
|
+
"@flighthq/path": "0.3.1-next.617.89baf58",
|
|
48
|
+
"@flighthq/registry": "0.3.1-next.617.89baf58",
|
|
49
|
+
"@flighthq/types": "0.3.1-next.617.89baf58"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"typescript": "^5.3.0"
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
findSkeleton2DStepKeyframe,
|
|
16
16
|
createSkeleton2DSlotAnimationTarget,
|
|
17
17
|
getSkeleton2DAnimationTargetBinder,
|
|
18
|
+
getSkeleton2DAnimationTargetBinderKinds,
|
|
18
19
|
registerSkeleton2DAnimationTargetBinder,
|
|
19
20
|
unregisterSkeleton2DAnimationTargetBinder,
|
|
20
21
|
} from './skeleton2dAnimationTarget';
|
|
@@ -75,6 +76,24 @@ describe('getSkeleton2DAnimationTargetBinder', () => {
|
|
|
75
76
|
});
|
|
76
77
|
});
|
|
77
78
|
|
|
79
|
+
describe('getSkeleton2DAnimationTargetBinderKinds', () => {
|
|
80
|
+
it('enumerates sorted bound kinds and stops naming one after it is unregistered', () => {
|
|
81
|
+
registerSkeleton2DAnimationTargetBinder('acme.RopeTarget', () => {});
|
|
82
|
+
expect(getSkeleton2DAnimationTargetBinderKinds()).toEqual([
|
|
83
|
+
Skeleton2DAnimationTargetKind.Bone,
|
|
84
|
+
Skeleton2DAnimationTargetKind.Slot,
|
|
85
|
+
'acme.RopeTarget',
|
|
86
|
+
]);
|
|
87
|
+
|
|
88
|
+
unregisterSkeleton2DAnimationTargetBinder('acme.RopeTarget');
|
|
89
|
+
|
|
90
|
+
expect(getSkeleton2DAnimationTargetBinderKinds()).toEqual([
|
|
91
|
+
Skeleton2DAnimationTargetKind.Bone,
|
|
92
|
+
Skeleton2DAnimationTargetKind.Slot,
|
|
93
|
+
]);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
|
|
78
97
|
describe('registerSkeleton2DAnimationTargetBinder', () => {
|
|
79
98
|
it('binds a family this package does not own from the same single pass as bones', () => {
|
|
80
99
|
const seen: number[] = [];
|