@ifc-lite/renderer 3.0.1 → 3.2.0

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 (111) hide show
  1. package/README.md +22 -0
  2. package/dist/appearance-preview.d.ts +2 -0
  3. package/dist/appearance-preview.d.ts.map +1 -1
  4. package/dist/appearance-preview.js +4 -0
  5. package/dist/appearance-preview.js.map +1 -1
  6. package/dist/camera-animation-immediate.d.ts +5 -0
  7. package/dist/camera-animation-immediate.d.ts.map +1 -0
  8. package/dist/camera-animation-immediate.js +16 -0
  9. package/dist/camera-animation-immediate.js.map +1 -0
  10. package/dist/camera-animation.d.ts +3 -9
  11. package/dist/camera-animation.d.ts.map +1 -1
  12. package/dist/camera-animation.js +14 -9
  13. package/dist/camera-animation.js.map +1 -1
  14. package/dist/device-recovery.d.ts +60 -0
  15. package/dist/device-recovery.d.ts.map +1 -0
  16. package/dist/device-recovery.js +153 -0
  17. package/dist/device-recovery.js.map +1 -0
  18. package/dist/device.d.ts +2 -0
  19. package/dist/device.d.ts.map +1 -1
  20. package/dist/device.js +12 -0
  21. package/dist/device.js.map +1 -1
  22. package/dist/gpu-upload-guard.d.ts +106 -0
  23. package/dist/gpu-upload-guard.d.ts.map +1 -0
  24. package/dist/gpu-upload-guard.js +102 -0
  25. package/dist/gpu-upload-guard.js.map +1 -0
  26. package/dist/index.d.ts +44 -21
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +156 -139
  29. package/dist/index.js.map +1 -1
  30. package/dist/instanced-override-color.d.ts +8 -0
  31. package/dist/instanced-override-color.d.ts.map +1 -1
  32. package/dist/instanced-override-color.js +10 -0
  33. package/dist/instanced-override-color.js.map +1 -1
  34. package/dist/merged-mesh-extract.d.ts.map +1 -1
  35. package/dist/merged-mesh-extract.js +5 -0
  36. package/dist/merged-mesh-extract.js.map +1 -1
  37. package/dist/mesh-entity-hosting.d.ts +14 -0
  38. package/dist/mesh-entity-hosting.d.ts.map +1 -0
  39. package/dist/mesh-entity-hosting.js +25 -0
  40. package/dist/mesh-entity-hosting.js.map +1 -0
  41. package/dist/model-translation.d.ts +39 -1
  42. package/dist/model-translation.d.ts.map +1 -1
  43. package/dist/model-translation.js +103 -16
  44. package/dist/model-translation.js.map +1 -1
  45. package/dist/picking-manager.d.ts +2 -1
  46. package/dist/picking-manager.d.ts.map +1 -1
  47. package/dist/picking-manager.js +11 -2
  48. package/dist/picking-manager.js.map +1 -1
  49. package/dist/reference-images.d.ts +2 -0
  50. package/dist/reference-images.d.ts.map +1 -1
  51. package/dist/reference-images.js +2 -0
  52. package/dist/reference-images.js.map +1 -1
  53. package/dist/renderer-overlays.d.ts +3 -0
  54. package/dist/renderer-overlays.d.ts.map +1 -1
  55. package/dist/renderer-overlays.js +13 -0
  56. package/dist/renderer-overlays.js.map +1 -1
  57. package/dist/renderer-symbolic-overlays.d.ts +1 -0
  58. package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
  59. package/dist/renderer-symbolic-overlays.js +3 -0
  60. package/dist/renderer-symbolic-overlays.js.map +1 -1
  61. package/dist/scene-appearance-preview.d.ts +2 -0
  62. package/dist/scene-appearance-preview.d.ts.map +1 -1
  63. package/dist/scene-appearance-preview.js +9 -0
  64. package/dist/scene-appearance-preview.js.map +1 -1
  65. package/dist/scene-authored-owner.d.ts +10 -0
  66. package/dist/scene-authored-owner.d.ts.map +1 -1
  67. package/dist/scene-authored-owner.js +44 -5
  68. package/dist/scene-authored-owner.js.map +1 -1
  69. package/dist/scene-batch-rebuild.d.ts +18 -0
  70. package/dist/scene-batch-rebuild.d.ts.map +1 -0
  71. package/dist/scene-batch-rebuild.js +49 -0
  72. package/dist/scene-batch-rebuild.js.map +1 -0
  73. package/dist/scene-batch-upload.d.ts +7 -2
  74. package/dist/scene-batch-upload.d.ts.map +1 -1
  75. package/dist/scene-batch-upload.js +26 -1
  76. package/dist/scene-batch-upload.js.map +1 -1
  77. package/dist/scene-bucket-routing.d.ts +21 -0
  78. package/dist/scene-bucket-routing.d.ts.map +1 -0
  79. package/dist/scene-bucket-routing.js +44 -0
  80. package/dist/scene-bucket-routing.js.map +1 -0
  81. package/dist/scene-contents.d.ts +8 -0
  82. package/dist/scene-contents.d.ts.map +1 -1
  83. package/dist/scene-derived-batches.d.ts +84 -0
  84. package/dist/scene-derived-batches.d.ts.map +1 -0
  85. package/dist/scene-derived-batches.js +73 -0
  86. package/dist/scene-derived-batches.js.map +1 -0
  87. package/dist/scene-derived-mesh-provenance.d.ts +13 -0
  88. package/dist/scene-derived-mesh-provenance.d.ts.map +1 -0
  89. package/dist/scene-derived-mesh-provenance.js +30 -0
  90. package/dist/scene-derived-mesh-provenance.js.map +1 -0
  91. package/dist/scene-device-recovery.d.ts +103 -0
  92. package/dist/scene-device-recovery.d.ts.map +1 -0
  93. package/dist/scene-device-recovery.js +299 -0
  94. package/dist/scene-device-recovery.js.map +1 -0
  95. package/dist/scene-geometry.d.ts +1 -0
  96. package/dist/scene-geometry.d.ts.map +1 -1
  97. package/dist/scene-geometry.js +3 -23
  98. package/dist/scene-geometry.js.map +1 -1
  99. package/dist/scene-model-translation.d.ts +11 -1
  100. package/dist/scene-model-translation.d.ts.map +1 -1
  101. package/dist/scene-model-translation.js +22 -0
  102. package/dist/scene-model-translation.js.map +1 -1
  103. package/dist/scene-precision.d.ts +16 -0
  104. package/dist/scene-precision.d.ts.map +1 -0
  105. package/dist/scene-precision.js +73 -0
  106. package/dist/scene-precision.js.map +1 -0
  107. package/dist/scene.d.ts +46 -42
  108. package/dist/scene.d.ts.map +1 -1
  109. package/dist/scene.js +211 -208
  110. package/dist/scene.js.map +1 -1
  111. package/package.json +2 -2
