@flighthq/picking 0.2.0 → 0.2.1-next.423.3350e53

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.
@@ -1,13 +1,12 @@
1
- import type { Scene } from '@flighthq/scene';
2
- import type { Camera, Mesh, Ray3D, SceneHit } from '@flighthq/types';
1
+ import type { Camera, Mesh, Ray3D, SceneHit, SceneNode } from '@flighthq/types';
3
2
  export interface ScenePickOptions {
4
3
  cullBackfaces?: boolean;
5
4
  maxDistance?: number;
6
5
  predicate?: (mesh: Readonly<Mesh>) => boolean;
7
6
  }
8
7
  export declare function createSceneHit(): SceneHit;
9
- export declare function pickScene(scene: Readonly<Scene>, camera: Readonly<Camera>, screenX: number, screenY: number, out: SceneHit, options?: Readonly<ScenePickOptions>): SceneHit | null;
10
- export declare function pickSceneAll(scene: Readonly<Scene>, camera: Readonly<Camera>, screenX: number, screenY: number, outArray: SceneHit[], options?: Readonly<ScenePickOptions>): SceneHit[];
11
- export declare function pickSceneAllWithRay3D(scene: Readonly<Scene>, ray: Readonly<Ray3D>, outArray: SceneHit[], options?: Readonly<ScenePickOptions>): SceneHit[];
12
- export declare function pickSceneWithRay3D(scene: Readonly<Scene>, ray: Readonly<Ray3D>, out: SceneHit, options?: Readonly<ScenePickOptions>): SceneHit | null;
8
+ export declare function pickScene(scene: Readonly<SceneNode>, camera: Readonly<Camera>, screenX: number, screenY: number, out: SceneHit, options?: Readonly<ScenePickOptions>): SceneHit | null;
9
+ export declare function pickSceneAll(scene: Readonly<SceneNode>, camera: Readonly<Camera>, screenX: number, screenY: number, outArray: SceneHit[], options?: Readonly<ScenePickOptions>): SceneHit[];
10
+ export declare function pickSceneAllWithRay3D(scene: Readonly<SceneNode>, ray: Readonly<Ray3D>, outArray: SceneHit[], options?: Readonly<ScenePickOptions>): SceneHit[];
11
+ export declare function pickSceneWithRay3D(scene: Readonly<SceneNode>, ray: Readonly<Ray3D>, out: SceneHit, options?: Readonly<ScenePickOptions>): SceneHit | null;
13
12
  //# sourceMappingURL=pickScene.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pickScene.d.ts","sourceRoot":"","sources":["../src/pickScene.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAsB,MAAM,iBAAiB,CAAC;AASzF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;CAC/C;AAID,wBAAgB,cAAc,IAAI,QAAQ,CAezC;AAQD,wBAAgB,SAAS,CACvB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,QAAQ,EACb,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,GAAG,IAAI,CAGjB;AAKD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAAE,EACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,EAAE,CAMZ;AAMD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAAE,EACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,EAAE,CAcZ;AAcD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EACpB,GAAG,EAAE,QAAQ,EACb,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,GAAG,IAAI,CAUjB"}
1
+ {"version":3,"file":"pickScene.d.ts","sourceRoot":"","sources":["../src/pickScene.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAW,MAAM,iBAAiB,CAAC;AASzF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;CAC/C;AAID,wBAAgB,cAAc,IAAI,QAAQ,CAezC;AAQD,wBAAgB,SAAS,CACvB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,QAAQ,EACb,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,GAAG,IAAI,CAGjB;AAKD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAAE,EACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,EAAE,CAMZ;AAMD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAAE,EACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,EAAE,CAcZ;AAcD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EACpB,GAAG,EAAE,QAAQ,EACb,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,QAAQ,GAAG,IAAI,CAUjB"}
package/dist/pickScene.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getCameraScreenToWorldRay } from '@flighthq/camera';
2
2
  import { createAabb, createMatrix4, createRay3D, createVector3, getRay3DPointAt, intersectRay3DAabb, intersectRay3DTriangle, inverseMatrix4, } from '@flighthq/geometry';
