@ifc-lite/renderer 6.0.1 → 6.3.1

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 (206) hide show
  1. package/README.md +23 -0
  2. package/dist/ao-pass.d.ts +0 -16
  3. package/dist/ao-pass.d.ts.map +1 -1
  4. package/dist/ao-pass.js +2 -0
  5. package/dist/ao-pass.js.map +1 -1
  6. package/dist/camera-animation.d.ts +1 -1
  7. package/dist/camera-animation.d.ts.map +1 -1
  8. package/dist/camera-animation.js +11 -11
  9. package/dist/camera-animation.js.map +1 -1
  10. package/dist/camera-controls.d.ts +0 -21
  11. package/dist/camera-controls.d.ts.map +1 -1
  12. package/dist/camera-controls.js +8 -90
  13. package/dist/camera-controls.js.map +1 -1
  14. package/dist/camera-inertia.d.ts +27 -0
  15. package/dist/camera-inertia.d.ts.map +1 -0
  16. package/dist/camera-inertia.js +33 -0
  17. package/dist/camera-inertia.js.map +1 -0
  18. package/dist/camera-surface-zoom.d.ts +1 -1
  19. package/dist/camera-zoom.d.ts +55 -0
  20. package/dist/camera-zoom.d.ts.map +1 -0
  21. package/dist/camera-zoom.js +138 -0
  22. package/dist/camera-zoom.js.map +1 -0
  23. package/dist/camera.d.ts.map +1 -1
  24. package/dist/camera.js +8 -0
  25. package/dist/camera.js.map +1 -1
  26. package/dist/deviation/deviation-computer.d.ts +5 -1
  27. package/dist/deviation/deviation-computer.d.ts.map +1 -1
  28. package/dist/deviation/deviation-computer.js +13 -6
  29. package/dist/deviation/deviation-computer.js.map +1 -1
  30. package/dist/deviation/deviation-readback.d.ts +16 -3
  31. package/dist/deviation/deviation-readback.d.ts.map +1 -1
  32. package/dist/deviation/deviation-readback.js +46 -36
  33. package/dist/deviation/deviation-readback.js.map +1 -1
  34. package/dist/deviation/deviation-statistics-kernel.d.ts +111 -0
  35. package/dist/deviation/deviation-statistics-kernel.d.ts.map +1 -0
  36. package/dist/deviation/deviation-statistics-kernel.js +303 -0
  37. package/dist/deviation/deviation-statistics-kernel.js.map +1 -0
  38. package/dist/deviation/deviation-statistics.d.ts +100 -0
  39. package/dist/deviation/deviation-statistics.d.ts.map +1 -0
  40. package/dist/deviation/deviation-statistics.js +100 -0
  41. package/dist/deviation/deviation-statistics.js.map +1 -0
  42. package/dist/device-recovery.d.ts.map +1 -1
  43. package/dist/device-recovery.js +5 -0
  44. package/dist/device-recovery.js.map +1 -1
  45. package/dist/device.d.ts +0 -3
  46. package/dist/device.d.ts.map +1 -1
  47. package/dist/device.js +5 -1
  48. package/dist/device.js.map +1 -1
  49. package/dist/edge-pass.d.ts +0 -12
  50. package/dist/edge-pass.d.ts.map +1 -1
  51. package/dist/edge-pass.js +3 -0
  52. package/dist/edge-pass.js.map +1 -1
  53. package/dist/edl-pass.d.ts +0 -21
  54. package/dist/edl-pass.d.ts.map +1 -1
  55. package/dist/edl-pass.js +23 -0
  56. package/dist/edl-pass.js.map +1 -1
  57. package/dist/frame-timing-gpu.d.ts +11 -15
  58. package/dist/frame-timing-gpu.d.ts.map +1 -1
  59. package/dist/frame-timing-gpu.js +57 -26
  60. package/dist/frame-timing-gpu.js.map +1 -1
  61. package/dist/gpu-counters.d.ts +30 -0
  62. package/dist/gpu-counters.d.ts.map +1 -0
  63. package/dist/gpu-counters.js +84 -0
  64. package/dist/gpu-counters.js.map +1 -0
  65. package/dist/gpu-static-upload.d.ts.map +1 -1
  66. package/dist/gpu-static-upload.js +2 -0
  67. package/dist/gpu-static-upload.js.map +1 -1
  68. package/dist/index.d.ts +33 -21
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +71 -60
  71. package/dist/index.js.map +1 -1
  72. package/dist/pick-rte-snapshot.d.ts +4 -0
  73. package/dist/pick-rte-snapshot.d.ts.map +1 -1
  74. package/dist/pick-rte-snapshot.js +10 -0
  75. package/dist/pick-rte-snapshot.js.map +1 -1
  76. package/dist/picker-depth-sample.d.ts +9 -0
  77. package/dist/picker-depth-sample.d.ts.map +1 -0
  78. package/dist/picker-depth-sample.js +63 -0
  79. package/dist/picker-depth-sample.js.map +1 -0
  80. package/dist/picker-readbacks.d.ts +10 -1
  81. package/dist/picker-readbacks.d.ts.map +1 -1
  82. package/dist/picker-readbacks.js +30 -1
  83. package/dist/picker-readbacks.js.map +1 -1
  84. package/dist/picker.d.ts +4 -4
  85. package/dist/picker.d.ts.map +1 -1
  86. package/dist/picker.js +77 -102
  87. package/dist/picker.js.map +1 -1
  88. package/dist/picking-manager.d.ts +5 -2
  89. package/dist/picking-manager.d.ts.map +1 -1
  90. package/dist/picking-manager.js +32 -11
  91. package/dist/picking-manager.js.map +1 -1
  92. package/dist/pipeline.d.ts +8 -0
  93. package/dist/pipeline.d.ts.map +1 -1
  94. package/dist/pipeline.js +22 -0
  95. package/dist/pipeline.js.map +1 -1
  96. package/dist/pointcloud/point-cloud-keyed-chunks.d.ts +23 -0
  97. package/dist/pointcloud/point-cloud-keyed-chunks.d.ts.map +1 -0
  98. package/dist/pointcloud/point-cloud-keyed-chunks.js +44 -0
  99. package/dist/pointcloud/point-cloud-keyed-chunks.js.map +1 -0
  100. package/dist/pointcloud/point-cloud-node.d.ts +5 -1
  101. package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
  102. package/dist/pointcloud/point-cloud-node.js +8 -4
  103. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  104. package/dist/pointcloud/point-cloud-placement.d.ts +6 -0
  105. package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -1
  106. package/dist/pointcloud/point-cloud-placement.js +8 -0
  107. package/dist/pointcloud/point-cloud-placement.js.map +1 -1
  108. package/dist/pointcloud/point-cloud-ray-transform.d.ts +17 -8
  109. package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -1
  110. package/dist/pointcloud/point-cloud-ray-transform.js +17 -13
  111. package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -1
  112. package/dist/pointcloud/point-cloud-renderer.d.ts +10 -8
  113. package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
  114. package/dist/pointcloud/point-cloud-renderer.js +20 -31
  115. package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
  116. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts +8 -1
  117. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts.map +1 -1
  118. package/dist/pointcloud/point-cloud-stream-lifecycle.js +17 -2
  119. package/dist/pointcloud/point-cloud-stream-lifecycle.js.map +1 -1
  120. package/dist/pointcloud/point-cloud-uniforms.d.ts +11 -0
  121. package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
  122. package/dist/pointcloud/point-cloud-uniforms.js +8 -0
  123. package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
  124. package/dist/post-pass-chain.d.ts +2 -0
  125. package/dist/post-pass-chain.d.ts.map +1 -1
  126. package/dist/post-pass-chain.js +1 -1
  127. package/dist/post-pass-chain.js.map +1 -1
  128. package/dist/raycast-point-cloud-query.d.ts.map +1 -1
  129. package/dist/raycast-point-cloud-query.js +11 -1
  130. package/dist/raycast-point-cloud-query.js.map +1 -1
  131. package/dist/relative-to-eye.d.ts +3 -0
  132. package/dist/relative-to-eye.d.ts.map +1 -1
  133. package/dist/relative-to-eye.js +4 -1
  134. package/dist/relative-to-eye.js.map +1 -1
  135. package/dist/renderer-frame-timing.d.ts +21 -0
  136. package/dist/renderer-frame-timing.d.ts.map +1 -0
  137. package/dist/renderer-frame-timing.js +104 -0
  138. package/dist/renderer-frame-timing.js.map +1 -0
  139. package/dist/renderer-viewport.d.ts +13 -7
  140. package/dist/renderer-viewport.d.ts.map +1 -1
  141. package/dist/renderer-viewport.js +15 -7
  142. package/dist/renderer-viewport.js.map +1 -1
  143. package/dist/scene-batch-rebuild.d.ts +7 -0
  144. package/dist/scene-batch-rebuild.d.ts.map +1 -1
  145. package/dist/scene-batch-rebuild.js +12 -0
  146. package/dist/scene-batch-rebuild.js.map +1 -1
  147. package/dist/scene-contents.d.ts +3 -2
  148. package/dist/scene-contents.d.ts.map +1 -1
  149. package/dist/scene-flush.d.ts +43 -0
  150. package/dist/scene-flush.d.ts.map +1 -0
  151. package/dist/scene-flush.js +103 -0
  152. package/dist/scene-flush.js.map +1 -0
  153. package/dist/scene-geometry.d.ts.map +1 -1
  154. package/dist/scene-geometry.js +2 -0
  155. package/dist/scene-geometry.js.map +1 -1
  156. package/dist/scene.d.ts +26 -27
  157. package/dist/scene.d.ts.map +1 -1
  158. package/dist/scene.js +66 -109
  159. package/dist/scene.js.map +1 -1
  160. package/dist/selection-mask-pass.d.ts +2 -27
  161. package/dist/selection-mask-pass.d.ts.map +1 -1
  162. package/dist/selection-mask-pass.js +44 -39
  163. package/dist/selection-mask-pass.js.map +1 -1
  164. package/dist/selection-mask-pipelines.d.ts +3 -3
  165. package/dist/selection-mask-pipelines.d.ts.map +1 -1
  166. package/dist/selection-mask-pipelines.js +11 -8
  167. package/dist/selection-mask-pipelines.js.map +1 -1
  168. package/dist/shaders/depth-nudge.wgsl.d.ts +67 -0
  169. package/dist/shaders/depth-nudge.wgsl.d.ts.map +1 -0
  170. package/dist/shaders/depth-nudge.wgsl.js +130 -0
  171. package/dist/shaders/depth-nudge.wgsl.js.map +1 -0
  172. package/dist/shaders/ghost.wgsl.d.ts +2 -0
  173. package/dist/shaders/ghost.wgsl.d.ts.map +1 -0
  174. package/dist/shaders/ghost.wgsl.js +46 -0
  175. package/dist/shaders/ghost.wgsl.js.map +1 -0
  176. package/dist/shaders/main.wgsl.d.ts +1 -1
  177. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  178. package/dist/shaders/main.wgsl.js +6 -4
  179. package/dist/shaders/main.wgsl.js.map +1 -1
  180. package/dist/shaders/section-2d-overlay.wgsl.d.ts +1 -16
  181. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
  182. package/dist/shaders/section-2d-overlay.wgsl.js +6 -6
  183. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
  184. package/dist/shaders/selection-mask.wgsl.d.ts +2 -10
  185. package/dist/shaders/selection-mask.wgsl.d.ts.map +1 -1
  186. package/dist/shaders/selection-mask.wgsl.js +9 -42
  187. package/dist/shaders/selection-mask.wgsl.js.map +1 -1
  188. package/dist/shaders/symbolic-overlay.wgsl.d.ts +1 -1
  189. package/dist/shaders/symbolic-overlay.wgsl.d.ts.map +1 -1
  190. package/dist/shaders/symbolic-overlay.wgsl.js +5 -4
  191. package/dist/shaders/symbolic-overlay.wgsl.js.map +1 -1
  192. package/dist/shadow-pass.d.ts +0 -19
  193. package/dist/shadow-pass.d.ts.map +1 -1
  194. package/dist/shadow-pass.js +19 -0
  195. package/dist/shadow-pass.js.map +1 -1
  196. package/dist/test/frame-timing-device.d.ts +17 -0
  197. package/dist/test/frame-timing-device.d.ts.map +1 -0
  198. package/dist/test/frame-timing-device.js +70 -0
  199. package/dist/test/frame-timing-device.js.map +1 -0
  200. package/dist/types.d.ts +2 -0
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/xray-alpha.d.ts +8 -0
  203. package/dist/xray-alpha.d.ts.map +1 -1
  204. package/dist/xray-alpha.js +23 -0
  205. package/dist/xray-alpha.js.map +1 -1
  206. package/package.json +3 -2
