@flighthq/skeleton3d 0.2.1-next.738.07b221d → 0.2.1-next.841.373388f

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './getMeshSkinBounds';
2
- export * from './prepareSceneSkinning';
2
+ export * from './prepareScene3DSkinning';
3
3
  export * from './skeleton3d';
4
4
  export * from './skinMeshGeometry';
5
5
  export * from './skinVertices';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './getMeshSkinBounds';
2
- export * from './prepareSceneSkinning';
2
+ export * from './prepareScene3DSkinning';
3
3
  export * from './skeleton3d';
4
4
  export * from './skinMeshGeometry';
5
5
  export * from './skinVertices';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Mesh, NodeAny } from '@flighthq/types';
2
+ export declare function prepareMeshSkinning(mesh: Readonly<Mesh>): void;
3
+ export declare function prepareScene3DSkinning(scene: Readonly<NodeAny>): void;
4
+ //# sourceMappingURL=prepareScene3DSkinning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareScene3DSkinning.d.ts","sourceRoot":"","sources":["../src/prepareScene3DSkinning.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAwBlE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAoB9D;AAcD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAcrE"}
@@ -21,7 +21,7 @@ import { captureMeshSkinBindPose } from './skinMeshGeometry';
21
21
  // The sweep is joint-driven, not per-vertex: getMeshSkinConservativeBounds unions the rest box
22
22
  // transformed by each referenced joint's palette matrix, costing one box-transform per joint rather
23
23
  // than an O(vertices) pass — cheap enough to run before the cull, which is the only ordering that culls
