@flighthq/skeleton2d 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2

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 (38) hide show
  1. package/README.md +2 -2
  2. package/dist/contract.d.ts +3 -0
  3. package/dist/contract.d.ts.map +1 -1
  4. package/dist/contract.js +3 -0
  5. package/dist/contract.js.map +1 -1
  6. package/dist/pathConstraint2D.d.ts.map +1 -1
  7. package/dist/pathConstraint2D.js +8 -2
  8. package/dist/pathConstraint2D.js.map +1 -1
  9. package/dist/skeleton2d.d.ts +2 -1
  10. package/dist/skeleton2d.d.ts.map +1 -1
  11. package/dist/skeleton2d.js +15 -16
  12. package/dist/skeleton2d.js.map +1 -1
  13. package/dist/skeleton2dAnimationTarget.d.ts +3 -1
  14. package/dist/skeleton2dAnimationTarget.d.ts.map +1 -1
  15. package/dist/skeleton2dAnimationTarget.js +22 -7
  16. package/dist/skeleton2dAnimationTarget.js.map +1 -1
  17. package/dist/skeleton2dDrawOrderTarget.d.ts +10 -9
  18. package/dist/skeleton2dDrawOrderTarget.d.ts.map +1 -1
  19. package/dist/skeleton2dDrawOrderTarget.js +17 -10
  20. package/dist/skeleton2dDrawOrderTarget.js.map +1 -1
  21. package/dist/skin2D.d.ts +2 -1
  22. package/dist/skin2D.d.ts.map +1 -1
  23. package/dist/skin2D.js +9 -3
  24. package/dist/skin2D.js.map +1 -1
  25. package/package.json +10 -10
  26. package/src/boundingBoxAttachment2D.test.ts +7 -1
  27. package/src/clippingAttachment2D.test.ts +8 -7
  28. package/src/deformAnimationTarget2D.test.ts +9 -8
  29. package/src/deformMeshAttachment2D.test.ts +29 -24
  30. package/src/deformPathAttachment2D.test.ts +26 -17
  31. package/src/ikConstraint2D.test.ts +11 -10
  32. package/src/pathConstraint2D.test.ts +63 -49
  33. package/src/pointAttachment2D.test.ts +7 -1
  34. package/src/regionAttachment2D.test.ts +12 -11
  35. package/src/skeleton2d.test.ts +12 -1
  36. package/src/skeleton2dConstraint.test.ts +12 -2
  37. package/src/slotDeform2D.test.ts +13 -12
  38. package/src/transformConstraint2D.test.ts +20 -19
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/skeleton2d`. The `@f
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/skeleton2d@0.5.1-next.815.cc08b93](https://github.com/flighthq/flight/tree/cc08b93ef981080fa86bdd5143dc61dbdbf2665b/packages/skeleton2d)
17
- - [License](https://github.com/flighthq/flight/blob/cc08b93ef981080fa86bdd5143dc61dbdbf2665b/LICENSE.md)
16
+ - [Source for @flighthq/skeleton2d@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/skeleton2d)
17
+ - [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
@@ -20,4 +20,7 @@ export * from './slotDeform2D';
20
20
  export * from './deformAnimationTarget2D';
21
21
  export * from './skeleton2dDrawOrderTarget';
22
22
  export * from './skin2D';
23
+ export { initializeSkin2D } from './skin2D';
24
+ export { initializeSkeleton2DBoneAnimationTarget, initializeSkeleton2DSlotAnimationTarget, } from './skeleton2dAnimationTarget';
25
+ export { initializeSkeleton2DDrawOrderAnimationTarget } from './skeleton2dDrawOrderTarget';
23
26
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,uCAAuC,EACvC,uCAAuC,GACxC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4CAA4C,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/contract.js CHANGED
@@ -20,4 +20,7 @@ export * from './slotDeform2D';
20
20
  export * from './deformAnimationTarget2D';
21
21
  export * from './skeleton2dDrawOrderTarget';
22
22
  export * from './skin2D';
23
+ export { initializeSkin2D } from './skin2D';
24
+ export { initializeSkeleton2DBoneAnimationTarget, initializeSkeleton2DSlotAnimationTarget, } from './skeleton2dAnimationTarget';
25
+ export { initializeSkeleton2DDrawOrderAnimationTarget } from './skeleton2dDrawOrderTarget';
23
26
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,uCAAuC,EACvC,uCAAuC,GACxC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4CAA4C,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pathConstraint2D.d.ts","sourceRoot":"","sources":["../src/pathConstraint2D.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,UAAU,EACV,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAsBlC,wBAAgB,sCAAsC,IAAI,IAAI,CAE7D;AAWD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAiFpH"}
1
+ {"version":3,"file":"pathConstraint2D.d.ts","sourceRoot":"","sources":["../src/pathConstraint2D.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,UAAU,EACV,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAiClC,wBAAgB,sCAAsC,IAAI,IAAI,CAE7D;AAWD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAiFpH"}
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity } from '@flighthq/entity/contract';
2
2
  import { RAD_TO_DEG } from '@flighthq/math/contract';
3
3
  import { getPathLength, getPathPositionAtDistance } from '@flighthq/path/contract';
4
4
  import { PathAttachment2DKind, Skeleton2DConstraintKind, Skeleton2DPathPositionMode, Skeleton2DPathRotateMode, Skeleton2DPathSpacingMode, } from '@flighthq/types/contract';
@@ -7,6 +7,11 @@ import { computeSkeleton2DBoneWorldTransform } from './skeleton2d';
7
7
  import { registerSkeleton2DConstraintSolver } from './skeleton2dConstraint';
8
8
  // 6 floats per bone in the flat world-transform buffer (a, b, c, d, tx, ty).
9
9
  const MATRIX_STRIDE = 6;
10
+ function assignPathFields(out, commands, data, winding) {
11
+ out.commands = commands;
12
+ out.data = data;
13
+ out.winding = winding;
14
+ }
10
15
  // Opts a bundle into path constraints. This is the only module in skeleton2d that reaches for
11
16
  // `@flighthq/path`, and a consumer that never calls this registrar never imports it — measured, not
12
17
  // assumed: a rig bundle importing skeleton2d and nothing path-related is byte-identical (2051 gzip bytes)
@@ -164,7 +169,8 @@ function wrapSkeleton2DAngle(degrees) {
164
169
  return value;
165
170
  }
166
171
  const MINIMUM_DETERMINANT = 1e-9;
167
- const _path = createEntity({ commands: [], data: [], winding: 'nonZero' });
172
+ const _path = allocateEntity();
173
+ assignPathFields(_path, [], [], 'nonZero');
168
174
  const _point = { x: 0, y: 0 };
169
175
  const _tangent = { x: 0, y: 0 };
170
176
  let _positions = new Float64Array(0);
@@ -1 +1 @@
1
- {"version":3,"file":"pathConstraint2D.js","sourceRoot":"","sources":["../src/pathConstraint2D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pathConstraint2D.js","sourceRoot":"","sources":["../src/pathConstraint2D.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AttachmentSkin2D, Bone2D, MatrixLike, Skeleton2D } from '@flighthq/types/contract';
1
+ import type { AttachmentSkin2D, Bone2D, EntityConstruction, MatrixLike, Skeleton2D } from '@flighthq/types/contract';
2
2
  export declare function cloneSkeleton2D(skeleton: Readonly<Skeleton2D>): Skeleton2D;
3
3
  export declare function computeSkeleton2DBoneMatrices(skeleton: Readonly<Skeleton2D>): void;
4
4
  export declare function computeSkeleton2DBoneWorldTransform(skeleton: Readonly<Skeleton2D>, boneIndex: number): void;
@@ -9,6 +9,7 @@ export declare function equalsSkeleton2D(a: Readonly<Skeleton2D>, b: Readonly<Sk
9
9
  export declare function getSkeleton2DBoneIndexByName(skeleton: Readonly<Skeleton2D>, name: string): number;
10
10
  export declare function getSkeleton2DBoneWorldMatrix(out: MatrixLike, skeleton: Readonly<Skeleton2D>, boneIndex: number): boolean;
11
11
  export declare function getSkeleton2DSkin(skeleton: Readonly<Skeleton2D>, name: string): AttachmentSkin2D | null;
12
+ export declare function initializeSkeleton2D(out: EntityConstruction<Skeleton2D>, boneMatrices: Float32Array, bones: Bone2D[], inverseBindMatrices: Float32Array, skins: Skeleton2D['skins'], slots: Skeleton2D['slots'], worldMatrices: Float32Array): void;
12
13
  export declare function setSkeleton2DBindPose(skeleton: Readonly<Skeleton2D>): void;
13
14
  export declare function setSkeleton2DSkin(skeleton: Skeleton2D, skin: Readonly<AttachmentSkin2D>): void;
14
15
  export declare function validateSkeleton2D(skeleton: Readonly<Skeleton2D>): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2d.d.ts","sourceRoot":"","sources":["../src/skeleton2d.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQjG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAU1E;AAMD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAYlF;AAOD,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAoF3G;AAUD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAGrF;AAOD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,UAAU,CAAC,OAAO,CAAQ,GAAG,UAAU,CAS/F;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAG5D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAyB1F;AAGD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjG;AAID,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAIT;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOvG;AAGD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAU1E;AAeD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAM9F;AAID,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,IAAI,CAiBhF"}
1
+ {"version":3,"file":"skeleton2d.d.ts","sourceRoot":"","sources":["../src/skeleton2d.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQrH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAY1E;AAMD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAYlF;AAOD,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAoF3G;AAUD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAGrF;AAOD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,UAAU,CAAC,OAAO,CAAQ,GAAG,UAAU,CAa/F;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAG5D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAyB1F;AAGD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjG;AAID,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAIT;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOvG;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACnC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EAAE,EACf,mBAAmB,EAAE,YAAY,EACjC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,EAC1B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,EAC1B,aAAa,EAAE,YAAY,GAC1B,IAAI,CAON;AAGD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAU1E;AAeD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAM9F;AAID,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,IAAI,CAiBhF"}
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { inverseMatrix, multiplyMatrix } from '@flighthq/geometry/contract';
3
3
  import { DEG_TO_RAD } from '@flighthq/math/contract';
4
4
  // 6 floats per bone in the flat 2×3 affine buffers (a, b, c, d, tx, ty), matching the Matrix field order.
@@ -7,14 +7,9 @@ const MATRIX_STRIDE = 6;
7
7
  // posable skeleton. Slots and their attachments are SHARED (attachments are immutable setup data); use a
8
8
  // skin/slot editing layer for per-instance attachment swaps.
9
9
  export function cloneSkeleton2D(skeleton) {
10
- return createEntity({
11
- boneMatrices: skeleton.boneMatrices.slice(),
12
- bones: skeleton.bones.map((bone) => ({ ...bone })),
13
- inverseBindMatrices: skeleton.inverseBindMatrices.slice(),
14
- skins: skeleton.skins,
15
- slots: skeleton.slots === null || skeleton.slots === undefined ? skeleton.slots : skeleton.slots.map((s) => ({ ...s })),
16
- worldMatrices: skeleton.worldMatrices.slice(),
17
- });
10
+ const out = allocateEntity();
11
+ initializeSkeleton2D(out, skeleton.boneMatrices.slice(), skeleton.bones.map((bone) => ({ ...bone })), skeleton.inverseBindMatrices.slice(), skeleton.skins, skeleton.slots === null || skeleton.slots === undefined ? skeleton.slots : skeleton.slots.map((s) => ({ ...s })), skeleton.worldMatrices.slice());
12
+ return finishEntity(out);
18
13
  }
19
14
  // Fills the skin palette `boneMatrices[i] = worldMatrices[i] × inverseBindMatrices[i]` — the matrix that
20
15
  // takes a bind-pose (setup) mesh vertex to its posed position. Call after `computeSkeleton2DWorldTransforms`
@@ -148,13 +143,9 @@ export function computeSkeleton2DWorldTransforms(skeleton) {
148
143
  // (each bone's `parentIndex` < its own index); `validateSkeleton2D` checks this.
149
144
  export function createSkeleton2D(bones, slots = null) {
150
145
  const count = bones.length;
151
- return createEntity({
152
- boneMatrices: new Float32Array(count * MATRIX_STRIDE),
153
- bones,
154
- inverseBindMatrices: new Float32Array(count * MATRIX_STRIDE),
155
- slots,
156
- worldMatrices: new Float32Array(count * MATRIX_STRIDE),
157
- });
146
+ const out = allocateEntity();
147
+ initializeSkeleton2D(out, new Float32Array(count * MATRIX_STRIDE), bones, new Float32Array(count * MATRIX_STRIDE), null, slots, new Float32Array(count * MATRIX_STRIDE));
148
+ return finishEntity(out);
158
149
  }
159
150
  // Detaches bones/slots so the skeleton is GC-eligible. `dispose*` (not `destroy*`): a Skeleton2D owns no
160
151
  // GPU or native resource — its buffers are plain GC memory — so this only clears references.
@@ -217,6 +208,14 @@ export function getSkeleton2DSkin(skeleton, name) {
217
208
  }
218
209
  return null;
219
210
  }
211
+ export function initializeSkeleton2D(out, boneMatrices, bones, inverseBindMatrices, skins, slots, worldMatrices) {
212
+ out.boneMatrices = boneMatrices;
213
+ out.bones = bones;
214
+ out.inverseBindMatrices = inverseBindMatrices;
215
+ out.skins = skins;
216
+ out.slots = slots;
217
+ out.worldMatrices = worldMatrices;
218
+ }
220
219
  // inverse-bind at identity (`inverseMatrix` returns false) rather than producing NaNs.
221
220
  export function setSkeleton2DBindPose(skeleton) {
222
221
  const world = skeleton.worldMatrices;
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2d.js","sourceRoot":"","sources":["../src/skeleton2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skeleton2d.js","sourceRoot":"","sources":["../src/skeleton2d.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Attachment2D, Skeleton2DAnimationPath, Skeleton2DAnimationTarget, Skeleton2DAnimationTargetBinder, Skeleton2DAnimationTargetKind, Skeleton2DSlotAnimationPath, Skeleton2DSlotAnimationTarget } from '@flighthq/types/contract';
1
+ import type { Attachment2D, EntityConstruction, Skeleton2DAnimationPath, Skeleton2DAnimationTarget, Skeleton2DAnimationTargetBinder, Skeleton2DAnimationTargetKind, Skeleton2DSlotAnimationPath, Skeleton2DSlotAnimationTarget } from '@flighthq/types/contract';
2
2
  export declare function createSkeleton2DBoneAnimationTarget(boneIndex: number, path: Skeleton2DAnimationPath): Skeleton2DAnimationTarget;
3
3
  export declare function createSkeleton2DSlotAnimationTarget(slotIndex: number, path: Skeleton2DSlotAnimationPath, attachments?: readonly (Attachment2D | null)[] | null): Skeleton2DSlotAnimationTarget;
4
4
  /**
@@ -11,6 +11,8 @@ export declare function createSkeleton2DSlotAnimationTarget(slotIndex: number, p
11
11
  export declare function findSkeleton2DStepKeyframe(times: ArrayLike<number>, time: number): number;
12
12
  export declare function getSkeleton2DAnimationTargetBinder(kind: Skeleton2DAnimationTargetKind): Skeleton2DAnimationTargetBinder | null;
13
13
  export declare function getSkeleton2DAnimationTargetBinderKinds(): readonly Skeleton2DAnimationTargetKind[];
14
+ export declare function initializeSkeleton2DBoneAnimationTarget(out: EntityConstruction<Skeleton2DAnimationTarget>, boneIndex: number, path: Skeleton2DAnimationPath): void;
15
+ export declare function initializeSkeleton2DSlotAnimationTarget(out: EntityConstruction<Skeleton2DSlotAnimationTarget>, slotIndex: number, path: Skeleton2DSlotAnimationPath, attachments?: readonly (Attachment2D | null)[] | null): void;
14
16
  export declare function registerSkeleton2DAnimationTargetBinder(kind: Skeleton2DAnimationTargetKind, bind: Skeleton2DAnimationTargetBinder): void;
15
17
  export declare function unregisterSkeleton2DAnimationTargetBinder(kind: Skeleton2DAnimationTargetKind): void;
16
18
  //# sourceMappingURL=skeleton2dAnimationTarget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2dAnimationTarget.d.ts","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"AASA,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
+ {"version":3,"file":"skeleton2dAnimationTarget.d.ts","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,YAAY,EACZ,kBAAkB,EAGlB,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAE9B,MAAM,0BAA0B,CAAC;AASlC,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,uBAAuB,GAC5B,yBAAyB,CAI3B;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,2BAA2B,EACjC,WAAW,GAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,IAAW,GAC1D,6BAA6B,CAI/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;AAID,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,kBAAkB,CAAC,yBAAyB,CAAC,EAClD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,CAIN;AAID,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,kBAAkB,CAAC,6BAA6B,CAAC,EACtD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,2BAA2B,EACjC,WAAW,GAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,IAAW,GAC1D,IAAI,CAKN;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,17 +1,17 @@
1
1
  import { sampleAnimationTrack } from '@flighthq/animation/contract';
2
- import { createEntity } from '@flighthq/entity/contract';
2
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
3
3
  import { createKeyedTable, getRegistryTableEntry, getRegistryTableKeys, withRegistryTableEntry, withoutRegistryTableEntry, } from '@flighthq/registry/contract';
4
4
  import { Skeleton2DAnimationPath as BonePath, Skeleton2DAnimationTargetKind as TargetKind, Skeleton2DSlotAnimationPath as SlotPath, } from '@flighthq/types/contract';
5
5
  import { reportSkeleton2DCoercedInterpolation } from './skeleton2dGuards';
6
- // The binding target for a bone transform channel. Prefer this over a literal: `kind` is what the binder
7
- // dispatches on, and a target that omits it binds to nothing.
8
6
  export function createSkeleton2DBoneAnimationTarget(boneIndex, path) {
9
- return createEntity({ boneIndex, kind: TargetKind.Bone, path });
7
+ const out = allocateEntity();
8
+ initializeSkeleton2DBoneAnimationTarget(out, boneIndex, path);
9
+ return finishEntity(out);
10
10
  }
11
- // The binding target for a slot appearance channel. `attachments` is the lookup table an Attachment
12
- // channel's index track resolves through, and is left null on a colour channel.
13
11
  export function createSkeleton2DSlotAnimationTarget(slotIndex, path, attachments = null) {
14
- return createEntity({ attachments, kind: TargetKind.Slot, path, slotIndex });
12
+ const out = allocateEntity();
13
+ initializeSkeleton2DSlotAnimationTarget(out, slotIndex, path, attachments);
14
+ return finishEntity(out);
15
15
  }
16
16
  /**
17
17
  * The last keyframe at or before `time`, or -1 when the track holds none. Before the first keyframe the
@@ -42,6 +42,21 @@ export function getSkeleton2DAnimationTargetBinderKinds() {
42
42
  getRegistryTableKeys(kinds, getSkeleton2DAnimationTargetBinderRegistry());
43
43
  return kinds;
44
44
  }
45
+ // The binding target for a bone transform channel. Prefer this over a literal: `kind` is what the binder
46
+ // dispatches on, and a target that omits it binds to nothing.
47
+ export function initializeSkeleton2DBoneAnimationTarget(out, boneIndex, path) {
48
+ out.boneIndex = boneIndex;
49
+ out.kind = TargetKind.Bone;
50
+ out.path = path;
51
+ }
52
+ // The binding target for a slot appearance channel. `attachments` is the lookup table an Attachment
53
+ // channel's index track resolves through, and is left null on a colour channel.
54
+ export function initializeSkeleton2DSlotAnimationTarget(out, slotIndex, path, attachments = null) {
55
+ out.attachments = attachments;
56
+ out.kind = TargetKind.Slot;
57
+ out.path = path;
58
+ out.slotIndex = slotIndex;
59
+ }
45
60
  // Claims a target kind for a binder, so a family this package does not own — a constraint solver's
46
61
  // channels, a vendor's own rig feature — poses through the same single pass as bones and slots instead of
47
62
  // needing a second one. Last write wins, which is what lets a caller replace a built-in binding; collisions
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2dAnimationTarget.js","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skeleton2dAnimationTarget.js","sourceRoot":"","sources":["../src/skeleton2dAnimationTarget.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,4 @@
1
- import type { AnimationChannel, Node, NodeOrderList, NodeTraits, Skeleton2DDrawOrderAnimationTarget, Skeleton2DDrawOrderTimeline } from '@flighthq/types/contract';
2
- /**
3
- * The binding target for a draw-order channel. Prefer this over a literal: `kind` is what the binder
4
- * dispatches on, and a target that omits it binds to nothing.
5
- *
6
- * `nodes` maps slot index to the display node that slot draws, `null` where it draws nothing. `orderList`
7
- * is the caller's own list — ordering is never node state — and the binder fills it rather than applying
8
- * it, leaving `applyNodeOrderList` an explicit step the caller takes once per frame.
9
- */
1
+ import type { AnimationChannel, EntityConstruction, Node, NodeOrderList, NodeTraits, Skeleton2DDrawOrderAnimationTarget, Skeleton2DDrawOrderTimeline } from '@flighthq/types/contract';
10
2
  export declare function createSkeleton2DDrawOrderAnimationTarget<Traits extends object = NodeTraits>(nodes: readonly (Node<Traits> | null)[], orderList: NodeOrderList<Traits>): Skeleton2DDrawOrderAnimationTarget<Traits>;
11
3
  /**
12
4
  * Turns an import's draw-order timeline into the channel that drives it — the **scene-side step** the
@@ -26,6 +18,15 @@ export declare function createSkeleton2DDrawOrderAnimationTarget<Traits extends
26
18
  * of per-keyframe orderings — a partial final ordering would silently drop the slots past its end.
27
19
  */
28
20
  export declare function createSkeleton2DDrawOrderChannel<Traits extends object = NodeTraits>(timeline: Readonly<Skeleton2DDrawOrderTimeline>, nodes: readonly (Node<Traits> | null)[], orderList: NodeOrderList<Traits>): AnimationChannel | null;
21
+ /**
22
+ * The binding target for a draw-order channel. Prefer this over a literal: `kind` is what the binder
23
+ * dispatches on, and a target that omits it binds to nothing.
24
+ *
25
+ * `nodes` maps slot index to the display node that slot draws, `null` where it draws nothing. `orderList`
26
+ * is the caller's own list — ordering is never node state — and the binder fills it rather than applying
27
+ * it, leaving `applyNodeOrderList` an explicit step the caller takes once per frame.
28
+ */
29
+ export declare function initializeSkeleton2DDrawOrderAnimationTarget<Traits extends object = NodeTraits>(out: EntityConstruction<Skeleton2DDrawOrderAnimationTarget<Traits>>, nodes: readonly (Node<Traits> | null)[], orderList: NodeOrderList<Traits>): void;
29
30
  /**
30
31
  * Claims the draw-order kind for its binder.
31
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2dDrawOrderTarget.d.ts","sourceRoot":"","sources":["../src/skeleton2dDrawOrderTarget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,aAAa,EACb,UAAU,EACV,kCAAkC,EAClC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACzF,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EACvC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,kCAAkC,CAAC,MAAM,CAAC,CAE5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACjF,QAAQ,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAC/C,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EACvC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,gBAAgB,GAAG,IAAI,CAezB;AAED;;;;;;GAMG;AACH,wBAAgB,0CAA0C,IAAI,IAAI,CAEjE;AAED,wBAAgB,4CAA4C,IAAI,IAAI,CAEnE"}
1
+ {"version":3,"file":"skeleton2dDrawOrderTarget.d.ts","sourceRoot":"","sources":["../src/skeleton2dDrawOrderTarget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,EACJ,aAAa,EACb,UAAU,EACV,kCAAkC,EAClC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,wBAAgB,wCAAwC,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACzF,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EACvC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,kCAAkC,CAAC,MAAM,CAAC,CAI5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACjF,QAAQ,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAC/C,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EACvC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,gBAAgB,GAAG,IAAI,CAezB;AAED;;;;;;;GAOG;AACH,wBAAgB,4CAA4C,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EAC7F,GAAG,EAAE,kBAAkB,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,EACnE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EACvC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,IAAI,CAIN;AAED;;;;;;GAMG;AACH,wBAAgB,0CAA0C,IAAI,IAAI,CAEjE;AAED,wBAAgB,4CAA4C,IAAI,IAAI,CAEnE"}
@@ -1,19 +1,13 @@
1
1
  import { createAnimationChannel, createAnimationTrack } from '@flighthq/animation/contract';
2
- import { createEntity } from '@flighthq/entity/contract';
2
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
3
3
  import { addNodeOrderListEntry, clearNodeOrderList } from '@flighthq/node/contract';
4
4
  import { Skeleton2DAnimationTargetKind as TargetKind } from '@flighthq/types/contract';
5
5
  import { findSkeleton2DStepKeyframe, registerSkeleton2DAnimationTargetBinder, unregisterSkeleton2DAnimationTargetBinder, } from './skeleton2dAnimationTarget';
6
6
  import { reportSkeleton2DCoercedInterpolation } from './skeleton2dGuards';
7
- /**
8
- * The binding target for a draw-order channel. Prefer this over a literal: `kind` is what the binder
9
- * dispatches on, and a target that omits it binds to nothing.
10
- *
11
- * `nodes` maps slot index to the display node that slot draws, `null` where it draws nothing. `orderList`
12
- * is the caller's own list — ordering is never node state — and the binder fills it rather than applying
13
- * it, leaving `applyNodeOrderList` an explicit step the caller takes once per frame.
14
- */
15
7
  export function createSkeleton2DDrawOrderAnimationTarget(nodes, orderList) {
16
- return createEntity({ kind: TargetKind.DrawOrder, nodes, orderList });
8
+ const out = allocateEntity();
9
+ initializeSkeleton2DDrawOrderAnimationTarget(out, nodes, orderList);
10
+ return finishEntity(out);
17
11
  }
18
12
  /**
19
13
  * Turns an import's draw-order timeline into the channel that drives it — the **scene-side step** the
@@ -46,6 +40,19 @@ export function createSkeleton2DDrawOrderChannel(timeline, nodes, orderList) {
46
40
  values: timeline.orderings,
47
41
  }), createSkeleton2DDrawOrderAnimationTarget(nodes, orderList));
48
42
  }
43
+ /**
44
+ * The binding target for a draw-order channel. Prefer this over a literal: `kind` is what the binder
45
+ * dispatches on, and a target that omits it binds to nothing.
46
+ *
47
+ * `nodes` maps slot index to the display node that slot draws, `null` where it draws nothing. `orderList`
48
+ * is the caller's own list — ordering is never node state — and the binder fills it rather than applying
49
+ * it, leaving `applyNodeOrderList` an explicit step the caller takes once per frame.
50
+ */
51
+ export function initializeSkeleton2DDrawOrderAnimationTarget(out, nodes, orderList) {
52
+ out.kind = TargetKind.DrawOrder;
53
+ out.nodes = nodes;
54
+ out.orderList = orderList;
55
+ }
49
56
  /**
50
57
  * Claims the draw-order kind for its binder.
51
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2dDrawOrderTarget.js","sourceRoot":"","sources":["../src/skeleton2dDrawOrderTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skeleton2dDrawOrderTarget.js","sourceRoot":"","sources":["../src/skeleton2dDrawOrderTarget.ts"],"names":[],"mappings":"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"}
package/dist/skin2D.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import type { Skin2D } from '@flighthq/types/contract';
1
+ import type { Skin2D, EntityConstruction } from '@flighthq/types/contract';
2
2
  export declare function createSkin2D(influenceCounts: Uint16Array, influences: Float32Array): Skin2D;
3
+ export declare function initializeSkin2D(out: EntityConstruction<Skin2D>, influenceCounts: Uint16Array, influences: Float32Array): void;
3
4
  //# sourceMappingURL=skin2D.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skin2D.d.ts","sourceRoot":"","sources":["../src/skin2D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMvD,wBAAgB,YAAY,CAAC,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,GAAG,MAAM,CAE3F"}
1
+ {"version":3,"file":"skin2D.d.ts","sourceRoot":"","sources":["../src/skin2D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,wBAAgB,YAAY,CAAC,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,GAAG,MAAM,CAI3F;AAMD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAC/B,eAAe,EAAE,WAAW,EAC5B,UAAU,EAAE,YAAY,GACvB,IAAI,CAGN"}
package/dist/skin2D.js CHANGED
@@ -1,9 +1,15 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ export function createSkin2D(influenceCounts, influences) {
3
+ const out = allocateEntity();
4
+ initializeSkin2D(out, influenceCounts, influences);
5
+ return finishEntity(out);
6
+ }
2
7
  // Allocates a weight binding over the two streams a caller already owns. The arrays are adopted, not
3
8
  // copied: an importer builds them once at their final length and hands ownership over, and a deformer
4
9
  // reads them every frame, so a copy here would be pure waste. A caller that must keep its own copy
5
10
  // slices before calling.
6
- export function createSkin2D(influenceCounts, influences) {
7
- return createEntity({ influenceCounts, influences });
11
+ export function initializeSkin2D(out, influenceCounts, influences) {
12
+ out.influenceCounts = influenceCounts;
13
+ out.influences = influences;
8
14
  }
9
15
  //# sourceMappingURL=skin2D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skin2D.js","sourceRoot":"","sources":["../src/skin2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qGAAqG;AACrG,sGAAsG;AACtG,mGAAmG;AACnG,yBAAyB;AACzB,MAAM,UAAU,YAAY,CAAC,eAA4B,EAAE,UAAwB;IACjF,OAAO,YAAY,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"skin2D.js","sourceRoot":"","sources":["../src/skin2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,MAAM,UAAU,YAAY,CAAC,eAA4B,EAAE,UAAwB;IACjF,MAAM,GAAG,GAAG,cAAc,EAAU,CAAC;IACrC,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,qGAAqG;AACrG,sGAAsG;AACtG,mGAAmG;AACnG,yBAAyB;AACzB,MAAM,UAAU,gBAAgB,CAC9B,GAA+B,EAC/B,eAA4B,EAC5B,UAAwB;IAExB,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;IACtC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/skeleton2d",
3
- "version": "0.5.1-next.815.cc08b93",
3
+ "version": "0.5.1-next.903.f434bc2",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,15 +38,15 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/animation": "0.5.1-next.815.cc08b93",
42
- "@flighthq/entity": "0.5.1-next.815.cc08b93",
43
- "@flighthq/geometry": "0.5.1-next.815.cc08b93",
44
- "@flighthq/log": "0.5.1-next.815.cc08b93",
45
- "@flighthq/node": "0.5.1-next.815.cc08b93",
46
- "@flighthq/math": "0.5.1-next.815.cc08b93",
47
- "@flighthq/path": "0.5.1-next.815.cc08b93",
48
- "@flighthq/registry": "0.5.1-next.815.cc08b93",
49
- "@flighthq/types": "0.5.1-next.815.cc08b93"
41
+ "@flighthq/animation": "0.5.1-next.903.f434bc2",
42
+ "@flighthq/entity": "0.5.1-next.903.f434bc2",
43
+ "@flighthq/geometry": "0.5.1-next.903.f434bc2",
44
+ "@flighthq/log": "0.5.1-next.903.f434bc2",
45
+ "@flighthq/node": "0.5.1-next.903.f434bc2",
46
+ "@flighthq/math": "0.5.1-next.903.f434bc2",
47
+ "@flighthq/path": "0.5.1-next.903.f434bc2",
48
+ "@flighthq/registry": "0.5.1-next.903.f434bc2",
49
+ "@flighthq/types": "0.5.1-next.903.f434bc2"
50
50
  },
51
51
  "devDependencies": {
52
52
  "typescript": "^5.3.0"
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, BoundingBoxAttachment2D, Skin2D } from '@flighthq/types/contract';
2
3
  import { BoundingBoxAttachment2DKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -24,7 +25,12 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
24
25
  }
25
26
 
26
27
  function box(skin: Skin2D | null, vertices: Float32Array | null, pointCount: number): BoundingBoxAttachment2D {
27
- return { kind: BoundingBoxAttachment2DKind, pointCount, skin, vertices };
28
+ const out = allocateEntity<BoundingBoxAttachment2D>();
29
+ out.kind = BoundingBoxAttachment2DKind;
30
+ out.pointCount = pointCount;
31
+ out.skin = skin;
32
+ out.vertices = vertices;
33
+ return finishEntity(out) as BoundingBoxAttachment2D;
28
34
  }
29
35
 
30
36
  describe('computeSkeleton2DBoundingBoxAttachmentVertices', () => {
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, ClippingAttachment2D } from '@flighthq/types/contract';
2
3
  import { ClippingAttachment2DKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -26,13 +27,13 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
26
27
  }
27
28
 
28
29
  function clip(endSlotIndex: number, vertices: Float32Array | null = null): ClippingAttachment2D {
29
- return {
30
- endSlotIndex,
31
- kind: ClippingAttachment2DKind,
32
- pointCount: vertices === null ? 0 : vertices.length / 2,
33
- skin: null,
34
- vertices,
35
- };
30
+ const out = allocateEntity<ClippingAttachment2D>();
31
+ out.endSlotIndex = endSlotIndex;
32
+ out.kind = ClippingAttachment2DKind;
33
+ out.pointCount = vertices === null ? 0 : vertices.length / 2;
34
+ out.skin = null;
35
+ out.vertices = vertices;
36
+ return finishEntity(out) as ClippingAttachment2D;
36
37
  }
37
38
 
38
39
  describe('computeSkeleton2DClippingAttachmentVertices', () => {
@@ -1,4 +1,5 @@
1
1
  import { createAnimationChannel, createAnimationClip, createAnimationTrack } from '@flighthq/animation/contract';
2
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
3
  import type { Bone2D, MeshAttachment2D, Skin2D, Slot2D } from '@flighthq/types/contract';
3
4
  import { MeshAttachment2DKind, Skeleton2DAnimationTargetKind, TransformMode2D } from '@flighthq/types/contract';
4
5
  import { afterEach, describe, expect, it } from 'vitest';
@@ -32,14 +33,14 @@ function makeBone(): Bone2D {
32
33
 
33
34
  function mesh(pointCount: number): MeshAttachment2D {
34
35
  const skin: Skin2D = createSkin2D(new Uint16Array(pointCount).fill(1), new Float32Array(pointCount * 4));
35
- return {
36
- kind: MeshAttachment2DKind,
37
- skin,
38
- triangles: new Uint16Array(),
39
- uvs: new Float32Array(pointCount * 2),
40
- vertexCount: pointCount,
41
- vertices: null,
42
- };
36
+ const out = allocateEntity<any>();
37
+ out.kind = MeshAttachment2DKind;
38
+ out.skin = skin;
39
+ out.triangles = new Uint16Array();
40
+ out.uvs = new Float32Array(pointCount * 2);
41
+ out.vertexCount = pointCount;
42
+ out.vertices = null;
43
+ return finishEntity(out) as MeshAttachment2D;
43
44
  }
44
45
 
45
46
  function rig(attachment: MeshAttachment2D | null): {
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, MeshAttachment2D, Skeleton2DDeformLengthMismatch, Skin2D } from '@flighthq/types/contract';
2
3
  import { MeshAttachment2DKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -25,14 +26,14 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
25
26
  }
26
27
 
27
28
  function weightedMesh(skin: Skin2D, vertexCount: number): MeshAttachment2D {
28
- return {
29
- kind: MeshAttachment2DKind,
30
- skin,
31
- triangles: new Uint16Array(),
32
- uvs: new Float32Array(vertexCount * 2),
33
- vertexCount,
34
- vertices: null,
35
- };
29
+ const out = allocateEntity<MeshAttachment2D>();
30
+ out.kind = MeshAttachment2DKind;
31
+ out.skin = skin;
32
+ out.triangles = new Uint16Array();
33
+ out.uvs = new Float32Array(vertexCount * 2);
34
+ out.vertexCount = vertexCount;
35
+ out.vertices = null;
36
+ return finishEntity(out) as MeshAttachment2D;
36
37
  }
37
38
 
38
39
  describe('deformSkeleton2DMeshAttachment', () => {
@@ -102,14 +103,16 @@ describe('deformSkeleton2DMeshAttachment', () => {
102
103
  it('adds a rigid deform offset to the setup vertices before the bone transform', () => {
103
104
  const s = createSkeleton2D([makeBone({ x: 5, rotation: 90 })]);
104
105
  computeSkeleton2DWorldTransforms(s);
105
- const mesh: MeshAttachment2D = {
106
- kind: MeshAttachment2DKind,
107
- skin: null,
108
- triangles: new Uint16Array(),
109
- uvs: new Float32Array(2),
110
- vertexCount: 1,
111
- vertices: new Float32Array([2, 0]),
112
- };
106
+ const mesh = (() => {
107
+ const out = allocateEntity<MeshAttachment2D>();
108
+ out.kind = MeshAttachment2DKind;
109
+ out.skin = null;
110
+ out.triangles = new Uint16Array();
111
+ out.uvs = new Float32Array(2);
112
+ out.vertexCount = 1;
113
+ out.vertices = new Float32Array([2, 0]);
114
+ return finishEntity(out) as MeshAttachment2D;
115
+ })();
113
116
  const out = new Float32Array(2);
114
117
 
115
118
  deformSkeleton2DMeshAttachment(out, mesh, s, 0, new Float32Array([1, 0]));
@@ -137,14 +140,16 @@ describe('deformSkeleton2DMeshAttachment', () => {
137
140
  const s = createSkeleton2D([makeBone({ x: 5, rotation: 90 })]);
138
141
  computeSkeleton2DWorldTransforms(s);
139
142
  const verts = new Float32Array([2, 0]); // one vertex, local to the bone
140
- const mesh: MeshAttachment2D = {
141
- kind: MeshAttachment2DKind,
142
- skin: null,
143
- triangles: new Uint16Array(),
144
- uvs: new Float32Array(2),
145
- vertexCount: 1,
146
- vertices: verts,
147
- };
143
+ const mesh = (() => {
144
+ const out = allocateEntity<MeshAttachment2D>();
145
+ out.kind = MeshAttachment2DKind;
146
+ out.skin = null;
147
+ out.triangles = new Uint16Array();
148
+ out.uvs = new Float32Array(2);
149
+ out.vertexCount = 1;
150
+ out.vertices = verts;
151
+ return finishEntity(out) as MeshAttachment2D;
152
+ })();
148
153
  // Deform in place (out === vertices) to exercise alias safety.
149
154
  deformSkeleton2DMeshAttachment(verts, mesh, s, 0);
150
155
  // (2,0) rotated 90° = (0,2), + (5,0) → (5,2).
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, Path, PathAttachment2D, Skeleton2DDeformLengthMismatch, Skin2D } from '@flighthq/types/contract';
2
3
  import { EntityRuntimeKey, PathAttachment2DKind, PathCommand, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -29,7 +30,14 @@ function emptyPath(): Path {
29
30
  }
30
31
 
31
32
  function weightedPath(skin: Skin2D, pointCount: number, commands: number[]): PathAttachment2D {
32
- return { commands, kind: PathAttachment2DKind, pointCount, skin, vertices: null, winding: 'evenOdd' };
33
+ const out = allocateEntity<any>();
34
+ out.commands = commands;
35
+ out.kind = PathAttachment2DKind;
36
+ out.pointCount = pointCount;
37
+ out.skin = skin;
38
+ out.vertices = null;
39
+ out.winding = 'evenOdd';
40
+ return finishEntity(out) as PathAttachment2D;
33
41
  }
34
42
 
35
43
  describe('deformSkeleton2DPathAttachment', () => {
@@ -141,14 +149,16 @@ describe('deformSkeleton2DPathAttachment', () => {
141
149
  it('transforms a rigid path by the slot bone world matrix', () => {
142
150
  const skeleton = createSkeleton2D([makeBone({ x: 5, rotation: 90 })]);
143
151
  computeSkeleton2DWorldTransforms(skeleton);
144
- const attachment: PathAttachment2D = {
145
- commands: [PathCommand.MOVE_TO, PathCommand.LINE_TO],
146
- kind: PathAttachment2DKind,
147
- pointCount: 2,
148
- skin: null,
149
- vertices: new Float32Array([2, 0, 0, 3]),
150
- winding: 'nonZero',
151
- };
152
+ const attachment = (() => {
153
+ const out = allocateEntity<any>();
154
+ out.commands = [PathCommand.MOVE_TO, PathCommand.LINE_TO];
155
+ out.kind = PathAttachment2DKind;
156
+ out.pointCount = 2;
157
+ out.skin = null;
158
+ out.vertices = new Float32Array([2, 0, 0, 3]);
159
+ out.winding = 'nonZero';
160
+ return finishEntity(out) as PathAttachment2D;
161
+ })();
152
162
  const out = emptyPath();
153
163
 
154
164
  deformSkeleton2DPathAttachment(out, attachment, skeleton, 0, new Float32Array([0, 0, 0, 0]));
@@ -162,14 +172,13 @@ describe('deformSkeleton2DPathAttachment', () => {
162
172
  it('writes nothing for a rigid path with no setup vertices rather than throwing', () => {
163
173
  const skeleton = createSkeleton2D([makeBone()]);
164
174
  computeSkeleton2DWorldTransforms(skeleton);
165
- const attachment: PathAttachment2D = {
166
- commands: [],
167
- kind: PathAttachment2DKind,
168
- pointCount: 0,
169
- skin: null,
170
- vertices: null,
171
- winding: 'nonZero',
172
- };
175
+ const attachment = allocateEntity<PathAttachment2D>();
176
+ attachment.commands = [];
177
+ attachment.kind = PathAttachment2DKind;
178
+ attachment.pointCount = 0;
179
+ attachment.skin = null;
180
+ attachment.vertices = null;
181
+ attachment.winding = 'nonZero';
173
182
  const out = emptyPath();
174
183
 
175
184
  expect(() => deformSkeleton2DPathAttachment(out, attachment, skeleton, 0)).not.toThrow();
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, Skeleton2D, Skeleton2DIkConstraint } from '@flighthq/types/contract';
2
3
  import { Skeleton2DConstraintKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { afterEach, describe, expect, it } from 'vitest';
@@ -29,16 +30,16 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
29
30
  }
30
31
 
31
32
  function ik(overrides: Partial<Skeleton2DIkConstraint> = {}): Skeleton2DIkConstraint {
32
- return {
33
- bendPositive: true,
34
- boneIndices: [0],
35
- compress: false,
36
- kind: Skeleton2DConstraintKind.Ik as 'Skeleton2D.IkConstraint',
37
- mix: 1,
38
- stretch: false,
39
- targetBoneIndex: 1,
40
- ...overrides,
41
- };
33
+ const out = allocateEntity<any>();
34
+ out.bendPositive = true;
35
+ out.boneIndices = [0];
36
+ out.compress = false;
37
+ out.kind = Skeleton2DConstraintKind.Ik as 'Skeleton2D.IkConstraint';
38
+ out.mix = 1;
39
+ out.stretch = false;
40
+ out.targetBoneIndex = 1;
41
+ Object.assign(out, overrides);
42
+ return finishEntity(out) as Skeleton2DIkConstraint;
42
43
  }
43
44
 
44
45
  // The world position of a bone's TIP — its origin plus its length along its own x axis. That is the point
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, PathAttachment2D, Skeleton2D, Skeleton2DPathConstraint, Slot2D } from '@flighthq/types/contract';
2
3
  import {
3
4
  PathAttachment2DKind,
@@ -38,14 +39,14 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
38
39
  // A rigid straight path from (0,0) to (100,0) — 100 units of arc length, so a distance IS an x coordinate
39
40
  // and every assertion below can be read off by hand.
40
41
  function straightPath(): PathAttachment2D {
41
- return {
42
- commands: [PathCommand.MOVE_TO, PathCommand.LINE_TO],
43
- kind: PathAttachment2DKind,
44
- pointCount: 2,
45
- skin: null,
46
- vertices: new Float32Array([0, 0, 100, 0]),
47
- winding: 'nonZero',
48
- };
42
+ const out = allocateEntity<PathAttachment2D>();
43
+ out.commands = [PathCommand.MOVE_TO, PathCommand.LINE_TO];
44
+ out.kind = PathAttachment2DKind;
45
+ out.pointCount = 2;
46
+ out.skin = null;
47
+ out.vertices = new Float32Array([0, 0, 100, 0]);
48
+ out.winding = 'nonZero' as const;
49
+ return finishEntity(out) as PathAttachment2D;
49
50
  }
50
51
 
51
52
  function pathSlot(attachment: PathAttachment2D | null): Slot2D {
@@ -53,21 +54,21 @@ function pathSlot(attachment: PathAttachment2D | null): Slot2D {
53
54
  }
54
55
 
55
56
  function constraint(overrides: Partial<Skeleton2DPathConstraint> = {}): Skeleton2DPathConstraint {
56
- return {
57
- boneIndices: [1],
58
- kind: Skeleton2DConstraintKind.Path as 'Skeleton2D.PathConstraint',
59
- mix: 1,
60
- mixRotate: 0,
61
- mixX: 1,
62
- mixY: 1,
63
- position: 0,
64
- positionMode: Skeleton2DPathPositionMode.Fixed,
65
- rotateMode: Skeleton2DPathRotateMode.Tangent,
66
- spacing: 0,
67
- spacingMode: Skeleton2DPathSpacingMode.Fixed,
68
- targetSlotIndex: 0,
69
- ...overrides,
70
- };
57
+ const out = allocateEntity<any>();
58
+ out.boneIndices = [1];
59
+ out.kind = Skeleton2DConstraintKind.Path as 'Skeleton2D.PathConstraint';
60
+ out.mix = 1;
61
+ out.mixRotate = 0;
62
+ out.mixX = 1;
63
+ out.mixY = 1;
64
+ out.position = 0;
65
+ out.positionMode = Skeleton2DPathPositionMode.Fixed;
66
+ out.rotateMode = Skeleton2DPathRotateMode.Tangent;
67
+ out.spacing = 0;
68
+ out.spacingMode = Skeleton2DPathSpacingMode.Fixed;
69
+ out.targetSlotIndex = 0;
70
+ Object.assign(out, overrides);
71
+ return finishEntity(out) as Skeleton2DPathConstraint;
71
72
  }
72
73
 
73
74
  // Bone 0 carries the path slot; bones 1..n are the chain laid along it.
@@ -200,14 +201,19 @@ describe('solveSkeleton2DPathConstraint', () => {
200
201
  // world position and writes it straight back, so forcing the branch on leaves this green. What it saves
201
202
  // is an inverse-basis solve and a matrix rebuild per bone per frame for every rotate-only chain.
202
203
  it('turns a bone to the path without moving it when both translate mixes are zero', () => {
203
- const skeleton = rig(1, {
204
- commands: [PathCommand.MOVE_TO, PathCommand.LINE_TO],
205
- kind: PathAttachment2DKind,
206
- pointCount: 2,
207
- skin: null,
208
- vertices: new Float32Array([0, 0, 0, 100]),
209
- winding: 'nonZero',
210
- });
204
+ const skeleton = rig(
205
+ 1,
206
+ (() => {
207
+ const out = allocateEntity<PathAttachment2D>();
208
+ out.commands = [PathCommand.MOVE_TO, PathCommand.LINE_TO];
209
+ out.kind = PathAttachment2DKind;
210
+ out.pointCount = 2;
211
+ out.skin = null;
212
+ out.vertices = new Float32Array([0, 0, 0, 100]);
213
+ out.winding = 'nonZero' as const;
214
+ return finishEntity(out) as PathAttachment2D;
215
+ })(),
216
+ );
211
217
  skeleton.bones[1].x = 40;
212
218
  skeleton.bones[1].y = -7;
213
219
  computeSkeleton2DWorldTransforms(skeleton);
@@ -220,15 +226,19 @@ describe('solveSkeleton2DPathConstraint', () => {
220
226
  });
221
227
 
222
228
  it('aims a bone along the path tangent when rotateMode is Tangent', () => {
223
- const skeleton = rig(1, {
224
- commands: [PathCommand.MOVE_TO, PathCommand.LINE_TO],
225
- kind: PathAttachment2DKind,
226
- pointCount: 2,
227
- skin: null,
228
- // Straight up, so the tangent is a quarter turn from the bone's setup direction.
229
- vertices: new Float32Array([0, 0, 0, 100]),
230
- winding: 'nonZero',
231
- });
229
+ const skeleton = rig(
230
+ 1,
231
+ (() => {
232
+ const out = allocateEntity<PathAttachment2D>();
233
+ out.commands = [PathCommand.MOVE_TO, PathCommand.LINE_TO];
234
+ out.kind = PathAttachment2DKind;
235
+ out.pointCount = 2;
236
+ out.skin = null;
237
+ out.vertices = new Float32Array([0, 0, 0, 100]);
238
+ out.winding = 'nonZero' as const;
239
+ return finishEntity(out) as PathAttachment2D;
240
+ })(),
241
+ );
232
242
 
233
243
  solveSkeleton2DPathConstraint(skeleton, constraint({ mixRotate: 1, position: 10 }));
234
244
 
@@ -237,15 +247,19 @@ describe('solveSkeleton2DPathConstraint', () => {
237
247
  });
238
248
 
239
249
  it('aims each bone at the NEXT one in Chain mode, sampling every position before moving any', () => {
240
- const skeleton = rig(2, {
241
- commands: [PathCommand.MOVE_TO, PathCommand.LINE_TO, PathCommand.LINE_TO],
242
- kind: PathAttachment2DKind,
243
- pointCount: 3,
244
- skin: null,
245
- // An L: 50 along +x, then 50 along +y. A chain straddling the corner aims across it.
246
- vertices: new Float32Array([0, 0, 50, 0, 50, 50]),
247
- winding: 'nonZero',
248
- });
250
+ const skeleton = rig(
251
+ 2,
252
+ (() => {
253
+ const out = allocateEntity<PathAttachment2D>();
254
+ out.commands = [PathCommand.MOVE_TO, PathCommand.LINE_TO, PathCommand.LINE_TO];
255
+ out.kind = PathAttachment2DKind;
256
+ out.pointCount = 3;
257
+ out.skin = null;
258
+ out.vertices = new Float32Array([0, 0, 50, 0, 50, 50]);
259
+ out.winding = 'nonZero' as const;
260
+ return finishEntity(out) as PathAttachment2D;
261
+ })(),
262
+ );
249
263
 
250
264
  solveSkeleton2DPathConstraint(
251
265
  skeleton,
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, PointAttachment2D } from '@flighthq/types/contract';
2
3
  import { PointAttachment2DKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -26,7 +27,12 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
26
27
  }
27
28
 
28
29
  function point(x: number, y: number, rotation: number): PointAttachment2D {
29
- return { kind: PointAttachment2DKind, rotation, x, y };
30
+ const out = allocateEntity<PointAttachment2D>();
31
+ out.kind = PointAttachment2DKind;
32
+ out.rotation = rotation;
33
+ out.x = x;
34
+ out.y = y;
35
+ return finishEntity(out) as PointAttachment2D;
30
36
  }
31
37
 
32
38
  describe('computeSkeleton2DPointAttachmentPosition', () => {
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, RegionAttachment2D } from '@flighthq/types/contract';
2
3
  import { RegionAttachment2DKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -23,17 +24,17 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
23
24
  }
24
25
 
25
26
  function region(overrides: Partial<RegionAttachment2D> = {}): RegionAttachment2D {
26
- return {
27
- kind: RegionAttachment2DKind,
28
- height: 2,
29
- rotation: 0,
30
- scaleX: 1,
31
- scaleY: 1,
32
- width: 4,
33
- x: 0,
34
- y: 0,
35
- ...overrides,
36
- };
27
+ const out = allocateEntity<any>();
28
+ out.kind = RegionAttachment2DKind;
29
+ out.height = 2;
30
+ out.rotation = 0;
31
+ out.scaleX = 1;
32
+ out.scaleY = 1;
33
+ out.width = 4;
34
+ out.x = 0;
35
+ out.y = 0;
36
+ Object.assign(out, overrides);
37
+ return finishEntity(out) as RegionAttachment2D;
37
38
  }
38
39
 
39
40
  describe('computeSkeleton2DRegionAttachmentVertices', () => {
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import { createMatrix } from '@flighthq/geometry/contract';
2
3
  import type { Bone2D, RegionAttachment2D, Slot2D } from '@flighthq/types/contract';
3
4
  import { RegionAttachment2DKind, TransformMode2D } from '@flighthq/types/contract';
@@ -493,5 +494,15 @@ function testSlot(name: string, boneIndex: number): Slot2D {
493
494
  }
494
495
 
495
496
  function testRegion(name: string): RegionAttachment2D {
496
- return { height: 0, kind: RegionAttachment2DKind, name, rotation: 0, scaleX: 1, scaleY: 1, width: 0, x: 0, y: 0 };
497
+ const out = allocateEntity<any>();
498
+ out.height = 0;
499
+ out.kind = RegionAttachment2DKind;
500
+ out.name = name;
501
+ out.rotation = 0;
502
+ out.scaleX = 1;
503
+ out.scaleY = 1;
504
+ out.width = 0;
505
+ out.x = 0;
506
+ out.y = 0;
507
+ return finishEntity(out) as RegionAttachment2D;
497
508
  }
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, Skeleton2DConstraint } from '@flighthq/types/contract';
2
3
  import { Skeleton2DConstraintKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { afterEach, describe, expect, it } from 'vitest';
@@ -28,7 +29,10 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
28
29
  }
29
30
 
30
31
  function constraint(kind: string): Skeleton2DConstraint {
31
- return { kind, mix: 1 };
32
+ const out = allocateEntity<Skeleton2DConstraint>();
33
+ out.kind = kind;
34
+ out.mix = 1;
35
+ return finishEntity(out) as Skeleton2DConstraint;
32
36
  }
33
37
 
34
38
  // The registry is a module GLOBAL, deliberately: last-write-wins is what lets a caller replace a built-in
@@ -100,7 +104,13 @@ describe('solveSkeleton2DConstraints', () => {
100
104
  seen = value;
101
105
  });
102
106
  const skeleton = createSkeleton2D([makeBone()]);
103
- const rope = { kind: 'acme.Rope', mix: 0.25, slack: 3 };
107
+ const rope = (() => {
108
+ const out = allocateEntity<any>();
109
+ out.kind = 'acme.Rope';
110
+ out.mix = 0.25;
111
+ out.slack = 3;
112
+ return finishEntity(out) as Skeleton2DConstraint;
113
+ })();
104
114
 
105
115
  solveSkeleton2DConstraints(skeleton, [rope]);
106
116
  unregisterSkeleton2DConstraintSolver('acme.Rope');
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Attachment2D, MeshAttachment2D, Skin2D, Slot2D } from '@flighthq/types/contract';
2
3
  import { MeshAttachment2DKind } from '@flighthq/types/contract';
3
4
  import { describe, expect, it } from 'vitest';
@@ -5,22 +6,22 @@ import { describe, expect, it } from 'vitest';
5
6
  import { createSkin2D } from './skin2D';
6
7
  import { getSkeleton2DSlotDeformOffsets, setSkeleton2DSlotDeform } from './slotDeform2D';
7
8
 
8
- function mesh(pointCount: number): MeshAttachment2D {
9
- const skin: Skin2D = createSkin2D(new Uint16Array(pointCount).fill(1), new Float32Array(pointCount * 4));
10
- return {
11
- kind: MeshAttachment2DKind,
12
- skin,
13
- triangles: new Uint16Array(),
14
- uvs: new Float32Array(pointCount * 2),
15
- vertexCount: pointCount,
16
- vertices: null,
17
- };
18
- }
19
-
20
9
  function slot(attachment: Attachment2D | null): Slot2D {
21
10
  return { attachment, boneIndex: 0, color: 0xffffffff, name: 's' };
22
11
  }
23
12
 
13
+ function mesh(pointCount: number): MeshAttachment2D {
14
+ const skin: Skin2D = createSkin2D(new Uint16Array(pointCount).fill(1), new Float32Array(pointCount * 4));
15
+ const out = allocateEntity<MeshAttachment2D>();
16
+ out.kind = MeshAttachment2DKind;
17
+ out.skin = skin;
18
+ out.triangles = new Uint16Array();
19
+ out.uvs = new Float32Array(pointCount * 2);
20
+ out.vertexCount = pointCount;
21
+ out.vertices = null;
22
+ return finishEntity(out) as MeshAttachment2D;
23
+ }
24
+
24
25
  describe('getSkeleton2DSlotDeformOffsets', () => {
25
26
  it('returns the offsets when they were authored for the attachment now shown', () => {
26
27
  const art = mesh(2);
@@ -1,3 +1,4 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
1
2
  import type { Bone2D, Skeleton2DTransformConstraint } from '@flighthq/types/contract';
2
3
  import { Skeleton2DConstraintKind, TransformMode2D } from '@flighthq/types/contract';
3
4
  import { afterEach, describe, expect, it } from 'vitest';
@@ -32,25 +33,25 @@ function makeBone(overrides: Partial<Bone2D> = {}): Bone2D {
32
33
 
33
34
  // Every channel off by default, so each test turns on exactly the one it is about.
34
35
  function transform(overrides: Partial<Skeleton2DTransformConstraint> = {}): Skeleton2DTransformConstraint {
35
- return {
36
- boneIndices: [0],
37
- kind: Skeleton2DConstraintKind.Transform as 'Skeleton2D.TransformConstraint',
38
- mix: 1,
39
- mixRotate: 0,
40
- mixScaleX: 0,
41
- mixScaleY: 0,
42
- mixShearY: 0,
43
- mixX: 0,
44
- mixY: 0,
45
- offsetRotation: 0,
46
- offsetScaleX: 0,
47
- offsetScaleY: 0,
48
- offsetShearY: 0,
49
- offsetX: 0,
50
- offsetY: 0,
51
- targetBoneIndex: 1,
52
- ...overrides,
53
- };
36
+ const out = allocateEntity<any>();
37
+ out.boneIndices = [0];
38
+ out.kind = Skeleton2DConstraintKind.Transform as 'Skeleton2D.TransformConstraint';
39
+ out.mix = 1;
40
+ out.mixRotate = 0;
41
+ out.mixScaleX = 0;
42
+ out.mixScaleY = 0;
43
+ out.mixShearY = 0;
44
+ out.mixX = 0;
45
+ out.mixY = 0;
46
+ out.offsetRotation = 0;
47
+ out.offsetScaleX = 0;
48
+ out.offsetScaleY = 0;
49
+ out.offsetShearY = 0;
50
+ out.offsetX = 0;
51
+ out.offsetY = 0;
52
+ out.targetBoneIndex = 1;
53
+ Object.assign(out, overrides);
54
+ return finishEntity(out) as Skeleton2DTransformConstraint;
54
55
  }
55
56
 
56
57
  // This file registers a built-in solver into a module-global registry, so it restores whatever it found