@@ -0,0 +1,55 @@
1
+ /** Zoom pose calculations shared by direct gestures and camera inertia. */
2
+ import type { Vec3 } from './types.js';
3
+ import type { CameraInternalState } from './camera-state.js';
4
+ interface ZoomPose {
5
+ position: Vec3;
6
+ target: Vec3;
7
+ }
8
+ /** #7493: prevent zoom leaving the envelope, but preserve recovery after another
9
+ * control has moved outside it. Each recovery step must strictly reduce excess. */
10
+ export declare function canAdmitZoomPose(next: ZoomPose, before: ZoomPose): boolean;
11
+ export declare function captureZoomState(state: CameraInternalState, pivot: Vec3 | null): {
12
+ position: {
13
+ x: number;
14
+ y: number;
15
+ z: number;
16
+ };
17
+ target: {
18
+ x: number;
19
+ y: number;
20
+ z: number;
21
+ };
22
+ orthoSize: number;
23
+ pivot: {
24
+ x: number;
25
+ y: number;
26
+ z: number;
27
+ } | null;
28
+ };
29
+ /** Refuse an unsafe notch atomically, including its cursor anchor and pivot.
30
+ * The unchanged frame remains usable and the opposite gesture can recover.
31
+ * Do not clamp axes separately: that would rotate the viewing direction. */
32
+ export declare function acceptZoomStep(state: CameraInternalState, pivot: Vec3 | null, before: ReturnType<typeof captureZoomState>): boolean;
33
+ /**
34
+ * Orthographic: set view volume size, keep camera distance unchanged.
35
+ *
36
+ * `nextOrthoSize` has already been through {@link usableOrthoSize} — this is
37
+ * one of the two writers that bypass `Camera.setOrthoSize`, and the read-site
38
+ * backstop in `updateMatrices` only keeps the projection *matrix* finite:
39
+ * `getOrthoSize()` reads the state directly and that is what a saved
40
+ * viewpoint persists (#2461).
41
+ */
42
+ export declare function zoomOrthographic(state: CameraInternalState, dir: Vec3, nextOrthoSize: number): void;
43
+ /**
44
+ * Perspective: dolly-zoom — combines distance reduction with forward travel.
45
+ *
46
+ * Pure multiplicative zoom suffers from Zeno's paradox: each step covers a
47
+ * smaller absolute distance, so the user asymptotically approaches the target
48
+ * but can never pass it. By splitting each zoom step into distance reduction +
49
+ * forward dolly, the camera always makes real progress through the scene.
50
+ */
51
+ export declare function zoomPerspective(state: CameraInternalState, orbitCenter: Vec3 | null, distance: number, forward: Vec3, zoomFactor: number, fastZoom?: boolean): void;
52
+ /** Shift target toward the world point under the mouse cursor. */
53
+ export declare function shiftTargetTowardsMouse(state: CameraInternalState, dir: Vec3, distance: number, forward: Vec3, zoomFactor: number, mouseX: number, mouseY: number, canvasWidth: number, canvasHeight: number): void;
54
+ export {};
55
+ //# sourceMappingURL=camera-zoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-zoom.d.ts","sourceRoot":"","sources":["../src/camera-zoom.ts"],"names":[],"mappings":"AAIA,2EAA2E;AAC3E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAc7D,UAAU,QAAQ;IAAG,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE;AAQnD;mFACmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAI1E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI;;;;;;;;;;;;;;;;;EAG9E;AAED;;4EAE4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,OAAO,CAYnI;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAKnG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAyBnK;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAC9D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GACxE,IAAI,CA4CN"}
@@ -0,0 +1,138 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { MathUtils } from './math.js';
5
+ import { CAMERA_CONSTANTS as CC } from './constants.js';
6
+ import { isUsableUp } from './camera-guards.js';
7
+ import { MAX_RTE_SOURCE_ABS_METRES } from './relative-to-eye.js';
8
+ function normalizedScreenRight(forward, up) {
9
+ const v = MathUtils.cross(forward, up);
10
+ const length = Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
11
+ const scale = 1 / length;
12
+ return Number.isFinite(length) && length > 1e-10
13
+ ? { x: v.x * scale, y: v.y * scale, z: v.z * scale } : { x: 0, y: 0, z: 0 };
14
+ }
15
+ /** Largest absolute coordinate; invalid coordinates cannot be admitted. */
16
+ function poseMagnitude(pose) {
17
+ const values = [pose.position.x, pose.position.y, pose.position.z, pose.target.x, pose.target.y, pose.target.z];
18
+ return values.every(Number.isFinite) ? Math.max(...values.map(Math.abs)) : Infinity;
19
+ }
20
+ /** #7493: prevent zoom leaving the envelope, but preserve recovery after another
21
+ * control has moved outside it. Each recovery step must strictly reduce excess. */
22
+ export function canAdmitZoomPose(next, before) {
23
+ const magnitude = poseMagnitude(next);
24
+ return magnitude <= MAX_RTE_SOURCE_ABS_METRES
25
+ || (Number.isFinite(magnitude) && Number.isFinite(poseMagnitude(before)) && magnitude < poseMagnitude(before));
26
+ }
27
+ export function captureZoomState(state, pivot) {
28
+ return { position: { ...state.camera.position }, target: { ...state.camera.target },
29
+ orthoSize: state.orthoSize, pivot: pivot ? { ...pivot } : null };
30
+ }
31
+ /** Refuse an unsafe notch atomically, including its cursor anchor and pivot.
32
+ * The unchanged frame remains usable and the opposite gesture can recover.
33
+ * Do not clamp axes separately: that would rotate the viewing direction. */
34
+ export function acceptZoomStep(state, pivot, before) {
35
+ if (canAdmitZoomPose(state.camera, before))
36
+ return true;
37
+ // Orthographic centred zoom changes only scale, so it cannot worsen an
38
+ // existing coordinate violation. Keep cursor translations on the strict gate.
39
+ if (state.projectionMode === 'orthographic' && Number.isFinite(poseMagnitude(state.camera))
40
+ && ['x', 'y', 'z'].every(axis => state.camera.position[axis] === before.position[axis]
41
+ && state.camera.target[axis] === before.target[axis]))
42
+ return true;
43
+ Object.assign(state.camera.position, before.position);
44
+ Object.assign(state.camera.target, before.target);
45
+ state.orthoSize = before.orthoSize;
46
+ if (pivot && before.pivot)
47
+ Object.assign(pivot, before.pivot);
48
+ return false;
49
+ }
50
+ /**
51
+ * Orthographic: set view volume size, keep camera distance unchanged.
52
+ *
53
+ * `nextOrthoSize` has already been through {@link usableOrthoSize} — this is
54
+ * one of the two writers that bypass `Camera.setOrthoSize`, and the read-site
55
+ * backstop in `updateMatrices` only keeps the projection *matrix* finite:
56
+ * `getOrthoSize()` reads the state directly and that is what a saved
57
+ * viewpoint persists (#2461).
58
+ */
59
+ export function zoomOrthographic(state, dir, nextOrthoSize) {
60
+ state.orthoSize = nextOrthoSize;
61
+ state.camera.position.x = state.camera.target.x + dir.x;
62
+ state.camera.position.y = state.camera.target.y + dir.y;
63
+ state.camera.position.z = state.camera.target.z + dir.z;
64
+ }
65
+ /**
66
+ * Perspective: dolly-zoom — combines distance reduction with forward travel.
67
+ *
68
+ * Pure multiplicative zoom suffers from Zeno's paradox: each step covers a
69
+ * smaller absolute distance, so the user asymptotically approaches the target
70
+ * but can never pass it. By splitting each zoom step into distance reduction +
71
+ * forward dolly, the camera always makes real progress through the scene.
72
+ */
73
+ export function zoomPerspective(state, orbitCenter, distance, forward, zoomFactor, fastZoom) {
74
+ const zoomStep = distance * (1 - zoomFactor); // positive when zooming in
75
+ // Fast zoom (Shift+scroll or Cesium mode): pure dolly — the full zoom step
76
+ // translates the rig forward, distance stays constant, no Zeno slow-down.
77
+ // Normal zoom: half dolly + half distance reduction — gives zoom-to-cursor
78
+ // convergence but decelerates as the camera approaches the target.
79
+ const dolly = fastZoom ? zoomStep : zoomStep * 0.5;
80
+ const newDistance = fastZoom ? distance : Math.max(CC.MIN_PERSPECTIVE_DISTANCE, distance - zoomStep * 0.5);
81
+ // Move target (and orbit center) forward to traverse the scene
82
+ const dollyOffset = { x: forward.x * dolly, y: forward.y * dolly, z: forward.z * dolly };
83
+ for (const point of orbitCenter ? [state.camera.target, orbitCenter] : [state.camera.target]) {
84
+ point.x += dollyOffset.x;
85
+ point.y += dollyOffset.y;
86
+ point.z += dollyOffset.z;
87
+ }
88
+ // Position camera at new distance from updated target
89
+ const t = state.camera.target;
90
+ Object.assign(state.camera.position, {
91
+ x: t.x - forward.x * newDistance,
92
+ y: t.y - forward.y * newDistance,
93
+ z: t.z - forward.z * newDistance,
94
+ });
95
+ }
96
+ /** Shift target toward the world point under the mouse cursor. */
97
+ export function shiftTargetTowardsMouse(state, dir, distance, forward, zoomFactor, mouseX, mouseY, canvasWidth, canvasHeight) {
98
+ // The cursor anchor is the one place a gesture reads `up` and writes the
99
+ // result into the pose, and `up` is as externally authored as `position`
100
+ // and `target` are — so the distance guard in `zoom()` is not the whole
101
+ // check. An unusable `up` makes `right` and `actualUp` non-finite, and the
102
+ // three lines at the bottom put that straight into `camera.target`, which
103
+ // `zoomPerspective`/`zoomOrthographic` then copy into `camera.position`:
104
+ // one bad component of `up` becomes all six of the pose in a single wheel
105
+ // notch. The guard belongs here rather than in `zoom()` because `up` feeds
106
+ // only this branch — returning from `zoom()` would also kill the plain
107
+ // zoom, which never touches `up` — and rather than in `setUp`, because the
108
+ // animated viewpoint-restore path writes `camera.up` through
109
+ // `animateToWithUp` without going near the setter.
110
+ //
111
+ // Dropping the anchor is the fallback the surrounding code already uses:
112
+ // it is exactly what a zero-length or view-parallel `up` produces today
113
+ // (`normalize` returns `{0,0,0}`, so `mouseWorld` collapses onto `target`
114
+ // and the target does not move). The zoom itself still happens, centred
115
+ // rather than cursor-anchored, and the pose is left as it was found.
116
+ if (!isUsableUp(state.camera.up))
117
+ return;
118
+ const ndcX = (mouseX / canvasWidth) * 2 - 1;
119
+ const ndcY = 1 - (mouseY / canvasHeight) * 2;
120
+ const right = normalizedScreenRight(forward, state.camera.up);
121
+ const actualUp = MathUtils.cross(right, forward);
122
+ const halfHeight = state.projectionMode === 'orthographic'
123
+ ? state.orthoSize
124
+ : distance * Math.tan(state.camera.fov / 2);
125
+ const halfWidth = halfHeight * state.camera.aspect;
126
+ // World point under mouse cursor (on the target plane)
127
+ const t = state.camera.target;
128
+ const mouseWorld = {
129
+ x: t.x + right.x * ndcX * halfWidth + actualUp.x * ndcY * halfHeight,
130
+ y: t.y + right.y * ndcX * halfWidth + actualUp.y * ndcY * halfHeight,
131
+ z: t.z + right.z * ndcX * halfWidth + actualUp.z * ndcY * halfHeight,
132
+ };
133
+ const moveAmount = 1 - zoomFactor;
134
+ t.x += (mouseWorld.x - t.x) * moveAmount;
135
+ t.y += (mouseWorld.y - t.y) * moveAmount;
136
+ t.z += (mouseWorld.z - t.z) * moveAmount;
137
+ }
138
+ //# sourceMappingURL=camera-zoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-zoom.js","sourceRoot":"","sources":["../src/camera-zoom.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
package/dist/camera.js CHANGED
@@ -12,6 +12,7 @@ import { pickFitPolicy } from './camera-fit-policy.js';
12
12
  import { DEFAULT_ORTHO_SIZE, isUsableBounds, isUsableDistance, usableOrthoSize, } from './camera-guards.js';