@@ -10,6 +10,17 @@ type Bounds = {
10
10
  min: [number, number, number];
11
11
  max: [number, number, number];
12
12
  };
13
+ /** A model's whole-model yaw (#4890): `angle` radians about the renderer
14
+ * vertical (+Y) axis — the Y-up image of an IFC yaw about +Z, the SAME
15
+ * convention `Scene.rotateMeshesForEntity` already uses — through the render-
16
+ * frame pivot `(px, *, pz)` (Y is the rotation axis and unused). `null` means
17
+ * no rotation; `setYaw` canonicalizes an explicit zero angle to `null` so a
18
+ * cleared rotation and a never-set one compare equal and restore bit-exact. */
19
+ export interface ModelYaw {
20
+ angle: number;
21
+ px: number;
22
+ pz: number;
23
+ }
13
24
  /** Validate before storing an offset, including when no drawables exist yet. */
14
25
  export declare function assertModelTranslation(modelIndex: number, offset: Offset): void;
15
26
  /** Scene-owned translations in renderer Y-up metres. Mesh vertices remain shared
@@ -18,6 +29,7 @@ export declare function assertModelTranslation(modelIndex: number, offset: Offse
18
29
  export declare class ModelTranslations {
19
30
  private authored;
20
31
  private offsets;
32
+ private yaws;
21
33
  private meshes;
22
34
  private batches;
23
35
  private instances;
@@ -25,6 +37,18 @@ export declare class ModelTranslations {
25
37
  private releasedEntities;
26
38
  get(modelIndex?: number): Offset;
27
39
  set(modelIndex: number, offset: Offset): boolean;
40
+ /** A copy, never the stored object: `placeInstances` compares this against
41
+ * its own retained `entry.yaw` by value, so a caller mutating a borrowed
42
+ * yaw in place would make a later placement wrongly see "unchanged" and
43
+ * skip rewriting the instance buffer, leaving the render stale. */
44
+ getYaw(modelIndex?: number): ModelYaw | null;
45
+ /** `null` clears the model's rotation; an explicit zero angle is stored the
46
+ * same way, so both restore the pristine instance transform bit-exactly.
47
+ * The pivot is validated the same way `assertModelTranslation` validates an
48
+ * offset: `Math.fround`-representable, not merely finite — `placeInstances`
49
+ * writes it through `DataView.setFloat32`, so a pivot like `1e100` would
50
+ * otherwise round to `Infinity` and poison every occurrence's bounds. */
51
+ setYaw(modelIndex: number, yaw: ModelYaw | null): boolean;
28
52
  /** Preserve source identity and source coordinates for export and re-alignment. */