3
3
  import { getMeshGeometryTriangleCount, getMeshGeometryVertexPosition } from '@flighthq/mesh';
4
- import { ensureNodeWorldTransformMatrix4, getNodeRuntime, getNodeWorldTransformMatrix4 } from '@flighthq/node';
4
+ import { ensureNodeWorldMatrix4, getNodeRuntime, getNodeWorldMatrix4 } from '@flighthq/node';
5
5
  import { getSceneNodeWorldBounds, isMesh } from '@flighthq/scene';
6
6
  // Allocates a zeroed SceneHit. Handy for the `out` of `pickScene`/`pickSceneWithRay3D` and for
7
7
  // growing the `outArray` of the multi-hit queries. `node` is null until a pick fills it.
@@ -149,8 +149,8 @@ function intersectMeshTriangles(mesh, ray, maxDistance, cullBackfaces, onHit) {
149
149
  getSceneNodeWorldBounds(_worldBounds, mesh);
150
150
  if (intersectRay3DAabb(ray, _worldBounds) < 0)
151
151
  return;
152
- ensureNodeWorldTransformMatrix4(mesh);
153
- const worldMatrix = getNodeWorldTransformMatrix4(mesh);
152
+ ensureNodeWorldMatrix4(mesh);
153
+ const worldMatrix = getNodeWorldMatrix4(mesh);
154
154
  if (!inverseMatrix4(_inverseWorld, worldMatrix))
155
155
  return;
156
156
  transformPointByMatrix4(_localRay.origin, ray.origin, _inverseWorld.m);
@@ -1 +1 @@
1
- {"version":3,"file":"pickScene.js","sourceRoot":"","sources":["../src/pickScene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pickScene.js","sourceRoot":"","sources":["../src/pickScene.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/picking",
3
- "version": "0.2.0",
3
+ "version": "0.2.1-next.423.3350e53",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/flighthq/flight.git",
@@ -32,12 +32,12 @@
32
32
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@flighthq/camera": "0.2.0",
36
- "@flighthq/geometry": "0.2.0",
37
- "@flighthq/mesh": "0.2.0",
38
- "@flighthq/node": "0.2.0",
39
- "@flighthq/scene": "0.2.0",
40
- "@flighthq/types": "0.2.0"
35
+ "@flighthq/camera": "0.2.1-next.423.3350e53",
36
+ "@flighthq/geometry": "0.2.1-next.423.3350e53",
37
+ "@flighthq/mesh": "0.2.1-next.423.3350e53",
38
+ "@flighthq/node": "0.2.1-next.423.3350e53",
39
+ "@flighthq/scene": "0.2.1-next.423.3350e53",
40
+ "@flighthq/types": "0.2.1-next.423.3350e53"
41
41
  },
42
42
  "devDependencies": {
43
43
  "typescript": "^5.3.0"
@@ -4,19 +4,19 @@ import {
4
4
  createPerspectiveProjection,
5
5
  setCameraViewMatrix4FromLookAt,
6
6
  } from '@flighthq/camera';
7
- import { createQuaternion, createRay3D, createVector3, setQuaternionFromAxisAngle, setRay3D } from '@flighthq/geometry';
8
- import { createBoxMeshGeometry, createMeshGeometryFromAttributes } from '@flighthq/mesh';
9
- import { addNodeChild } from '@flighthq/node';
10
- import type { Scene } from '@flighthq/scene';
11
7
  import {
12
- createMesh,
13
- createScene,
14
- createSceneNode,
15
- setSceneNodePosition,
16
- setSceneNodeRotationQuaternion,
17
- setSceneNodeScale,
18
- } from '@flighthq/scene';
19
- import type { Camera, Mesh, Ray3D, SceneHit } from '@flighthq/types';
8
+ copyQuaternion,
9
+ createQuaternion,
10
+ createRay3D,
11
+ createVector3,
12
+ setQuaternionFromAxisAngle,
13
+ setRay3D,
14
+ setVector3,
15
+ } from '@flighthq/geometry';
16
+ import { createBoxMeshGeometry, createMeshGeometryFromAttributes } from '@flighthq/mesh';
17
+ import { addNodeChild, invalidateNodeLocalTransform } from '@flighthq/node';
18
+ import { createMesh, createSceneNode, SceneNodeKind } from '@flighthq/scene';
19
+ import type { Camera, Mesh, Ray3D, SceneHit, SceneNode } from '@flighthq/types';
20
20
 
21
21
  import { createSceneHit, pickScene, pickSceneAll, pickSceneAllWithRay3D, pickSceneWithRay3D } from './pickScene';
22
22
 
@@ -60,8 +60,8 @@ function triangleMesh(frontFacing: boolean): Mesh {
60
60
  return createMesh(geometry, []);
61
61
  }
62
62
 
63
- function sceneWithCenteredBox(): { scene: Scene; mesh: Mesh } {
64
- const scene = createScene();
63
+ function sceneWithCenteredBox(): { scene: SceneNode; mesh: Mesh } {
64
+ const scene = createSceneNode(SceneNodeKind);
65
65
  const mesh = createMesh(createBoxMeshGeometry(2, 2, 2), []);
66
66
  addNodeChild(scene, mesh);
67
67
  return { scene, mesh };
@@ -107,7 +107,7 @@ describe('pickScene', () => {
107
107
 
108
108
  it('returns null for a scene containing only non-mesh nodes', () => {
109
109
  const camera = makeCamera();
110
- const scene = createScene();
110
+ const scene = createSceneNode(SceneNodeKind);
111
111
  // A plain SceneNode is not a Mesh; isMesh() returns false for it.
112
112
  const node = createSceneNode();
113
113
  addNodeChild(scene, node);
@@ -127,7 +127,7 @@ describe('pickScene', () => {
127
127
 
128
128
  it('returns null when the scene has no meshes', () => {
129
129
  const camera = makeCamera();
130
- const scene = createScene();
130
+ const scene = createSceneNode(SceneNodeKind);
131
131
  const out = createSceneHit();
132
132
 
133
133
  expect(pickScene(scene, camera, 0, 0, out)).toBeNull();
@@ -152,7 +152,7 @@ describe('pickScene', () => {
152
152
  it('returns the nearer of two overlapping meshes', () => {
153
153
  // Camera is at z = 5 looking toward the origin in the -Z direction.
154
154
  const camera = makeCamera();
155
- const scene = createScene();
155
+ const scene = createSceneNode(SceneNodeKind);
156
156
 
157
157
  // meshFar is centred at the origin: front face at z = 1, back face at z = -1.
158
158
  const meshFar = createMesh(createBoxMeshGeometry(2, 2, 2), []);
@@ -161,7 +161,8 @@ describe('pickScene', () => {
161
161
  // meshNear is shifted to z = 2: front face at z = 3, back face at z = 1.
162
162
  // The camera ray hits its front face first (distance ≈ 2 vs ≈ 4 for meshFar).
163
163
  const meshNear = createMesh(createBoxMeshGeometry(2, 2, 2), []);
164
- setSceneNodePosition(meshNear, 0, 0, 2);
164
+ setVector3(meshNear.position, 0, 0, 2);
165
+ invalidateNodeLocalTransform(meshNear);
165
166
  addNodeChild(scene, meshNear);
166
167
 
167
168
  const out = createSceneHit();
@@ -186,7 +187,7 @@ describe('pickScene', () => {
186
187
 
187
188
  it('prunes the subtree of a disabled group node', () => {
188
189
  const camera = makeCamera();
189
- const scene = createScene();
190
+ const scene = createSceneNode(SceneNodeKind);
190
191
  const group = createSceneNode();
191
192
  group.enabled = false;
192
193
  const mesh = createMesh(createBoxMeshGeometry(2, 2, 2), []);
@@ -199,11 +200,12 @@ describe('pickScene', () => {
199
200
 
200
201
  it('excludes a mesh rejected by the predicate option', () => {
201
202
  const camera = makeCamera();
202
- const scene = createScene();
203
+ const scene = createSceneNode(SceneNodeKind);
203
204
  const meshFar = createMesh(createBoxMeshGeometry(2, 2, 2), []);
204
205
  addNodeChild(scene, meshFar);
205
206
  const meshNear = createMesh(createBoxMeshGeometry(2, 2, 2), []);
206
- setSceneNodePosition(meshNear, 0, 0, 2);
207
+ setVector3(meshNear.position, 0, 0, 2);
208
+ invalidateNodeLocalTransform(meshNear);
207
209
  addNodeChild(scene, meshNear);
208
210
  const out = createSceneHit();
209
211
 
@@ -225,11 +227,12 @@ describe('pickScene', () => {
225
227
  it('maps a non-square orthographic viewport without an aspect mismap', () => {
226
228
  // View volume is 8 wide (halfWidth 4) but only 2 tall (halfHeight 1).
227
229
  const camera = makeOrthoCamera(4, 1);
228
- const scene = createScene();
230
+ const scene = createSceneNode(SceneNodeKind);
229
231
  // A 2x2x2 box centred at x = 3 spans x in [2, 4], within the horizontal extent but well outside
230
232
  // the vertical one — so a square (aspect = 1) mismap of screenX would miss it.
231
233
  const mesh = createMesh(createBoxMeshGeometry(2, 2, 2), []);
232
- setSceneNodePosition(mesh, 3, 0, 0);
234
+ setVector3(mesh.position, 3, 0, 0);
235
+ invalidateNodeLocalTransform(mesh);
233
236
  addNodeChild(scene, mesh);
234
237
  const out = createSceneHit();
235
238
 
@@ -245,15 +248,17 @@ describe('pickScene', () => {
245
248
 
246
249
  it('hits a rotated and scaled mesh through the local-space path', () => {
247
250
  const camera = makeCamera();
248
- const scene = createScene();
251
+ const scene = createSceneNode(SceneNodeKind);
249
252
  const mesh = createMesh(createBoxMeshGeometry(2, 2, 2), []);
250
253
  // Non-uniform scale (z doubled) plus a rotation about the Z axis. The +Z face stays on-axis, so
251
254
  // its world position is z = 1 * 2 = 2 while the surrounding geometry is rotated — exercising the
252
255
  // inverse-transform narrow phase.
253
- setSceneNodeScale(mesh, 1.5, 1.5, 2);
256
+ setVector3(mesh.scale, 1.5, 1.5, 2);
257
+ invalidateNodeLocalTransform(mesh);
254
258
  const q = createQuaternion();
255
259
  setQuaternionFromAxisAngle(q, createVector3(0, 0, 1), Math.PI / 4);
256
- setSceneNodeRotationQuaternion(mesh, q);
260
+ copyQuaternion(mesh.rotation, q);
261
+ invalidateNodeLocalTransform(mesh);
257
262
  addNodeChild(scene, mesh);
258
263
  const out = createSceneHit();
259
264
 
@@ -270,11 +275,12 @@ describe('pickScene', () => {
270
275
  describe('pickSceneAll', () => {
271
276
  it('collects both overlapping meshes sorted by ascending distance', () => {
272
277
  const camera = makeCamera();
273
- const scene = createScene();
278
+ const scene = createSceneNode(SceneNodeKind);
274
279
  const meshFar = createMesh(createBoxMeshGeometry(2, 2, 2), []);
275
280
  addNodeChild(scene, meshFar);
276
281
  const meshNear = createMesh(createBoxMeshGeometry(2, 2, 2), []);
277
- setSceneNodePosition(meshNear, 0, 0, 2);
282
+ setVector3(meshNear.position, 0, 0, 2);
283
+ invalidateNodeLocalTransform(meshNear);
278
284
  addNodeChild(scene, meshNear);
279
285
  const outArray: SceneHit[] = [];
280
286
 
@@ -350,9 +356,9 @@ describe('pickSceneWithRay3D', () => {
350
356
  });
351
357
 
352
358
  it('culls a back-facing triangle but keeps a front-facing one', () => {
353
- const front = createScene();
359
+ const front = createSceneNode(SceneNodeKind);
354
360
  addNodeChild(front, triangleMesh(true));
355
- const back = createScene();
361
+ const back = createSceneNode(SceneNodeKind);
356
362
  addNodeChild(back, triangleMesh(false));
357
363
  const out = createSceneHit();
358
364