24
- // a posed mesh correctly. This is the per-mesh primitive; prepareSceneSkinning drives a whole scene.
24
+ // a posed mesh correctly. This is the per-mesh primitive; prepareScene3DSkinning drives a whole scene.
25
25
  export function prepareMeshSkinning(mesh) {
26
26
  const skin = mesh.skin;
27
27
  if (skin == null)
@@ -42,18 +42,18 @@ export function prepareMeshSkinning(mesh) {
42
42
  getMeshSkinConservativeBounds(bounds, bindPose, skin.skeleton);
43
43
  }
44
44
  // Runs prepareMeshSkinning over every enabled mesh in the subtree rooted at `scene` — the per-frame
45
- // skinning-prep pass. Call it BEFORE prepareSceneRender: the render prepare pass culls against the
45
+ // skinning-prep pass. Call it BEFORE prepareScene3DRender: the render prepare pass culls against the
46
46
  // posed bounds this writes, so driving it afterwards would cull one frame stale. A skinned+morphed app
47
- // also calls the morph pass (prepareSceneMorph in @flighthq/scene); the two are independent so each
47
+ // also calls the morph pass (prepareScene3DMorph in @flighthq/scene3d); the two are independent so each
48
48
  // deformer's consumers pay only for the pass they use — a morph-only app never imports this package.
49
49
  //
50
- // This is a separate caller-invoked pass rather than something prepareSceneRender does itself so that
50
+ // This is a separate caller-invoked pass rather than something prepareScene3DRender does itself so that
51
51
  // @flighthq/render never depends on @flighthq/skeleton3d: cull consumes the posed bounds as plain data
52
52
  // off the node runtime, and a rigid or 2D bundle pays nothing for skinning it does not use. The walk
53
53
  // itself needs only @flighthq/node + @flighthq/mesh (both already skeleton3d dependencies), so it
54
- // carries no @flighthq/scene dependency at all. A scene with no skinned meshes may skip this call; it
54
+ // carries no @flighthq/scene3d dependency at all. A scene with no skinned meshes may skip this call; it
55
55
  // is a no-op for rigid meshes, and disabled subtrees are skipped whole (matching the render walk).
56
- export function prepareSceneSkinning(scene) {
56
+ export function prepareScene3DSkinning(scene) {
57
57
  if (!scene.enabled)
58
58
  return;
59
59
  // Structural mesh test (carries geometry), so it holds for meshes created with a custom kind — the
@@ -64,8 +64,8 @@ export function prepareSceneSkinning(scene) {
64
64
  const children = getNodeRuntime(scene).children;
65
65
  if (children !== null) {
66
66
  for (let i = 0; i < children.length; i++) {
67
- prepareSceneSkinning(children[i]);
67
+ prepareScene3DSkinning(children[i]);
68
68
  }
69
69
  }
70
70
  }
71
- //# sourceMappingURL=prepareSceneSkinning.js.map
71
+ //# sourceMappingURL=prepareScene3DSkinning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareScene3DSkinning.js","sourceRoot":"","sources":["../src/prepareScene3DSkinning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,sGAAsG;AACtG,uGAAuG;AACvG,uFAAuF;AACvF,gGAAgG;AAChG,0FAA0F;AAC1F,EAAE;AACF,sGAAsG;AACtG,uGAAuG;AACvG,wGAAwG;AACxG,qGAAqG;AACrG,uGAAuG;AACvG,oGAAoG;AACpG,sDAAsD;AACtD,EAAE;AACF,+FAA+F;AAC/F,oGAAoG;AACpG,wGAAwG;AACxG,uGAAuG;AACvG,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO;IAEzB,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7C,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAe,CAAgB,CAAC;IAC/D,IAAI,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IACzC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,GAAG,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC;IACvC,CAAC;IACD,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,oGAAoG;AACpG,qGAAqG;AACrG,uGAAuG;AACvG,wGAAwG;AACxG,qGAAqG;AACrG,EAAE;AACF,wGAAwG;AACxG,uGAAuG;AACvG,qGAAqG;AACrG,kGAAkG;AAClG,wGAAwG;AACxG,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,KAAwB;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAE3B,mGAAmG;IACnG,iDAAiD;IACjD,MAAM,IAAI,GAAG,KAAwB,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;QAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;IAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,8 +1,8 @@
1
- import type { Matrix4Like, SceneNode, Skeleton3D, Skeleton3DValidationDiagnostic } from '@flighthq/types';
1
+ import type { Matrix4Like, Node3D, Skeleton3D, Skeleton3DValidationDiagnostic } from '@flighthq/types';
2
2
  export declare function cloneSkeleton3D(skeleton: Readonly<Skeleton3D>): Skeleton3D;
3
- export declare function cloneSkeleton3DJointHierarchy(skeleton: Readonly<Skeleton3D>, cloneJoint: (joint: Readonly<SceneNode>, jointIndex: number) => SceneNode): Skeleton3D;
3
+ export declare function cloneSkeleton3DJointHierarchy(skeleton: Readonly<Skeleton3D>, cloneJoint: (joint: Readonly<Node3D>, jointIndex: number) => Node3D): Skeleton3D;
4
4
  export declare function computeSkeleton3DJointMatrices(skeleton: Readonly<Skeleton3D>): void;
5
- export declare function createSkeleton3D(joints: SceneNode[], inverseBindMatrices?: Float32Array, names?: readonly string[] | null): Skeleton3D;
5
+ export declare function createSkeleton3D(joints: Node3D[], inverseBindMatrices?: Float32Array, names?: readonly string[] | null): Skeleton3D;
6
6
  export declare function disposeSkeleton3D(skeleton: Skeleton3D): void;
7
7
  export declare function equalsSkeleton3D(a: Readonly<Skeleton3D>, b: Readonly<Skeleton3D>): boolean;
8
8
  export declare function getSkeleton3DJointIndexByName(skeleton: Readonly<Skeleton3D>, name: string): number;
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton3d.d.ts","sourceRoot":"","sources":["../src/skeleton3d.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAE1G,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAQ1E;AAOD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,SAAS,GACxE,UAAU,CAsBZ;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAQnF;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EAAE,EACnB,mBAAmB,CAAC,EAAE,YAAY,EAClC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC/B,UAAU,CAUZ;AAED,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,CAe1F;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlG;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAKT;AAED,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,IAAI,EAAE,MAAM,GACX,OAAO,CAET;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAM1E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,8BAA8B,GAAG,IAAI,CAWxG"}
1
+ {"version":3,"file":"skeleton3d.d.ts","sourceRoot":"","sources":["../src/skeleton3d.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEvG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAQ1E;AAOD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GAClE,UAAU,CAsBZ;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAQnF;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAChB,mBAAmB,CAAC,EAAE,YAAY,EAClC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC/B,UAAU,CAUZ;AAED,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,CAe1F;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlG;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAKT;AAED,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,IAAI,EAAE,MAAM,GACX,OAAO,CAET;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAM1E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,8BAA8B,GAAG,IAAI,CAWxG"}
@@ -10,7 +10,7 @@ export function cloneSkeleton3D(skeleton) {
10
10
  });
11
11
  return clone;
12
12
  }
13
- // Clones a skeleton and its joint-to-joint hierarchy without assuming that every SceneNode kind is
13
+ // Clones a skeleton and its joint-to-joint hierarchy without assuming that every Node3D kind is
14
14
  // generically cloneable. `cloneJoint` is the one narrow policy seam: it must return a fresh detached
15
15
  // node carrying the source joint's local pose/data. Parent links whose parent is another skeleton
16
16
  // joint are rebuilt over the cloned nodes; a parent outside the joint set is intentionally left to
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton3d.js","sourceRoot":"","sources":["../src/skeleton3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skeleton3d.js","sourceRoot":"","sources":["../src/skeleton3d.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export function captureMeshSkinBindPose(geometry) {
60
60
  // first) into the bind pose's scratch, writes the skinned positions/normals back into the interleaved
61
61
  // `geometry.vertices`, and bumps `geometry.version` so the backends re-upload. `bindPose` is the
62
62
  // capture the caller holds on the geometry runtime; only the position/normal channels are rewritten,
63
- // so tangent/uv0/joints0/weights0 stay intact. Scene-free by design — the node-level glue that owns
63
+ // so tangent/uv0/joints0/weights0 stay intact. Scene3D-free by design — the node-level glue that owns
64
64
  // the runtime slot and drives the palette is updateMeshSkin, beside this file.
65
65
  export function skinMeshGeometry(geometry, skeleton, bindPose) {
66
66
  skinVertices(bindPose.skinnedPositions, bindPose.skinnedNormals, bindPose.positions, bindPose.normals, bindPose.joints, bindPose.weights, skeleton.jointMatrices);
@@ -1 +1 @@
1
- {"version":3,"file":"skinMeshGeometry.js","sourceRoot":"","sources":["../src/skinMeshGeometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skinMeshGeometry.js","sourceRoot":"","sources":["../src/skinMeshGeometry.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { updateMeshSkin } from './updateMeshSkin';
6
6
  //
7
7
  // Both halves are same-layer primitives: morph needs only geometry, so it lives in @flighthq/mesh;
8
8
  // skin needs the joint palette, so it lives here. Composing them here — at the upper of the two —
9
- // keeps skeleton3d below @flighthq/scene with no cycle.
9
+ // keeps skeleton3d below @flighthq/scene3d with no cycle.
10
10
  // Backends using GPU skinning should continue to update morph CPU-side and upload the joint palette,
11
11
  // rather than calling this CPU skin path and then skinning again in the shader.
12
12
  export function updateMeshDeformation(mesh) {
@@ -1 +1 @@
1
- {"version":3,"file":"updateMeshDeformation.js","sourceRoot":"","sources":["../src/updateMeshDeformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,oGAAoG;AACpG,sGAAsG;AACtG,sGAAsG;AACtG,EAAE;AACF,mGAAmG;AACnG,kGAAkG;AAClG,wDAAwD;AACxD,qGAAqG;AACrG,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,IAAoB;IACxD,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"updateMeshDeformation.js","sourceRoot":"","sources":["../src/updateMeshDeformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,oGAAoG;AACpG,sGAAsG;AACtG,sGAAsG;AACtG,EAAE;AACF,mGAAmG;AACnG,kGAAkG;AAClG,0DAA0D;AAC1D,qGAAqG;AACrG,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,IAAoB;IACxD,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
@@ -10,7 +10,7 @@ import { captureMeshSkinBindPose, skinMeshGeometry, updateMeshSkinBindPoseDeform
10
10
  // onto the geometry runtime and reused every frame, so steady-state skinning allocates nothing. The
11
11
  // version bump alone drives the backend re-upload — no per-frame destroy* of GPU data is needed.
12
12
  //
13
- // Lives here (with a mesh dep) rather than in @flighthq/scene: its only dependencies are the skinning
13
+ // Lives here (with a mesh dep) rather than in @flighthq/scene3d: its only dependencies are the skinning
14
14
  // primitives above and mesh's runtime-slot accessors — it never touches the scene graph or animation,
15
15
  // so pairing it with the skinning it drives keeps skeleton3d below scene with no cycle.
16
16
  export function updateMeshSkin(mesh) {
@@ -1 +1 @@
1
- {"version":3,"file":"updateMeshSkin.js","sourceRoot":"","sources":["../src/updateMeshSkin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAG1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAElH,+FAA+F;AAC/F,gGAAgG;AAChG,+FAA+F;AAC/F,0FAA0F;AAC1F,8FAA8F;AAC9F,oGAAoG;AACpG,oGAAoG;AACpG,iGAAiG;AACjG,EAAE;AACF,sGAAsG;AACtG,sGAAsG;AACtG,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO;IAEzB,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7C,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC9B,4FAA4F;QAC5F,iGAAiG;QACjG,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpD,oGAAoG;IACpG,qGAAqG;IACrG,yFAAyF;AAC3F,CAAC"}
1
+ {"version":3,"file":"updateMeshSkin.js","sourceRoot":"","sources":["../src/updateMeshSkin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAG1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAElH,+FAA+F;AAC/F,gGAAgG;AAChG,+FAA+F;AAC/F,0FAA0F;AAC1F,8FAA8F;AAC9F,oGAAoG;AACpG,oGAAoG;AACpG,iGAAiG;AACjG,EAAE;AACF,wGAAwG;AACxG,sGAAsG;AACtG,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO;IAEzB,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7C,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC9B,4FAA4F;QAC5F,iGAAiG;QACjG,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpD,oGAAoG;IACpG,qGAAqG;IACrG,yFAAyF;AAC3F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/skeleton3d",
3
- "version": "0.2.1-next.738.07b221d",
3
+ "version": "0.2.1-next.841.373388f",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/flighthq/flight.git",
@@ -32,14 +32,14 @@
32
32
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@flighthq/entity": "0.2.1-next.738.07b221d",
36
- "@flighthq/geometry": "0.2.1-next.738.07b221d",
37
- "@flighthq/mesh": "0.2.1-next.738.07b221d",
38
- "@flighthq/node": "0.2.1-next.738.07b221d",
39
- "@flighthq/types": "0.2.1-next.738.07b221d"
35
+ "@flighthq/entity": "0.2.1-next.841.373388f",
36
+ "@flighthq/geometry": "0.2.1-next.841.373388f",
37
+ "@flighthq/mesh": "0.2.1-next.841.373388f",
38
+ "@flighthq/node": "0.2.1-next.841.373388f",
39
+ "@flighthq/types": "0.2.1-next.841.373388f"
40
40
  },
41
41
  "devDependencies": {
42
- "@flighthq/scene": "*",
42
+ "@flighthq/scene3d": "*",
43
43
  "typescript": "^5.3.0"
44
44
  },
45
45
  "description": "3D skeleton: joint bind poses and skin-palette (jointWorld * inverseBind) computation over animated SceneNode bones",
@@ -5,11 +5,11 @@ import {
5
5
  getMeshGeometrySkinBindPose,
6
6
  } from '@flighthq/mesh';
7
7
  import { addNodeChild, getNodeRuntime, invalidateNodeLocalTransform } from '@flighthq/node';
8
- import { createMesh, createSceneNode } from '@flighthq/scene';
8
+ import { createMesh, createNode3D } from '@flighthq/scene3d';
9
9
  import type { MeshRuntime } from '@flighthq/types';
10
10
  import { describe, expect, it } from 'vitest';
11
11
 
12
- import { prepareMeshSkinning, prepareSceneSkinning } from './prepareSceneSkinning';
12
+ import { prepareMeshSkinning, prepareScene3DSkinning } from './prepareScene3DSkinning';
13
13
  import { createSkeleton3D } from './skeleton3d';
14
14
 
15
15
  function createOneVertexSkinnedMesh() {
@@ -28,7 +28,7 @@ function deformedBounds(mesh: ReturnType<typeof createOneVertexSkinnedMesh>) {
28
28
  describe('prepareMeshSkinning', () => {
29
29
  it('captures the bind pose and writes posed conservative bounds without CPU-posing the vertices', () => {
30
30
  const mesh = createOneVertexSkinnedMesh();
31
- const joint = createSceneNode();
31
+ const joint = createNode3D();
32
32
  mesh.skin = { skeleton: createSkeleton3D([joint]) };
33
33
  setVector3(joint.position, 0, 5, 0);
34
34
  invalidateNodeLocalTransform(joint);
@@ -59,7 +59,7 @@ describe('prepareMeshSkinning', () => {
59
59
 
60
60
  it('reuses the same bounds AABB instance across frames', () => {
61
61
  const mesh = createOneVertexSkinnedMesh();
62
- const joint = createSceneNode();
62
+ const joint = createNode3D();
63
63
  mesh.skin = { skeleton: createSkeleton3D([joint]) };
64
64
  setVector3(joint.position, 0, 5, 0);
65
65
  invalidateNodeLocalTransform(joint);
@@ -71,23 +71,23 @@ describe('prepareMeshSkinning', () => {
71
71
  });
72
72
  });
73
73
 
74
- describe('prepareSceneSkinning', () => {
74
+ describe('prepareScene3DSkinning', () => {
75
75
  it('poses every skinned mesh in the subtree and skips disabled subtrees', () => {
76
- const scene = createSceneNode();
76
+ const scene = createNode3D();
77
77
  const skinned = createOneVertexSkinnedMesh();
78
- const joint = createSceneNode();
78
+ const joint = createNode3D();
79
79
  skinned.skin = { skeleton: createSkeleton3D([joint]) };
80
80
  setVector3(joint.position, 0, 5, 0);
81
81
  invalidateNodeLocalTransform(joint);
82
82
  addNodeChild(scene, skinned);
83
83
 
84
- const disabledGroup = createSceneNode(undefined, { enabled: false });
84
+ const disabledGroup = createNode3D(undefined, { enabled: false });
85
85
  const hidden = createOneVertexSkinnedMesh();
86
- hidden.skin = { skeleton: createSkeleton3D([createSceneNode()]) };
86
+ hidden.skin = { skeleton: createSkeleton3D([createNode3D()]) };
87
87
  addNodeChild(disabledGroup, hidden);
88
88
  addNodeChild(scene, disabledGroup);
89
89
 
90
- prepareSceneSkinning(scene);
90
+ prepareScene3DSkinning(scene);
91
91
 
92
92
  expect(deformedBounds(skinned)).not.toBeNull();
93
93
  // A disabled subtree is skipped whole, so its skinned mesh is never posed.
@@ -1,6 +1,6 @@
1
1
  import { createMatrix4, getMatrix4Element, setVector3 } from '@flighthq/geometry';
2
2
  import { addNodeChild, getNodeParent, invalidateNodeLocalTransform, setNodeTransform3D } from '@flighthq/node';
3
- import { createSceneNode } from '@flighthq/scene';
3
+ import { createNode3D } from '@flighthq/scene3d';
4
4
  import { EntityRuntimeKey } from '@flighthq/types';
5
5
 
6
6
  import {
@@ -19,7 +19,7 @@ import {
19
19
 
20
20
  describe('cloneSkeleton3D', () => {
21
21
  it('copies buffers and arrays into a new identity while sharing joint nodes', () => {
22
- const joint = createSceneNode();
22
+ const joint = createNode3D();
23
23
  setVector3(joint.position, 5, 0, 0);
24
24
  invalidateNodeLocalTransform(joint);
25
25
  const skeleton = createSkeleton3D([joint], undefined, ['root']);
@@ -38,15 +38,15 @@ describe('cloneSkeleton3D', () => {
38
38
  });
39
39
 
40
40
  it('preserves a null names field', () => {
41
- const clone = cloneSkeleton3D(createSkeleton3D([createSceneNode()]));
41
+ const clone = cloneSkeleton3D(createSkeleton3D([createNode3D()]));
42
42
  expect(clone.names).toBeNull();
43
43
  });
44
44
  });
45
45
 
46
46
  describe('cloneSkeleton3DJointHierarchy', () => {
47
47
  it('rebuilds joint parentage over fresh nodes and isolates pose updates', () => {
48
- const root = createSceneNode();
49
- const child = createSceneNode();
48
+ const root = createNode3D();
49
+ const child = createNode3D();
50
50
  setVector3(root.position, 1, 0, 0);
51
51
  setVector3(child.position, 0, 2, 0);
52
52
  invalidateNodeLocalTransform(root);
@@ -55,7 +55,7 @@ describe('cloneSkeleton3DJointHierarchy', () => {
55
55
  const source = createSkeleton3D([root, child], undefined, ['root', 'child']);
56
56
 
57
57
  const clone = cloneSkeleton3DJointHierarchy(source, (joint) => {
58
- const out = createSceneNode(joint.kind, joint);
58
+ const out = createNode3D(joint.kind, joint);
59
59
  setNodeTransform3D(out, joint);
60
60
  return out;
61
61
  });
@@ -81,7 +81,7 @@ describe('cloneSkeleton3DJointHierarchy', () => {
81
81
 
82
82
  describe('computeSkeleton3DJointMatrices', () => {
83
83
  it('encodes the joint delta from its bind pose', () => {
84
- const joint = createSceneNode();
84
+ const joint = createNode3D();
85
85
  setVector3(joint.position, 5, 0, 0);
86
86
  invalidateNodeLocalTransform(joint);
87
87
  const skeleton = createSkeleton3D([joint]); // binds at (5, 0, 0)
@@ -95,8 +95,8 @@ describe('computeSkeleton3DJointMatrices', () => {
95
95
  });
96
96
 
97
97
  it('is alias-safe when jointMatrices and inverseBindMatrices share the same buffer', () => {
98
- const joint0 = createSceneNode();
99
- const joint1 = createSceneNode();
98
+ const joint0 = createNode3D();
99
+ const joint1 = createNode3D();
100
100
  setVector3(joint0.position, 0, 0, 0);
101
101
  invalidateNodeLocalTransform(joint0);
102
102
  setVector3(joint1.position, 3, 0, 0);
@@ -119,9 +119,9 @@ describe('computeSkeleton3DJointMatrices', () => {
119
119
  });
120
120
 
121
121
  it('propagates correctly through a 3-joint chain', () => {
122
- const joint0 = createSceneNode();
123
- const joint1 = createSceneNode();
124
- const joint2 = createSceneNode();
122
+ const joint0 = createNode3D();
123
+ const joint1 = createNode3D();
124
+ const joint2 = createNode3D();
125
125
  setVector3(joint0.position, 1, 0, 0);
126
126
  invalidateNodeLocalTransform(joint0);
127
127
  setVector3(joint1.position, 0, 1, 0);
@@ -149,7 +149,7 @@ describe('computeSkeleton3DJointMatrices', () => {
149
149
  });
150
150
 
151
151
  it('yields identity when a joint is at its bind pose', () => {
152
- const joint = createSceneNode();
152
+ const joint = createNode3D();
153
153
  setVector3(joint.position, 5, 0, 0);
154
154
  invalidateNodeLocalTransform(joint);
155
155
  const skeleton = createSkeleton3D([joint]);
@@ -164,7 +164,7 @@ describe('computeSkeleton3DJointMatrices', () => {
164
164
 
165
165
  describe('createSkeleton3D', () => {
166
166
  it('allocates a palette sized to the joint count when no inverse-bind is given', () => {
167
- const skeleton = createSkeleton3D([createSceneNode(), createSceneNode()]);
167
+ const skeleton = createSkeleton3D([createNode3D(), createNode3D()]);
168
168
  expect(skeleton.jointMatrices.length).toBe(32);
169
169
  expect(skeleton.inverseBindMatrices.length).toBe(32);
170
170
  expect(EntityRuntimeKey in skeleton).toBe(true);
@@ -173,7 +173,7 @@ describe('createSkeleton3D', () => {
173
173
 
174
174
  describe('disposeSkeleton3D', () => {
175
175
  it('drops joint references and clears names', () => {
176
- const skeleton = createSkeleton3D([createSceneNode(), createSceneNode()], undefined, ['a', 'b']);
176
+ const skeleton = createSkeleton3D([createNode3D(), createNode3D()], undefined, ['a', 'b']);
177
177
  disposeSkeleton3D(skeleton);
178
178
  expect(skeleton.joints.length).toBe(0);
179
179
  expect(skeleton.names).toBeNull();
@@ -182,7 +182,7 @@ describe('disposeSkeleton3D', () => {
182
182
 
183
183
  describe('equalsSkeleton3D', () => {
184
184
  it('is reflexive and compares clones as equal', () => {
185
- const joint = createSceneNode();
185
+ const joint = createNode3D();
186
186
  setVector3(joint.position, 2, 0, 0);
187
187
  invalidateNodeLocalTransform(joint);
188
188
  const skeleton = createSkeleton3D([joint], undefined, ['root']);
@@ -191,18 +191,18 @@ describe('equalsSkeleton3D', () => {
191
191
  });
192
192
 
193
193
  it('differs on joint count, inverse-bind contents, and names', () => {
194
- const j0 = createSceneNode();
194
+ const j0 = createNode3D();
195
195
  setVector3(j0.position, 1, 0, 0);
196
196
  invalidateNodeLocalTransform(j0);
197
197
  const a = createSkeleton3D([j0]);
198
198
 
199
- const j1 = createSceneNode();
199
+ const j1 = createNode3D();
200
200
  setVector3(j1.position, 9, 0, 0);
201
201
  invalidateNodeLocalTransform(j1);
202
202
  const differentBind = createSkeleton3D([j1]);
203
203
  expect(equalsSkeleton3D(a, differentBind)).toBe(false);
204
204
 
205
- const extra = createSkeleton3D([createSceneNode(), createSceneNode()]);
205
+ const extra = createSkeleton3D([createNode3D(), createNode3D()]);
206
206
  expect(equalsSkeleton3D(a, extra)).toBe(false);
207
207
 
208
208
  const named = createSkeleton3D([j0], a.inverseBindMatrices, ['root']);
@@ -214,16 +214,16 @@ describe('equalsSkeleton3D', () => {
214
214
 
215
215
  describe('getSkeleton3DJointIndexByName', () => {
216
216
  it('returns the joint index or -1 when unnamed or missing', () => {
217
- const skeleton = createSkeleton3D([createSceneNode(), createSceneNode()], undefined, ['hip', 'spine']);
217
+ const skeleton = createSkeleton3D([createNode3D(), createNode3D()], undefined, ['hip', 'spine']);
218
218
  expect(getSkeleton3DJointIndexByName(skeleton, 'spine')).toBe(1);
219
219
  expect(getSkeleton3DJointIndexByName(skeleton, 'missing')).toBe(-1);
220
- expect(getSkeleton3DJointIndexByName(createSkeleton3D([createSceneNode()]), 'hip')).toBe(-1);
220
+ expect(getSkeleton3DJointIndexByName(createSkeleton3D([createNode3D()]), 'hip')).toBe(-1);
221
221
  });
222
222
  });
223
223
 
224
224
  describe('getSkeleton3DJointWorldMatrix', () => {
225
225
  it('reads the joint world matrix into out and returns true', () => {
226
- const joint = createSceneNode();
226
+ const joint = createNode3D();
227
227
  setVector3(joint.position, 5, 3, 0);
228
228
  invalidateNodeLocalTransform(joint);
229
229
  const skeleton = createSkeleton3D([joint]);
@@ -235,7 +235,7 @@ describe('getSkeleton3DJointWorldMatrix', () => {
235
235
  });
236
236
 
237
237
  it('returns false and leaves out untouched for an out-of-range index', () => {
238
- const skeleton = createSkeleton3D([createSceneNode()]);
238
+ const skeleton = createSkeleton3D([createNode3D()]);
239
239
  const out = createMatrix4();
240
240
  expect(getSkeleton3DJointWorldMatrix(out, skeleton, 5)).toBe(false);
241
241
  expect(getSkeleton3DJointWorldMatrix(out, skeleton, -1)).toBe(false);
@@ -245,8 +245,8 @@ describe('getSkeleton3DJointWorldMatrix', () => {
245
245
 
246
246
  describe('getSkeleton3DJointWorldMatrixByName', () => {
247
247
  it('resolves the joint by name and reads its world matrix', () => {
248
- const hip = createSceneNode();
249
- const hand = createSceneNode();
248
+ const hip = createNode3D();
249
+ const hand = createNode3D();
250
250
  setVector3(hand.position, 7, 0, 0);
251
251
  invalidateNodeLocalTransform(hand);
252
252
  const skeleton = createSkeleton3D([hip, hand], undefined, ['hip', 'hand']);
@@ -260,7 +260,7 @@ describe('getSkeleton3DJointWorldMatrixByName', () => {
260
260
 
261
261
  describe('setSkeleton3DBindPose', () => {
262
262
  it('rebinds so the current pose becomes the rest pose', () => {
263
- const joint = createSceneNode();
263
+ const joint = createNode3D();
264
264
  const skeleton = createSkeleton3D([joint]);
265
265
  setVector3(joint.position, 2, 0, 0);
266
266
  invalidateNodeLocalTransform(joint);
@@ -274,11 +274,11 @@ describe('setSkeleton3DBindPose', () => {
274
274
 
275
275
  describe('validateSkeleton3D', () => {
276
276
  it('returns null for a well-formed skeleton', () => {
277
- expect(validateSkeleton3D(createSkeleton3D([createSceneNode(), createSceneNode()]))).toBeNull();
277
+ expect(validateSkeleton3D(createSkeleton3D([createNode3D(), createNode3D()]))).toBeNull();
278
278
  });
279
279
 
280
280
  it('returns a diagnostic when inverseBindMatrices length does not match jointCount * 16', () => {
281
- const skeleton = createSkeleton3D([createSceneNode(), createSceneNode()]);
281
+ const skeleton = createSkeleton3D([createNode3D(), createNode3D()]);
282
282
  skeleton.inverseBindMatrices = new Float32Array(16);
283
283
 
284
284
  const diagnostic = validateSkeleton3D(skeleton);
@@ -1,7 +1,7 @@
1
1
  import { setVector3 } from '@flighthq/geometry';
2
2
  import { CANONICAL_SKINNED_MESH_GEOMETRY_LAYOUT, createMeshGeometry } from '@flighthq/mesh';
3
3
  import { invalidateNodeLocalTransform } from '@flighthq/node';
4
- import { createSceneNode } from '@flighthq/scene';
4
+ import { createNode3D } from '@flighthq/scene3d';
5
5
  import type { MeshGeometry, VertexAttributeLayout } from '@flighthq/types';
6
6
  import { describe, expect, it } from 'vitest';
7
7
 
@@ -77,7 +77,7 @@ describe('captureMeshSkinBindPose', () => {
77
77
  describe('skinMeshGeometry', () => {
78
78
  it('leaves the vertex at its bind position when the palette is identity', () => {
79
79
  const geometry = createOneVertexSkinnedGeometry([1, 0, 0], [0, 1, 0], [0, 0, 0, 0], [1, 0, 0, 0]);
80
- const joint = createSceneNode();
80
+ const joint = createNode3D();
81
81
  const skeleton = createSkeleton3D([joint]);
82
82
  const bindPose = captureMeshSkinBindPose(geometry);
83
83
  const versionBefore = geometry.version;
@@ -93,7 +93,7 @@ describe('skinMeshGeometry', () => {
93
93
 
94
94
  it('translates the vertex by a translated joint and preserves the untouched channels', () => {
95
95
  const geometry = createOneVertexSkinnedGeometry([1, 0, 0], [0, 1, 0], [0, 0, 0, 0], [1, 0, 0, 0]);
96
- const joint = createSceneNode();
96
+ const joint = createNode3D();
97
97
  // Bind pose is captured with the joint at the origin (inverse-bind = identity), then the joint moves.
98
98
  const skeleton = createSkeleton3D([joint]);
99
99
  const bindPose = captureMeshSkinBindPose(geometry);
@@ -1,7 +1,7 @@
1
1
  import { setVector3 } from '@flighthq/geometry';
2
2
  import { CANONICAL_SKINNED_MESH_GEOMETRY_LAYOUT, createMeshGeometry } from '@flighthq/mesh';
3
3
  import { invalidateNodeLocalTransform } from '@flighthq/node';
4
- import { createMesh, createSceneNode } from '@flighthq/scene';
4
+ import { createMesh, createNode3D } from '@flighthq/scene3d';
5
5
  import type { MeshMorph } from '@flighthq/types';
6
6
  import { describe, expect, it } from 'vitest';
7
7
 
@@ -20,7 +20,7 @@ describe('updateMeshDeformation', () => {
20
20
  weights: new Float32Array([1]),
21
21
  };
22
22
  mesh.morph = morph;
23
- const joint = createSceneNode();
23
+ const joint = createNode3D();
24
24
  mesh.skin = { skeleton: createSkeleton3D([joint]) };
25
25
  setVector3(joint.position, 0, 5, 0);
26
26
  invalidateNodeLocalTransform(joint);
@@ -53,7 +53,7 @@ describe('updateMeshDeformation', () => {
53
53
  createMeshGeometry({ layout: CANONICAL_SKINNED_MESH_GEOMETRY_LAYOUT, vertices: skinVertices }),
54
54
  [],
55
55
  );
56
- const joint = createSceneNode();
56
+ const joint = createNode3D();
57
57
  skinMesh.skin = { skeleton: createSkeleton3D([joint]) };
58
58
  setVector3(joint.position, 0, 2, 0);
59
59
  invalidateNodeLocalTransform(joint);
@@ -6,7 +6,7 @@ import {
6
6
  getMeshGeometrySkinBindPose,
7
7
  } from '@flighthq/mesh';
8
8
  import { invalidateNodeLocalTransform } from '@flighthq/node';
9
- import { createMesh, createSceneNode } from '@flighthq/scene';
9
+ import { createMesh, createNode3D } from '@flighthq/scene3d';
10
10
  import { describe, expect, it } from 'vitest';
11
11
 
12
12
  import { createSkeleton3D } from './skeleton3d';
@@ -24,7 +24,7 @@ function createOneVertexSkinnedMesh() {
24
24
  describe('updateMeshSkin', () => {
25
25
  it('deforms the mesh, bumps the version, and lazily captures the bind pose onto the runtime', () => {
26
26
  const mesh = createOneVertexSkinnedMesh();
27
- const joint = createSceneNode();
27
+ const joint = createNode3D();
28
28
  mesh.skin = { skeleton: createSkeleton3D([joint]) };
29
29
  setVector3(joint.position, 0, 5, 0);
30
30
  invalidateNodeLocalTransform(joint);
@@ -45,7 +45,7 @@ describe('updateMeshSkin', () => {
45
45
 
46
46
  it('reuses the captured bind pose across frames rather than recapturing', () => {
47
47
  const mesh = createOneVertexSkinnedMesh();
48
- const joint = createSceneNode();
48
+ const joint = createNode3D();
49
49
  mesh.skin = { skeleton: createSkeleton3D([joint]) };
50
50
 
51
51
  updateMeshSkin(mesh);
@@ -1,4 +0,0 @@
1
- import type { Mesh, NodeAny } from '@flighthq/types';
2
- export declare function prepareMeshSkinning(mesh: Readonly<Mesh>): void;
3
- export declare function prepareSceneSkinning(scene: Readonly<NodeAny>): void;
4
- //# sourceMappingURL=prepareSceneSkinning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareSceneSkinning.d.ts","sourceRoot":"","sources":["../src/prepareSceneSkinning.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAwBlE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAoB9D;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAcnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareSceneSkinning.js","sourceRoot":"","sources":["../src/prepareSceneSkinning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,sGAAsG;AACtG,uGAAuG;AACvG,uFAAuF;AACvF,gGAAgG;AAChG,0FAA0F;AAC1F,EAAE;AACF,sGAAsG;AACtG,uGAAuG;AACvG,wGAAwG;AACxG,qGAAqG;AACrG,uGAAuG;AACvG,oGAAoG;AACpG,sDAAsD;AACtD,EAAE;AACF,+FAA+F;AAC/F,oGAAoG;AACpG,wGAAwG;AACxG,qGAAqG;AACrG,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO;IAEzB,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7C,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAe,CAAgB,CAAC;IAC/D,IAAI,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IACzC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,GAAG,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC;IACvC,CAAC;IACD,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,oGAAoG;AACpG,mGAAmG;AACnG,uGAAuG;AACvG,oGAAoG;AACpG,qGAAqG;AACrG,EAAE;AACF,sGAAsG;AACtG,uGAAuG;AACvG,qGAAqG;AACrG,kGAAkG;AAClG,sGAAsG;AACtG,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAE3B,mGAAmG;IACnG,iDAAiD;IACjD,MAAM,IAAI,GAAG,KAAwB,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;QAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;IAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}