13
13
  import { RelativeToEyeFrame } from './relative-to-eye.js';
14
14
  import { surfaceZoomStep } from './camera-surface-zoom.js';
15
+ import { canAdmitZoomPose } from './camera-zoom.js';
15
16
  import { CAMERA_CONSTANTS } from './constants.js';
16
17
  export class Camera {
17
18
  state;
@@ -71,6 +72,9 @@ export class Camera {
71
72
  // better answer than any constant.
72
73
  if (!Number.isFinite(aspect) || aspect <= 0)
73
74
  return;
75
+ // A redundant viewport update must not invalidate a pending pick snapshot (#6882).
76
+ if (aspect === this.state.camera.aspect)
77
+ return;
74
78
  this.state.camera.aspect = aspect;
75
79
  this.updateMatrices();
76
80
  }
@@ -170,6 +174,8 @@ export class Camera {
170
174
  * inertia, so `addVelocity` has no effect on it.
171
175
  */
172
176
  zoom(delta, addVelocity = false, mouseX, mouseY, canvasWidth, canvasHeight, fastZoom, surfacePoint) {
177
+ if (!Number.isFinite(delta))
178
+ return;
173
179
  // Zooming IN over geometry approaches the picked surface instead of the
174
180
  // target plane, so repeated notches stop short of it (#5393). Pure dolly
175
181
  // (fast zoom, Cesium) and orthographic keep the plain path.
@@ -192,6 +198,8 @@ export class Camera {
192
198
  const next = surfaceZoomStep(this.state.camera, point, fraction);
193
199
  if (!next)
194
200
  return false;
201
+ if (!canAdmitZoomPose(next, this.state.camera))
202
+ return true; // Handled, but unsafe: do not fall through to a different zoom.
195
203
  // The orbit centre is left where it is on purpose: the mouse path re-seats
196
204
  // it on every orbit start, and the new target already sits at the surface.
197
205
  // In place, like every other pose writer: callers may hold these objects.
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { WebGPUDevice } from '../device.js';
2
2
  import type { Scene } from '../scene.js';
3
3
  import type { PointCloudRenderer } from '../pointcloud/point-cloud-renderer.js';
4
4
  import { type DeviationAssetStats } from './deviation-readback.js';
5
+ import type { DeviationDistances } from './deviation-statistics.js';
5
6
  /** Tuning knobs for a single `DeviationComputer.compute` run. */
6
7
  export interface DeviationComputeOptions {
7
8
  /** Clip range applied during compute. 0 → no clip. Default 1m. */
@@ -62,8 +63,11 @@ export declare class DeviationComputer {
62
63
  * instead of failing loudly.
63
64
  */
64
65
  init(device: GPUDevice): void;
65
- /** Export-only GPU readback; each row belongs to one scan asset. */
66
+ /** On-demand GPU readback; each row belongs to one scan asset. */
66
67
  readAssetStats(ctx: DeviationComputeContext): Promise<DeviationAssetStats[]>;
68
+ /** Every computed point's signed distance, grouped by scan asset (#6872). */
69
+ readDistances(ctx: DeviationComputeContext): Promise<DeviationDistances>;
70
+ private readComputed;
67
71
  /**
68
72
  * Compute BIM ↔ scan deviation for every loaded point cloud asset.
69
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"deviation-computer.d.ts","sourceRoot":"","sources":["../../src/deviation/deviation-computer.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2C5F,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAChF,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,eAAe,CAAmC;IAC1D;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAAuB;IAE7C;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAO7B,oEAAoE;IAC9D,cAAc,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAelF;;;;;;;;;;;;;;;;OAgBG;IACG,OAAO,CACT,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,uBAAuB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IA2FlC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMlB"}
1
+ {"version":3,"file":"deviation-computer.d.ts","sourceRoot":"","sources":["../../src/deviation/deviation-computer.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,OAAO,EAAmD,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACpH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA2CpE,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAChF,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,eAAe,CAAmC;IAC1D;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAAuB;IAE7C;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAO7B,kEAAkE;IAC5D,cAAc,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAIlF,6EAA6E;IACvE,aAAa,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAIhE,YAAY;IAkB1B;;;;;;;;;;;;;;;;OAgBG;IACG,OAAO,CACT,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,uBAAuB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IA2FlC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMlB"}
@@ -16,7 +16,7 @@
16
16
  */
17
17
  import { DeviationPipeline } from './deviation-pipeline.js';
18
18
  import { buildTriangleBVH } from './triangle-bvh.js';
19
- import { readDeviationAssetStats } from './deviation-readback.js';
19
+ import { readDeviationAssetStats, readDeviationDistances } from './deviation-readback.js';
20
20
  /**
21
21
  * Build a deterministic fingerprint of the BVH input mesh set so
22
22
  * `Renderer.computeDeviations` can skip the rebuild when the source
@@ -94,17 +94,24 @@ export class DeviationComputer {
94
94
  this.bvhFingerprint = null;
95
95
  this.computedBuffers = null;
96
96
  }
97
- /** Export-only GPU readback; each row belongs to one scan asset. */
97
+ /** On-demand GPU readback; each row belongs to one scan asset. */
98
98
  async readAssetStats(ctx) {
99
+ return this.readComputed(ctx, readDeviationAssetStats);
100
+ }
101
+ /** Every computed point's signed distance, grouped by scan asset (#6872). */
102
+ async readDistances(ctx) {
103
+ return this.readComputed(ctx, readDeviationDistances);
104
+ }
105
+ async readComputed(ctx, read) {
99
106
  const computed = this.computedBuffers;
100
107
  if (!computed || !ctx.pointCloudRenderer) {
101
- throw new Error('No completed deviation run to export.');
108
+ throw new Error('No completed deviation run to read back.');
102
109
  }
103
- const rows = await readDeviationAssetStats(ctx.device.getDevice(), ctx.pointCloudRenderer.getInternalNodes(), (buffer) => computed.has(buffer));
110
+ const result = await read(ctx.device.getDevice(), ctx.pointCloudRenderer.getInternalNodes(), (buffer) => computed.has(buffer));
104
111
  if (this.computedBuffers !== computed) {
105
- throw new Error('Deviation results changed during export. Recompute and try again.');
112
+ throw new Error('Deviation results changed during readback. Recompute and try again.');
106
113
  }
107
- return rows;
114
+ return result;
108
115
  }
109
116
  /**
110
117
  * Compute BIM ↔ scan deviation for every loaded point cloud asset.
@@ -1 +1 @@
1
- {"version":3,"file":"deviation-computer.js","sourceRoot":"","sources":["../../src/deviation/deviation-computer.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,EAAE,uBAAuB,EAA4B,MAAM,yBAAyB,CAAC;AAE5F;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,MAA+B;IAC1D,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrI,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,KAAY;IACvC,8DAA8D;IAC9D,6DAA6D;IAC7D,2DAA2D;IAC3D,gEAAgE;IAChE,+DAA+D;IAC/D,0BAA0B;IAC1B,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACf,CAAC;AA8BD;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAClB,QAAQ,GAA6B,IAAI,CAAC;IAC1C,eAAe,GAA8B,IAAI,CAAC;IAC1D;;;;;;OAMG;IACK,cAAc,GAAkB,IAAI,CAAC;IAE7C;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,MAAiB;QAClB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,cAAc,CAAC,GAA4B;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,uBAAuB,CACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,EACjE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CACnC,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,OAAO,CACT,IAA6B,EAC7B,GAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,yDAAyD;QACzD,4DAA4D;QAC5D,0DAA0D;QAC1D,6DAA6D;QAC7D,6DAA6D;QAC7D,+DAA+D;QAC/D,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,YAAY,IAAI,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QACtC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;QAEtC,6DAA6D;QAC7D,2DAA2D;QAC3D,4DAA4D;QAC5D,4DAA4D;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC/F,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,eAAe,GAAG,IAAI,OAAO,EAAa,CAAC;QACjD,MAAM,KAAK,GAAG,GAAG,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE;oBACvC,eAAe,EAAE,KAAK,CAAC,YAAY;oBACnC,gBAAgB,EAAE,KAAK,CAAC,eAAe;oBACvC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ;oBACR,mDAAmD;oBACnD,mDAAmD;oBACnD,mDAAmD;oBACnD,iDAAiD;oBACjD,kDAAkD;oBAClD,KAAK,EAAE,IAAI,CAAC,KAAK;iBACpB,CAAC,CAAC;gBACH,IAAI,EAAE,EAAE,CAAC;oBACL,eAAe,EAAE,CAAC;oBAClB,eAAe,IAAI,KAAK,CAAC,UAAU,CAAC;oBACpC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC;YACD,+DAA+D;YAC/D,8DAA8D;YAC9D,gDAAgD;YAChD,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC7D,CAAC;gBAAS,CAAC;YACP,6DAA6D;YAC7D,6DAA6D;YAC7D,2DAA2D;YAC3D,gEAAgE;YAChE,2DAA2D;YAC3D,QAAQ;YACR,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEpB,gEAAgE;QAChE,8DAA8D;QAC9D,yDAAyD;QACzD,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,MAAM,kBAAkB,GAAG,EAAE;YACzB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CACrB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EACrB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EACrB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACtB,GAAG,IAAI,CAAC;YACX,CAAC,CAAC,IAAI,CAAC;QAEX,OAAO;YACH,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,eAAe;YACf,eAAe;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,kBAAkB;SACrB,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,OAAO;QACH,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;CACJ"}
1
+ {"version":3,"file":"deviation-computer.js","sourceRoot":"","sources":["../../src/deviation/deviation-computer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { PointCloudNode } from '../pointcloud/point-cloud-node.js';
2
+ import { type DeviationDistances, type DeviationStatistics } from './deviation-statistics.js';
2
3
  /** One scan asset's measured signed distances in metres. */
3
4
  export interface DeviationAssetStats {
4
5
  expressId: number;
@@ -8,11 +9,23 @@ export interface DeviationAssetStats {
8
9
  minimumDeviation: number | null;
9
10
  maximumDeviation: number | null;
10
11
  meanDeviation: number | null;
12
+ /** Full summary: |d| percentiles, RMS, σ (#6872). */
13
+ statistics: DeviationStatistics;
11
14
  }
12
15
  /**
13
- * Read signed distances only for an explicit export. One staging buffer is
14
- * alive at a time, so a large scan never needs a second full copy in RAM or
15
- * VRAM. The normal deviation compute and render path does no readback.
16
+ * Read every computed point's signed distance back from the GPU, on demand.
17
+ * The normal compute and render path does no readback.
18
+ *
19
+ * The result is ONE `Float32Array` (4 bytes per computed point, the size of
20
+ * the GPU deviation buffers themselves) with each scan asset as a contiguous
21
+ * range, so per-asset and whole-run statistics share it without a second
22
+ * copy. One staging buffer is alive at a time, so VRAM grows by one chunk.
23
+ */
24
+ export declare function readDeviationDistances(device: GPUDevice, nodes: Iterable<PointCloudNode>, wasComputed: (buffer: GPUBuffer) => boolean): Promise<DeviationDistances>;
25
+ /**
26
+ * Per-scan-asset statistics over {@link readDeviationDistances}. Holds the
27
+ * readback (4 bytes per point) for the duration of the call; the statistics
28
+ * themselves add a fixed ~1 MiB and run in slices that yield to the event loop.
16
29
  */
17
30
  export declare function readDeviationAssetStats(device: GPUDevice, nodes: Iterable<PointCloudNode>, wasComputed: (buffer: GPUBuffer) => boolean): Promise<DeviationAssetStats[]>;
18
31
  //# sourceMappingURL=deviation-readback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviation-readback.d.ts","sourceRoot":"","sources":["../../src/deviation/deviation-readback.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAC5C,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAmDhC"}
1
+ {"version":3,"file":"deviation-readback.d.ts","sourceRoot":"","sources":["../../src/deviation/deviation-readback.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAGH,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qDAAqD;IACrD,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAC5C,OAAO,CAAC,kBAAkB,CAAC,CAwC7B;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAC5C,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAYhC"}
@@ -1,22 +1,33 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { summarizeDeviationAssetsAsync, } from './deviation-statistics.js';
4
5
  /**
5
- * Read signed distances only for an explicit export. One staging buffer is
6
- * alive at a time, so a large scan never needs a second full copy in RAM or
7
- * VRAM. The normal deviation compute and render path does no readback.
6
+ * Read every computed point's signed distance back from the GPU, on demand.
7
+ * The normal compute and render path does no readback.
8
+ *
9
+ * The result is ONE `Float32Array` (4 bytes per computed point, the size of
10
+ * the GPU deviation buffers themselves) with each scan asset as a contiguous
11
+ * range, so per-asset and whole-run statistics share it without a second
12
+ * copy. One staging buffer is alive at a time, so VRAM grows by one chunk.
8
13
  */
9
- export async function readDeviationAssetStats(device, nodes, wasComputed) {
10
- const results = [];
14
+ export async function readDeviationDistances(device, nodes, wasComputed) {
15
+ const assets = [];
16
+ const plan = [];
17
+ let total = 0;
11
18
  for (const node of nodes) {
12
- let count = 0;
13
- let finiteCount = 0;
14
- let sum = 0;
15
- let min = Infinity;
16
- let max = -Infinity;
17
- for (const chunk of node.chunks) {
18
- if (!wasComputed(chunk.deviationBuffer) || chunk.pointCount === 0)
19
- continue;
19
+ const chunks = node.chunks.filter((chunk) => chunk.pointCount > 0 && wasComputed(chunk.deviationBuffer));
20
+ const count = chunks.reduce((sum, chunk) => sum + chunk.pointCount, 0);
21
+ if (count === 0)
22
+ continue;
23
+ assets.push({ expressId: node.meta.expressId, modelIndex: node.meta.modelIndex ?? 0, offset: total, count });
24
+ plan.push(chunks);
25
+ total += count;
26
+ }
27
+ const values = new Float32Array(total);
28
+ let cursor = 0;
29
+ for (const chunks of plan) {
30
+ for (const chunk of chunks) {
20
31
  const size = chunk.pointCount * Float32Array.BYTES_PER_ELEMENT;
21
32
  const staging = device.createBuffer({
22
33
  size,
@@ -24,21 +35,13 @@ export async function readDeviationAssetStats(device, nodes, wasComputed) {
24
35
  });
25
36
  let mapped = false;
26
37
  try {
27
- const encoder = device.createCommandEncoder({ label: 'deviation-csv-readback' });
38
+ const encoder = device.createCommandEncoder({ label: 'deviation-readback' });
28
39
  encoder.copyBufferToBuffer(chunk.deviationBuffer, 0, staging, 0, size);
29
40
  device.queue.submit([encoder.finish()]);
30
41
  await staging.mapAsync(GPUMapMode.READ);
31
42
  mapped = true;
32
- const values = new Float32Array(staging.getMappedRange());
33
- count += values.length;
34
- for (const value of values) {
35
- if (!Number.isFinite(value))
36
- continue;
37
- finiteCount++;
38
- sum += value;
39
- min = Math.min(min, value);
40
- max = Math.max(max, value);
41
- }
43
+ values.set(new Float32Array(staging.getMappedRange(), 0, chunk.pointCount), cursor);
44
+ cursor += chunk.pointCount;
42
45
  }
43
46
  finally {
44
47
  try {
@@ -50,18 +53,25 @@ export async function readDeviationAssetStats(device, nodes, wasComputed) {
50
53
  }
51
54
  }
52
55
  }
53
- if (count === 0)
54
- continue;
55
- results.push({
56
- expressId: node.meta.expressId,
57
- modelIndex: node.meta.modelIndex ?? 0,
58
- pointsProcessed: count,
59
- finitePoints: finiteCount,
60
- minimumDeviation: finiteCount > 0 ? min : null,
61
- maximumDeviation: finiteCount > 0 ? max : null,
62
- meanDeviation: finiteCount > 0 ? sum / finiteCount : null,
63
- });
64
56
  }
65
- return results;
57
+ return { values, assets };
58
+ }
59
+ /**
60
+ * Per-scan-asset statistics over {@link readDeviationDistances}. Holds the
61
+ * readback (4 bytes per point) for the duration of the call; the statistics
62
+ * themselves add a fixed ~1 MiB and run in slices that yield to the event loop.
63
+ */
64
+ export async function readDeviationAssetStats(device, nodes, wasComputed) {
65
+ const distances = await readDeviationDistances(device, nodes, wasComputed);
66
+ return (await summarizeDeviationAssetsAsync(distances)).map(({ expressId, modelIndex, statistics }) => ({
67
+ expressId,
68
+ modelIndex,
69
+ pointsProcessed: statistics.count,
70
+ finitePoints: statistics.validCount,
71
+ minimumDeviation: statistics.min,
72
+ maximumDeviation: statistics.max,
73
+ meanDeviation: statistics.mean,
74
+ statistics,
75
+ }));
66
76
  }
67
77
  //# sourceMappingURL=deviation-readback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviation-readback.js","sourceRoot":"","sources":["../../src/deviation/deviation-readback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deviation-readback.js","sourceRoot":"","sources":["../../src/deviation/deviation-readback.ts"],"names":[],"mappings":"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"}