29
53
  placeMesh(source: MeshData): MeshData;
30
54
  /** Public non-batched meshes carry placement in their draw/pick matrix.
@@ -49,7 +73,21 @@ export declare class ModelTranslations {
49
73
  registerDrawable<T extends Drawable>(batch: T, modelIndex: number): T;
50
74
  moveDrawable(batch: Drawable): void;
51
75
  /** Only occurrence transforms change; template vertex/index buffers never do.
52
- * Keep a double baseline so undo never subtracts a rounded GPU translation. */
76
+ * Keep a double f64 baseline so undo never subtracts a rounded GPU value.
77
+ *
78
+ * The base is the pristine 3x4 (columns 0/1/2 — the linear part — plus the
79
+ * translation column; the mat4's bottom row is always [0,0,0,1] and is
80
+ * never touched), captured the first time an occurrence buffer is seen.
81
+ * Every call writes `R_yaw · base + delta`, never the previous write, so
82
+ * repeated yaw/translate previews cannot accumulate drift: the linear
83
+ * columns rotate as directions (`x' = x·cos + z·sin`, `z' = -x·sin + z·cos`,
84
+ * same sign as `Scene.rotateMeshesForEntity`), the translation column
85
+ * rotates about the pivot like a point (`t' = pivot + R(t - pivot) + delta`).
86
+ * An intervening translation-only edit into bytes 48..59 (exploded-storey
87
+ * lift, `translateInstancedEntity`) is folded back into `base` first, by
88
+ * undoing the OLD yaw that was in effect when it was written — a
89
+ * non-translation edit into bytes 0..47 cannot be folded this way and is a
90
+ * STOP condition (see plan #4890 §5). */
53
91
  placeInstances(data: ArrayBuffer, modelIndex: number, stride: number): boolean;
54
92
  clear(): void;
55
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-translation.d.ts","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAChD,KAAK,QAAQ,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvE,KAAK,MAAM,GAAG;IAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAG/E,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/E;AAyBD;;kFAEkF;AAClF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAuH;IACvI,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,SAAS,CAA6F;IAC9G,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,gBAAgB,CAA+C;IAEvE,GAAG,CAAC,UAAU,SAAI,GAAG,MAAM;IAE3B,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAOhD,mFAAmF;IACnF,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ;IAmBrC;sFACkF;IAClF,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAyBnC,gFAAgF;IAChF,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAc1C,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAEpC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAEpC,eAAe,IAAI,IAAI;IAKvB,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI;IAajE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAYzD,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IAEzD;qFACiF;IACjF,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW;IAYxF;;mFAE+E;IAC/E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,SAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAItF,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;IASrE,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQnC;mFAC+E;IAC/E,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAyB9E,KAAK,IAAI,IAAI;CASd"}
1
+ {"version":3,"file":"model-translation.d.ts","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,13 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { worldAabbFromPieces } from './scene-geometry.js';
5
5
  const ZERO = [0, 0, 0];
6
+ function yawEqual(a, b) {
7
+ if (!a && !b)
8
+ return true;
9
+ if (!a || !b)
10
+ return false;
11
+ return a.angle === b.angle && a.px === b.px && a.pz === b.pz;
12
+ }
6
13
  /** Validate before storing an offset, including when no drawables exist yet. */
7
14
  export function assertModelTranslation(modelIndex, offset) {
8
15
  if (!Number.isSafeInteger(modelIndex) || modelIndex < 0 || offset.length !== 3 || !offset.every((value) => Number.isFinite(value) && Number.isFinite(Math.fround(value)))) {
@@ -24,6 +31,7 @@ function moveBounds(bounds, delta) {
24
31
  export class ModelTranslations {
25
32
  authored = new WeakMap();
26
33
  offsets = new Map();
34
+ yaws = new Map();
27
35
  meshes = new WeakMap();
28
36
  batches = new WeakMap();
29
37
  instances = new WeakMap();
@@ -37,6 +45,35 @@ export class ModelTranslations {
37
45
  this.offsets.set(modelIndex, [...offset]);
38
46
  return true;
39
47
  }
48
+ /** A copy, never the stored object: `placeInstances` compares this against
49
+ * its own retained `entry.yaw` by value, so a caller mutating a borrowed
50
+ * yaw in place would make a later placement wrongly see "unchanged" and
51
+ * skip rewriting the instance buffer, leaving the render stale. */
52
+ getYaw(modelIndex = 0) {
53
+ const yaw = this.yaws.get(modelIndex);
54
+ return yaw ? { ...yaw } : null;
55
+ }
56
+ /** `null` clears the model's rotation; an explicit zero angle is stored the
57
+ * same way, so both restore the pristine instance transform bit-exactly.
58
+ * The pivot is validated the same way `assertModelTranslation` validates an
59
+ * offset: `Math.fround`-representable, not merely finite — `placeInstances`
60
+ * writes it through `DataView.setFloat32`, so a pivot like `1e100` would
61
+ * otherwise round to `Infinity` and poison every occurrence's bounds. */
62
+ setYaw(modelIndex, yaw) {
63
+ if (yaw && (!Number.isFinite(yaw.angle)
64
+ || !Number.isFinite(yaw.px) || !Number.isFinite(Math.fround(yaw.px))
65
+ || !Number.isFinite(yaw.pz) || !Number.isFinite(Math.fround(yaw.pz)))) {
66
+ throw new Error('Model rotation requires a finite angle and pivot.');
67
+ }
68
+ const next = yaw && yaw.angle !== 0 ? { angle: yaw.angle, px: yaw.px, pz: yaw.pz } : null;
69
+ if (yawEqual(this.getYaw(modelIndex), next))
70
+ return false;
71
+ if (next)
72
+ this.yaws.set(modelIndex, next);
73
+ else
74
+ this.yaws.delete(modelIndex);
75
+ return true;
76
+ }
40
77
  /** Preserve source identity and source coordinates for export and re-alignment. */
41
78
  placeMesh(source) {
42
79
  let entry = this.meshes.get(source);
@@ -182,36 +219,86 @@ export class ModelTranslations {
182
219
  batch.bounds = moveBounds(base.bounds, delta);
183
220
  }
184
221
  /** Only occurrence transforms change; template vertex/index buffers never do.
185
- * Keep a double baseline so undo never subtracts a rounded GPU translation. */
222
+ * Keep a double f64 baseline so undo never subtracts a rounded GPU value.
223
+ *
224
+ * The base is the pristine 3x4 (columns 0/1/2 — the linear part — plus the
225
+ * translation column; the mat4's bottom row is always [0,0,0,1] and is
226
+ * never touched), captured the first time an occurrence buffer is seen.
227
+ * Every call writes `R_yaw · base + delta`, never the previous write, so
228
+ * repeated yaw/translate previews cannot accumulate drift: the linear
229
+ * columns rotate as directions (`x' = x·cos + z·sin`, `z' = -x·sin + z·cos`,
230
+ * same sign as `Scene.rotateMeshesForEntity`), the translation column
231
+ * rotates about the pivot like a point (`t' = pivot + R(t - pivot) + delta`).
232
+ * An intervening translation-only edit into bytes 48..59 (exploded-storey
233
+ * lift, `translateInstancedEntity`) is folded back into `base` first, by
234
+ * undoing the OLD yaw that was in effect when it was written — a
235
+ * non-translation edit into bytes 0..47 cannot be folded this way and is a
236
+ * STOP condition (see plan #4890 §5). */
186
237
  placeInstances(data, modelIndex, stride) {
187
- const delta = this.get(modelIndex), count = data.byteLength / stride;
238
+ const delta = this.get(modelIndex), yaw = this.getYaw(modelIndex), count = data.byteLength / stride;
188
239
  const view = new DataView(data);
189
240
  let entry = this.instances.get(data);
190
241
  if (!entry) {
191
- const base = new Float64Array(count * 3), written = new Float32Array(count * 3);
242
+ const base = new Float64Array(count * 12), written = new Float32Array(count * 12);
192
243
  for (let i = 0; i < count; i++)
193
- for (let axis = 0; axis < 3; axis++) {
194
- base[i * 3 + axis] = written[i * 3 + axis] = view.getFloat32(i * stride + 48 + axis * 4, true);
195
- }
196
- entry = { base, written, offset: ZERO };
244
+ for (let c = 0; c < 4; c++)
245
+ for (let a = 0; a < 3; a++) {
246
+ const j = i * 12 + c * 3 + a;
247
+ base[j] = written[j] = view.getFloat32(i * stride + c * 16 + a * 4, true);
248
+ }
249
+ entry = { base, written, offset: ZERO, yaw: null };
197
250
  this.instances.set(data, entry);
198
251
  }
199
- if (entry.offset.every((value, i) => value === delta[i]))
252
+ if (entry.offset.every((value, i) => value === delta[i]) && yawEqual(entry.yaw, yaw))
200
253
  return false;
201
- for (let i = 0; i < count; i++)
202
- for (let axis = 0; axis < 3; axis++) {
203
- const j = i * 3 + axis, byte = i * stride + 48 + axis * 4;
204
- // Preserve intervening element edits / exploded-storey offsets.
205
- entry.base[j] += view.getFloat32(byte, true) - entry.written[j];
206
- const value = entry.base[j] + delta[axis];
207
- view.setFloat32(byte, value, true);
208
- entry.written[j] = value;
254
+ const oldCos = entry.yaw ? Math.cos(entry.yaw.angle) : 1, oldSin = entry.yaw ? Math.sin(entry.yaw.angle) : 0;
255
+ const newCos = yaw ? Math.cos(yaw.angle) : 1, newSin = yaw ? Math.sin(yaw.angle) : 0;
256
+ const newPx = yaw?.px ?? 0, newPz = yaw?.pz ?? 0;
257
+ for (let i = 0; i < count; i++) {
258
+ const b0 = i * 12, tByte = i * stride + 48;
259
+ // Fold an intervening translation edit: undo the OLD yaw's rotation on
260
+ // the world-space delta before adding it back into the pristine base.
261
+ const diffX = view.getFloat32(tByte, true) - entry.written[b0 + 9];
262
+ const diffY = view.getFloat32(tByte + 4, true) - entry.written[b0 + 10];
263
+ const diffZ = view.getFloat32(tByte + 8, true) - entry.written[b0 + 11];
264
+ entry.base[b0 + 9] += diffX * oldCos - diffZ * oldSin;
265
+ entry.base[b0 + 10] += diffY;
266
+ entry.base[b0 + 11] += diffX * oldSin + diffZ * oldCos;
267
+ // Linear columns (0, 1, 2): pure directions, rotate about no pivot.
268
+ for (let c = 0; c < 3; c++) {
269
+ const j = b0 + c * 3, bx = entry.base[j], by = entry.base[j + 1], bz = entry.base[j + 2];
270
+ const nx = yaw ? bx * newCos + bz * newSin : bx;
271
+ const nz = yaw ? -bx * newSin + bz * newCos : bz;
272
+ const byte = i * stride + c * 16;
273
+ view.setFloat32(byte, nx, true);
274
+ view.setFloat32(byte + 4, by, true);
275
+ view.setFloat32(byte + 8, nz, true);
276
+ entry.written[j] = nx;
277
+ entry.written[j + 1] = by;
278
+ entry.written[j + 2] = nz;
209
279
  }
280
+ // Translation column: rotate the pristine point about the pivot, then
281
+ // add the current model offset — order matches `pivotInModelFrame`
282
+ // (rotate about the pivot, then translate).
283
+ const btx = entry.base[b0 + 9], bty = entry.base[b0 + 10], btz = entry.base[b0 + 11];
284
+ const dx = btx - newPx, dz = btz - newPz;
285
+ const ttx = (yaw ? newPx + dx * newCos + dz * newSin : btx) + delta[0];
286
+ const tty = bty + delta[1];
287
+ const ttz = (yaw ? newPz - dx * newSin + dz * newCos : btz) + delta[2];
288
+ view.setFloat32(tByte, ttx, true);
289
+ view.setFloat32(tByte + 4, tty, true);
290
+ view.setFloat32(tByte + 8, ttz, true);
291
+ entry.written[b0 + 9] = ttx;
292
+ entry.written[b0 + 10] = tty;
293
+ entry.written[b0 + 11] = ttz;
294
+ }
210
295
  entry.offset = delta;
296
+ entry.yaw = yaw;
211
297
  return true;
212
298
  }
213
299
  clear() {
214
300
  this.offsets.clear();
301
+ this.yaws.clear();
215
302
  this.authored = new WeakMap();
216
303
  this.meshes = new WeakMap();
217
304
  this.batches = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { Picker, type PointPickSizing } from './picker.js';
8
8
  import type { MeshData } from '@ifc-lite/geometry';
9
9
  import type { PickOptions, PickResult, PickClipState } from './types.js';
10
10
  import type { PointPickNode } from './point-picker.js';
11
+ import type { GpuUploadOutcome } from './gpu-upload-guard.js';
11
12
  /**
12
13
  * Supplied by the renderer when point clouds are loaded — returns the
13
14
  * snapshot of pickable nodes and the sizing to use for the splat picker.
@@ -24,7 +25,7 @@ export declare class PickingManager {
24
25
  private canvas;
25
26
  private createMeshFromDataFn;
26
27
  private pointPickProvider;
27
- constructor(camera: Camera, scene: Scene, picker: Picker | null, canvas: HTMLCanvasElement, createMeshFromDataFn: (meshData: MeshData) => void);
28
+ constructor(camera: Camera, scene: Scene, picker: Picker | null, canvas: HTMLCanvasElement, createMeshFromDataFn: (meshData: MeshData) => GpuUploadOutcome<void>);
28
29
  /** Renderer wires this on init so the manager can fetch point nodes lazily. */
29
30
  setPointPickProvider(provider: PointPickProvider | null): void;
30
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"picking-manager.d.ts","sourceRoot":"","sources":["../src/picking-manager.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAC5B;IAAE,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAChE,IAAI,CAAC;AAET,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,oBAAoB,CAA+B;IAC3D,OAAO,CAAC,iBAAiB,CAAkC;gBAGvD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,EAAE,iBAAiB,EACzB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI;IAStD,+EAA+E;IAC/E,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAI9D;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAmF1B;;;;;;;OAOG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA0EhH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,QAAQ,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,WAAW,EACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAiF1B"}
1
+ {"version":3,"file":"picking-manager.d.ts","sourceRoot":"","sources":["../src/picking-manager.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAC5B;IAAE,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAChE,IAAI,CAAC;AAET,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,oBAAoB,CAAiD;IAC7E,OAAO,CAAC,iBAAiB,CAAkC;gBAGvD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,EAAE,iBAAiB,EACzB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,gBAAgB,CAAC,IAAI,CAAC;IASxE,+EAA+E;IAC/E,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAI9D;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IA2F1B;;;;;;;OAOG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA0EhH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,QAAQ,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,WAAW,EACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAiF1B"}
@@ -100,6 +100,14 @@ export class PickingManager {
100
100
  // For multi-model support: create meshes for ALL (expressId, modelIndex) pairs
101
101
  const baselineExistingCounts = new Map(existingPieceCounts);
102
102
  const seenOrdinalsByKey = new Map();
103
+ // Any hydration failing here (#4885 review) — a lost device, or a
104
+ // mapped createBuffer allocation failure — means `scene.getMeshes()`
105
+ // below the 'gpu' return is missing that piece's buffers. Reporting
106
+ // 'gpu' anyway would make a subsequent pick silently skip it rather
107
+ // than fall back to the CPU raycast, which needs no GPU resources at
108
+ // all. One failure degrades the WHOLE prepare call to 'cpu': a mix of
109
+ // hydrated and un-hydrated pieces has no correct partial GPU answer.
110
+ let hydrationFailed = false;
103
111
  for (const expressId of visibleExpressIds) {
104
112
  const pieces = this.scene.getMeshDataPieces(expressId);
105
113
  if (pieces) {
@@ -111,11 +119,12 @@ export class PickingManager {
111
119
  // Assume existing pieces correspond to the first N pieces in stable order.
112
120
  if (ordinal < baselineExisting)
113
121
  continue;
114
- this.createMeshFromDataFn(piece);
122
+ if (!this.createMeshFromDataFn(piece).ok)
123
+ hydrationFailed = true;
115
124
  }
116
125
  }
117
126
  }
118
- return 'gpu';
127
+ return hydrationFailed ? 'cpu' : 'gpu';
119
128
  }
120
129
  /**
121
130
  * Pick object at screen coordinates
@@ -1 +1 @@
1
- {"version":3,"file":"picking-manager.js","sourceRoot":"","sources":["../src/picking-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picking-manager.js","sourceRoot":"","sources":["../src/picking-manager.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export declare class ReferenceImageManager implements ReferenceImages {
16
16
  private format;
17
17
  private sampleCount;
18
18
  constructor(host: ReferenceImageHost);
19
+ /** Whether recovery would omit at least one GPU-only reference plane. */
20
+ hasImages(): boolean;
19
21
  init(device: GPUDevice, format: GPUTextureFormat, sampleCount: number): void;
20
22
  set(input: ReferenceImageInput, signal?: AbortSignal): Promise<void>;
21
23
  remove(id: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"reference-images.d.ts","sourceRoot":"","sources":["../src/reference-images.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,aAAa,IAAI,IAAI,CAAC;IACtB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED,sFAAsF;AACtF,qBAAa,qBAAsB,YAAW,eAAe;IAO/C,OAAO,CAAC,IAAI;IANxB,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,WAAW,CAAK;gBACJ,IAAI,EAAE,kBAAkB;IAE5C,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAMtE,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C1E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxB,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IACf,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAYxD,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAiB3F"}
1
+ {"version":3,"file":"reference-images.d.ts","sourceRoot":"","sources":["../src/reference-images.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,aAAa,IAAI,IAAI,CAAC;IACtB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED,sFAAsF;AACtF,qBAAa,qBAAsB,YAAW,eAAe;IAO/C,OAAO,CAAC,IAAI;IANxB,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,WAAW,CAAK;gBACJ,IAAI,EAAE,kBAAkB;IAE5C,yEAAyE;IACzE,SAAS,IAAI,OAAO;IAEpB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAMtE,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C1E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxB,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IACf,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAYxD,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAiB3F"}
@@ -12,6 +12,8 @@ export class ReferenceImageManager {
12
12
  constructor(host) {
13
13
  this.host = host;
14
14
  }
15
+ /** Whether recovery would omit at least one GPU-only reference plane. */
16
+ hasImages() { return this.images.size > 0 || this.jobs.size > 0; }
15
17
  init(device, format, sampleCount) {
16
18
  this.destroy();
17
19
  this.device = device;
@@ -1 +1 @@
1
- {"version":3,"file":"reference-images.js","sourceRoot":"","sources":["../src/reference-images.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAA0B,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAQ7D,sFAAsF;AACtF,MAAM,OAAO,qBAAqB;IAOZ;IANZ,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC9C,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjC,QAAQ,GAAkC,IAAI,CAAC;IAC/C,MAAM,GAAqB,IAAI,CAAC;IAChC,MAAM,GAAqB,YAAY,CAAC;IACxC,WAAW,GAAG,CAAC,CAAC;IACxB,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEhD,IAAI,CAAC,MAAiB,EAAE,MAAwB,EAAE,WAAmB;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,KAA0B,EAAE,MAAoB;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAChF,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;QACjD,IAAI,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAC/I,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,0EAA0E;YAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,oFAAoF;QACpF,MAAM,QAAQ,GAAwB,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE;gBACzD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC3F,EAAE,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,SAAwC,CAAC;QAC7C,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,wEAAwE;YACxE,IAAI,CAAC,QAAQ,KAAK,IAAI,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACpF,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,GAAG,KAAK,CAAC;QAAC,CAAC;QAClC,2EAA2E;QAC3E,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,YAAY,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACvF,IAAI,CAAC;YACH,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;YACjF,IAAI,UAAU,IAAI,MAAM;gBAAE,OAAO,KAAK,IAAI,KAAK,CAAC,kCAAkC,CAAC,UAAU,IAAI,MAAM,CAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACvH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,KAAK,KAAK,CAAC;QAAC,CAAC;QACtC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5F,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC5D,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,KAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,IAA0B,EAAE,QAAsB;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,CAAC,KAAwB,EAAU,EAAE;YACjD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;YAChF,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,QAAQ,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,GAAC,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC9D,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,QAAQ,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,GAAC,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC;QACF,2EAA2E;QAC3E,kFAAkF;QAClF,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9G,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,OAAqB;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;YACnI,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,GAA6B,IAAI,CAAC;QAC3G,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK;gBAAE,SAAS;YAClD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;gBAAE,SAAS;YACpE,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,GAAG,EAAE,CAAC;gBAAC,OAAO,GAAG,GAAG,CAAC;gBAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAAC,CAAC;QACtD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"reference-images.js","sourceRoot":"","sources":["../src/reference-images.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ import type { SymbolicFillInput, SymbolicTextInput } from './symbolic-overlay-pi
42
42
  import { type ClashSolidInput } from './clash-solid-pipeline.js';
43
43
  import { type ModelBounds } from './render-section-draw.js';
44
44
  import type { RenderOptions } from './types.js';
45
+ import type { DeviceRecoveryOmission } from './device-recovery.js';
45
46
  /**
46
47
  * The slice of `Renderer` the overlays need. Deliberately four methods wide:
47
48
  * the overlays own their GPU objects outright, and borrow only the model-bounds
@@ -75,6 +76,8 @@ export declare class RendererOverlays {
75
76
  private readonly symbolic;
76
77
  private clashSolidPipeline;
77
78
  constructor(host: OverlayHost);
79
+ /** Snapshot which transient GPU-only layers will be dropped by recovery. */
80
+ recoveryOmissions(): DeviceRecoveryOmission[];
78
81
  /**
79
82
  * Create the overlay GPU objects. Called from `Renderer.init()` once the
80
83
  * device and the main pipeline (for its sample count) exist.
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-overlays.d.ts","sourceRoot":"","sources":["../src/renderer-overlays.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer-overlays.d.ts","sourceRoot":"","sources":["../src/renderer-overlays.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,19 @@ export class RendererOverlays {
49
49
  this.host = host;
50
50
  this.symbolic = new SymbolicOverlays(host);
51
51
  }
52
+ /** Snapshot which transient GPU-only layers will be dropped by recovery. */
53
+ recoveryOmissions() {
54
+ const omissions = [];
55
+ const overlay = this.section2DOverlayRenderer;
56
+ if (overlay?.hasGeometry())
57
+ omissions.push('section-2d-overlay');
58
+ if (overlay && (LINE_OVERLAY_CHANNELS.some((channel) => overlay.hasLineOverlay(channel)) || overlay.hasClashBoxLines3D() || (this.clashSolidPipeline?.hasGeometry() ?? false))) {
59
+ omissions.push('line-overlays');
60
+ }
61
+ if (this.symbolic.hasGeometry())
62
+ omissions.push('symbolic-overlays');
63
+ return omissions;
64
+ }
52
65
  /**
53
66
  * Create the overlay GPU objects. Called from `Renderer.init()` once the
54
67
  * device and the main pipeline (for its sample count) exist.
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-overlays.js","sourceRoot":"","sources":["../src/renderer-overlays.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer-overlays.js","sourceRoot":"","sources":["../src/renderer-overlays.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class SymbolicOverlays {
27
27
  private fillPipeline;
28
28
  private textPipeline;
29
29
  constructor(host: SymbolicOverlayHost);
30
+ hasGeometry(): boolean;
30
31
  /**
31
32
  * Share the device + presentation format AND the MSAA sample count +
32
33
  * objectId attachment shape with the rest of the renderer so these
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-symbolic-overlays.d.ts","sourceRoot":"","sources":["../src/renderer-symbolic-overlays.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAGH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACzB,MAAM,iCAAiC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,iCAAiC,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjF,qBAAqB,IAAI,IAAI,CAAC;IAC9B,aAAa,IAAI,IAAI,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAIb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,YAAY,CAAqC;gBAE5B,IAAI,EAAE,mBAAmB;IAEtD;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAK5E;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf,6DAA6D;IAC7D,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMnE,kDAAkD;IAClD,SAAS,CACL,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACf,IAAI;IAqCP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;IA0BtD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;CA0BzD"}
1
+ {"version":3,"file":"renderer-symbolic-overlays.d.ts","sourceRoot":"","sources":["../src/renderer-symbolic-overlays.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAGH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACzB,MAAM,iCAAiC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,iCAAiC,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjF,qBAAqB,IAAI,IAAI,CAAC;IAC9B,aAAa,IAAI,IAAI,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAIb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,YAAY,CAAqC;gBAE5B,IAAI,EAAE,mBAAmB;IAEtD,WAAW,IAAI,OAAO;IAItB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAK5E;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf,6DAA6D;IAC7D,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMnE,kDAAkD;IAClD,SAAS,CACL,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACf,IAAI;IAqCP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;IA0BtD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;CA0BzD"}
@@ -10,6 +10,9 @@ export class SymbolicOverlays {
10
10
  constructor(host) {
11
11
  this.host = host;
12
12
  }
13
+ hasGeometry() {
14
+ return (this.fillPipeline?.hasGeometry() ?? false) || (this.textPipeline?.hasGeometry() ?? false);
15
+ }
13
16
  /**
14
17
  * Share the device + presentation format AND the MSAA sample count +
15
18
  * objectId attachment shape with the rest of the renderer so these