@ifc-lite/geometry 2.6.0 → 2.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"geometry-parallel.js","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry-parallel.js","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { MeshData, TessellationQuality } from './types.js';
2
+ import { type BatchSizingConfig } from './batch-sizing.js';
2
3
  export interface GeometryWorkerInitMessage {
3
4
  type: 'init';
4
5
  wasmModule?: WebAssembly.Module;
@@ -16,26 +17,11 @@ export interface GeometryWorkerInitMessage {
16
17
  */
17
18
  wasmUrl?: string;
18
19
  }
19
- export interface GeometryWorkerProcessMessage {
20
- type: 'process';
21
- sharedBuffer: SharedArrayBuffer;
22
- jobsFlat: Uint32Array;
23
- unitScale: number;
24
- rtcX: number;
25
- rtcY: number;
26
- rtcZ: number;
27
- needsShift: boolean;
28
- voidKeys: Uint32Array;
29
- voidCounts: Uint32Array;
30
- voidValues: Uint32Array;
31
- styleIds: Uint32Array;
32
- styleColors: Uint8Array;
33
- }
34
20
  /**
35
- * Streaming-mode counterpart to `process`. The host sends `stream-start`
36
- * once with the same metadata (minus jobs), then any number of
37
- * `stream-chunk` messages with new job slices, and finally `stream-end`
38
- * to trigger the worker's `complete` + `memory` emit.
21
+ * The host sends `stream-start` once with the session metadata (minus
22
+ * jobs), then any number of `stream-chunk` messages with new job slices,
23
+ * and finally `stream-end` to trigger the worker's `complete` + `memory`
24
+ * emit.
39
25
  *
40
26
  * Used by the streaming pre-pass path so workers can begin processing
41
27
  * jobs the moment the first chunk arrives from Rust, rather than waiting
@@ -54,6 +40,17 @@ export interface GeometryWorkerStreamStartMessage {
54
40
  voidValues: Uint32Array;
55
41
  styleIds: Uint32Array;
56
42
  styleColors: Uint8Array;
43
+ /** Prepass-resolved plane-angle→radians scale (meta event). Seeds each
44
+ * batch decoder so arc tessellation never re-pays an O(file) scan. */
45
+ planeAngleToRadians?: number;
46
+ /** #407/#913 §2.3 per-element material colour lists (flat encoding) —
47
+ * drive the transparent/opaque sub-mesh alternation. */
48
+ materialElementIds?: Uint32Array;
49
+ materialColorCounts?: Uint32Array;
50
+ materialColors?: Uint8Array;
51
+ /** #1097 optional adaptive-batch-sizing override (hardware tuning hook).
52
+ * Omitted ⇒ DEFAULT_BATCH_SIZING. Resolved/validated in the worker. */
53
+ batchSizing?: Partial<BatchSizingConfig>;
57
54
  }
58
55
  export interface GeometryWorkerStreamChunkMessage {
59
56
  type: 'stream-chunk';
@@ -75,6 +72,10 @@ export interface GeometryWorkerSetStylesMessage {
75
72
  voidValues: Uint32Array;
76
73
  styleIds: Uint32Array;
77
74
  styleColors: Uint8Array;
75
+ /** #407/#913 §2.3 material colour lists (streamed `styles` event). */
76
+ materialElementIds?: Uint32Array;
77
+ materialColorCounts?: Uint32Array;
78
+ materialColors?: Uint8Array;
78
79
  }
79
80
  /**
80
81
  * Install a pre-built entity index into the worker's IfcAPI. The streaming
@@ -91,10 +92,17 @@ export interface GeometryWorkerSetEntityIndexMessage {
91
92
  lengths: Uint32Array;
92
93
  }
93
94
  export interface GeometryWorkerPrePassMessage {
94
- type: 'prepass' | 'prepass-fast' | 'prepass-streaming';
95
+ type: 'prepass-streaming';
95
96
  sharedBuffer: SharedArrayBuffer;
96
- /** Jobs per chunk for `prepass-streaming` (defaults to 50_000). */
97
+ /** Jobs per chunk (defaults to 50_000). */
97
98
  chunkSize?: number;
99
+ /** #1097 load-time visibility filter: uppercase STEP keywords whose
100
+ * geometry jobs are skipped at generation (e.g. ["IFCSPACE","IFCANNOTATION"]).
101
+ * Toggling one back on requires a reload. Omitted ⇒ load everything. */
102
+ disabledTypes?: string[];
103
+ /** Skip #957 type-library (IfcTypeProduct) geometry at load (default Model
104
+ * view doesn't render it). Omitted ⇒ load it. */
105
+ skipTypeGeometry?: boolean;
98
106
  }
99
107
  /**
100
108
  * Forward the user-facing "Merge Multilayer Walls" toggle (issue #540)
@@ -130,7 +138,7 @@ export interface GeometryWorkerSetTessellationQualityMessage {
130
138
  type: 'set-tessellation-quality';
131
139
  level: TessellationQuality | null;
132
140
  }
133
- export type GeometryWorkerRequest = GeometryWorkerInitMessage | GeometryWorkerProcessMessage | GeometryWorkerStreamStartMessage | GeometryWorkerStreamChunkMessage | GeometryWorkerStreamEndMessage | GeometryWorkerSetStylesMessage | GeometryWorkerSetEntityIndexMessage | GeometryWorkerSetMergeLayersMessage | GeometryWorkerSetComputeGeometryHashesMessage | GeometryWorkerSetTessellationQualityMessage | GeometryWorkerPrePassMessage;
141
+ export type GeometryWorkerRequest = GeometryWorkerInitMessage | GeometryWorkerStreamStartMessage | GeometryWorkerStreamChunkMessage | GeometryWorkerStreamEndMessage | GeometryWorkerSetStylesMessage | GeometryWorkerSetEntityIndexMessage | GeometryWorkerSetMergeLayersMessage | GeometryWorkerSetComputeGeometryHashesMessage | GeometryWorkerSetTessellationQualityMessage | GeometryWorkerPrePassMessage;
134
142
  export interface GeometryWorkerBatchMessage {
135
143
  type: 'batch';
136
144
  meshes: {
@@ -140,6 +148,7 @@ export interface GeometryWorkerBatchMessage {
140
148
  normals: Float32Array;
141
149
  indices: Uint32Array;
142
150
  color: [number, number, number, number];
151
+ shadingColor?: [number, number, number, number];
143
152
  uvs?: MeshData['uvs'];
144
153
  texture?: MeshData['texture'];
145
154
  /** RTC-invariant per-entity geometry fingerprint, present only when
@@ -148,6 +157,12 @@ export interface GeometryWorkerBatchMessage {
148
157
  geometryHash?: bigint;
149
158
  }[];
150
159
  }
160
+ export interface GeometryWorkerProgressMessage {
161
+ type: 'progress';
162
+ /** Jobs handed to WASM so far within the current slice (pre-call count). */
163
+ processedJobs: number;
164
+ totalJobs: number;
165
+ }
151
166
  export interface GeometryWorkerCompleteMessage {
152
167
  type: 'complete';
153
168
  totalMeshes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.worker.d.ts","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.worker.d.ts","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
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
4
  import init, { initSync, IfcAPI } from '@ifc-lite/wasm';
5
+ import { DEFAULT_BATCH_SIZING, resolveBatchSizing, nextAdaptiveBatchJobs, } from './batch-sizing.js';
5
6
  let api = null;
6
7
  /**
7
8
  * Captured at the explicit `init` message and used for every subsequent
@@ -31,6 +32,8 @@ async function ensureInit() {
31
32
  applyComputeGeometryHashesToApi();
32
33
  tessellationQualityApplied = false;
33
34
  applyTessellationQualityToApi();
35
+ entityIndexApplied = false;
36
+ applyEntityIndexToApi();
34
37
  return api;
35
38
  }
36
39
  /**
@@ -91,6 +94,26 @@ function applyTessellationQualityToApi() {
91
94
  }
92
95
  tessellationQualityApplied = true;
93
96
  }
97
+ /**
98
+ * Cached pre-built entity index (issue #1097). Same replay contract as the
99
+ * flags above, but here it guards a perf cliff rather than a feature toggle:
100
+ * the binary-split recovery in `processBatch` sets `api = null` to force a
101
+ * WASM re-init after a failing entity. Without replay, the freshly-built
102
+ * IfcAPI has no entity index, so its next `processGeometryBatch` falls back to
103
+ * the lazy O(file) re-scan (~5 s on a 1 GB IFC) — a giant silent window that
104
+ * compounds across a cluster of failures. Re-applying the cached index keeps
105
+ * recovery cheap and quiet.
106
+ */
107
+ let cachedEntityIndex = null;
108
+ let entityIndexApplied = false;
109
+ /** Push the cached entity index onto the IfcAPI (once per API). */
110
+ function applyEntityIndexToApi() {
111
+ const ifcApi = api;
112
+ if (!ifcApi || entityIndexApplied || !cachedEntityIndex)
113
+ return;
114
+ ifcApi.setEntityIndex(cachedEntityIndex.ids, cachedEntityIndex.starts, cachedEntityIndex.lengths);
115
+ entityIndexApplied = true;
116
+ }
94
117
  /**
95
118
  * Build a Uint8Array view over the shared buffer. Modern wasm-bindgen accepts
96
119
  * SAB-backed views directly and copies them into linear memory itself, so an
@@ -109,22 +132,18 @@ function materialiseSharedBytes(sharedBuffer) {
109
132
  }
110
133
  let activeSession = null;
111
134
  /**
112
- * Jobs per inner WASM call inside `processSliceStreaming`.
113
- *
114
- * IMPORTANT: this is NOT just about batch size for the host post — every
115
- * `processGeometryBatch` call allocates a fresh `EntityDecoder.cache`
116
- * (FxHashMap) in Rust. Splitting one streaming chunk into many small
117
- * WASM calls forces the decoder to re-decode the same shared sub-entities
118
- * (`IfcCartesianPoint`, placements, etc.) per call. Main does one big
119
- * call per worker and reaps the cache locality.
120
- *
121
- * Setting this to a very large value means each fanned-out streaming
122
- * chunk maps to exactly one WASM call per worker — main-equivalent
123
- * cache behaviour while preserving streaming's early-job dispatch.
124
- * Per-flush mesh count is then bounded by the chunk size (≤ 25K-ish on
125
- * the 986 MB test file with 50K Rust chunk + 2-way fan-out).
135
+ * Adaptive per-call job budget for `processSliceStreaming`. The sizing formula
136
+ * + rationale live in `./batch-sizing.ts` (pure, unit-tested); these are just
137
+ * the running state. `batchSizing` is re-resolved per load from the optional
138
+ * `stream-start` override (a hardware-tuning hook); `adaptiveBatchJobs` is
139
+ * seeded at MAX and relearned each load.
126
140
  */
127
- const STREAM_BATCH_SIZE = 1_000_000;
141
+ let batchSizing = DEFAULT_BATCH_SIZING;
142
+ let adaptiveBatchJobs = batchSizing.maxJobs;
143
+ /** Liveness ping (no slice context) for recovery paths that recurse/re-init. */
144
+ function postWorkerHeartbeat() {
145
+ self.postMessage({ type: 'progress', processedJobs: 0, totalJobs: 0 });
146
+ }
128
147
  function startSession(input) {
129
148
  return {
130
149
  sharedBuffer: input.sharedBuffer,
@@ -138,6 +157,10 @@ function startSession(input) {
138
157
  voidValues: input.voidValues,
139
158
  styleIds: input.styleIds,
140
159
  styleColors: input.styleColors,
160
+ planeAngleToRadians: input.planeAngleToRadians,
161
+ materialElementIds: input.materialElementIds,
162
+ materialColorCounts: input.materialColorCounts,
163
+ materialColors: input.materialColors,
141
164
  pendingMeshes: [],
142
165
  pendingTransfers: [],
143
166
  totalMeshesEmitted: 0,
@@ -161,7 +184,8 @@ function collectMeshes(session, collection) {
161
184
  // `collection.free()` in finally still runs if extraction throws.
162
185
  const geometryHashes = extractGeometryHashesFromCollection(collection);
163
186
  for (let i = 0; i < collection.length; i++) {
164
- const mesh = collection.get(i);
187
+ // #1097: takeMesh MOVES the mesh out (no clone) — each mesh is read once.
188
+ const mesh = collection.takeMesh(i);
165
189
  if (!mesh)
166
190
  continue;
167
191
  try {
@@ -171,12 +195,29 @@ function collectMeshes(session, collection) {
171
195
  // Read the WASM copy-to-JS color getter once; indexing it directly
172
196
  // would copy a fresh Float32Array out of WASM per access.
173
197
  const color = mesh.color;
198
+ // Optional SurfaceColour for the GLB exporter's "Shading" mode —
199
+ // parity with the single-thread converter in geometry-coordinate.ts
200
+ // (the worker path silently dropped it, degrading "Shading" export
201
+ // on the DEFAULT load path — alignment audit).
202
+ const shadingArray = mesh.shadingColor;
203
+ const shadingColor = shadingArray && shadingArray.length === 4
204
+ ? [shadingArray[0], shadingArray[1], shadingArray[2], shadingArray[3]]
205
+ : undefined;
174
206
  const geometryHash = geometryHashes.get(mesh.expressId);
207
+ // Per-element local-frame origin (world = origin + position). Older wasm
208
+ // bundles lack the getter; [0,0,0] means absolute. Metadata only — the
209
+ // 3-tuple rides structured-clone, NOT pendingTransfers.
210
+ const originArr = mesh.origin;
211
+ const origin = originArr && originArr.length === 3 && (originArr[0] || originArr[1] || originArr[2])
212
+ ? [originArr[0], originArr[1], originArr[2]]
213
+ : undefined;
175
214
  const meshData = {
176
215
  expressId: mesh.expressId,
177
216
  ifcType: mesh.ifcType,
178
217
  positions, normals, indices,
179
218
  color: [color[0], color[1], color[2], color[3]],
219
+ ...(shadingColor ? { shadingColor } : {}),
220
+ ...(origin ? { origin } : {}),
180
221
  // Provenance for the Model/Types switch (0=occurrence, 1=orphan type,
181
222
  // 2=instanced type). Older wasm bundles lack the getter → default 0.
182
223
  geometryClass: mesh.geometryClass ?? 0,
@@ -247,11 +288,17 @@ async function processBatch(session, jobs) {
247
288
  return;
248
289
  try {
249
290
  const ifcApi = await ensureInit();
250
- const collection = ifcApi.processGeometryBatch(session.localBytes, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors);
291
+ const collection = ifcApi.processGeometryBatch(session.localBytes, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors, session.planeAngleToRadians, session.materialElementIds, session.materialColorCounts, session.materialColors);
251
292
  collectMeshes(session, collection);
252
293
  }
253
294
  catch (err) {
254
295
  const msg = err.message;
296
+ // The recovery below issues more synchronous WASM work — a SAB-fallback
297
+ // re-decode, two binary-split halves, or a per-entity WASM re-init — none
298
+ // of which feed the host watchdog on their own. A cluster of failing
299
+ // entities could therefore blow the silent-window budget invisibly
300
+ // (#1097, secondary window). Ping liveness before we recurse / re-init.
301
+ postWorkerHeartbeat();
255
302
  if (!session.sabFallbackTaken && session.localBytes.buffer instanceof SharedArrayBuffer) {
256
303
  session.sabFallbackTaken = true;
257
304
  console.warn(`[Worker] processGeometryBatch rejected SAB view (${msg}), falling back to copy`);
@@ -271,14 +318,29 @@ async function processBatch(session, jobs) {
271
318
  await processBatch(session, jobs.slice(mid));
272
319
  }
273
320
  }
274
- /** Run a slice in STREAM_BATCH_SIZE chunks, flushing after each chunk. */
321
+ /** Run a slice in adaptive-sized chunks, flushing after each chunk. */
275
322
  async function processSliceStreaming(session, jobsFlat) {
276
323
  const totalJobs = Math.floor(jobsFlat.length / 3);
277
- for (let jobOffset = 0; jobOffset < totalJobs; jobOffset += STREAM_BATCH_SIZE) {
324
+ let jobOffset = 0;
325
+ while (jobOffset < totalJobs) {
326
+ const batchJobs = Math.max(batchSizing.minJobs, Math.min(batchSizing.maxJobs, adaptiveBatchJobs));
327
+ // Liveness heartbeat BEFORE entering the synchronous WASM call: the host
328
+ // forwards it as a `progress` stream event so the consumer's stall
329
+ // watchdog measures "time inside one bounded WASM call", not "time since
330
+ // the last mesh" — a CSG-heavy region can legitimately produce nothing
331
+ // for several seconds while every worker is busy. Also covers batches
332
+ // that produce zero meshes (flushPending no-ops on empty).
333
+ self.postMessage({ type: 'progress', processedJobs: jobOffset, totalJobs });
278
334
  const start = jobOffset * 3;
279
- const end = Math.min(start + STREAM_BATCH_SIZE * 3, jobsFlat.length);
335
+ const end = Math.min(start + batchJobs * 3, jobsFlat.length);
336
+ const jobsThisBatch = (end - start) / 3;
337
+ const callStart = performance.now();
280
338
  await processBatch(session, jobsFlat.subarray(start, end));
281
339
  flushPending(session);
340
+ // Resize the next call from this one's measured throughput so the silent
341
+ // window stays near TARGET_BATCH_MS regardless of CSG density (#1097).
342
+ adaptiveBatchJobs = nextAdaptiveBatchJobs(adaptiveBatchJobs, jobsThisBatch, performance.now() - callStart, batchSizing);
343
+ jobOffset += jobsThisBatch;
282
344
  }
283
345
  }
284
346
  function emitSessionEnd(session) {
@@ -319,17 +381,20 @@ async function handleMessage(e) {
319
381
  self.postMessage({ type: 'prepass-progress', phase: 'parsing' });
320
382
  const sharedBuffer = e.data.sharedBuffer;
321
383
  const chunkSize = e.data.chunkSize ?? 50_000;
384
+ // #1097 load-time visibility filter (skip disabled types at job gen).
385
+ const disabledTypes = e.data.disabledTypes ?? undefined;
386
+ const skipTypeGeometry = e.data.skipTypeGeometry === true;
322
387
  // Forward Rust events 1:1 — the host (`geometry-parallel.ts`) treats
323
- // them as the streaming-prepass protocol. SAB-decode fallback mirrors
324
- // the existing `buildPrePassFast` path: try zero-copy view first, fall
325
- // back to a materialised copy only if wasm-bindgen rejects the view.
388
+ // them as the streaming-prepass protocol. SAB-decode fallback: try the
389
+ // zero-copy view first, fall back to a materialised copy only if
390
+ // wasm-bindgen rejects the view.
326
391
  let view = viewSharedBytes(sharedBuffer);
327
392
  let triedFallback = false;
328
393
  const onEvent = (event) => {
329
394
  self.postMessage({ type: 'prepass-stream', event });
330
395
  };
331
396
  try {
332
- ifcApi.buildPrePassStreaming(view, onEvent, chunkSize);
397
+ ifcApi.buildPrePassStreaming(view, onEvent, chunkSize, disabledTypes, skipTypeGeometry);
333
398
  }
334
399
  catch (err) {
335
400
  const msg = err instanceof Error ? err.message : String(err);
@@ -337,7 +402,7 @@ async function handleMessage(e) {
337
402
  triedFallback = true;
338
403
  console.warn(`[Worker] Streaming prepass with SAB view failed (${msg}), retrying with copy`);
339
404
  view = materialiseSharedBytes(sharedBuffer);
340
- ifcApi.buildPrePassStreaming(view, onEvent, chunkSize);
405
+ ifcApi.buildPrePassStreaming(view, onEvent, chunkSize, disabledTypes, skipTypeGeometry);
341
406
  }
342
407
  else {
343
408
  throw err;
@@ -345,33 +410,6 @@ async function handleMessage(e) {
345
410
  }
346
411
  return;
347
412
  }
348
- if (e.data.type === 'prepass' || e.data.type === 'prepass-fast') {
349
- const ifcApi = await ensureInit();
350
- // Heartbeat: signals "worker alive, parser running" so the host watchdog
351
- // can distinguish a stuck pre-pass from one that's still working on a
352
- // multi-GB file.
353
- self.postMessage({ type: 'prepass-progress', phase: 'parsing' });
354
- const sharedBuffer = e.data.sharedBuffer;
355
- const isFast = e.data.type === 'prepass-fast';
356
- // Fast pre-pass: only scan for entity locations (~1-2s)
357
- // Full pre-pass: also resolves styles + voids (~6s)
358
- let result;
359
- try {
360
- const view = viewSharedBytes(sharedBuffer);
361
- result = isFast ? ifcApi.buildPrePassFast(view) : ifcApi.buildPrePassOnce(view);
362
- }
363
- catch (err) {
364
- // wasm-bindgen on some runtimes rejects SAB-backed views with a
365
- // TypeError. Retry once with a materialised copy so we never regress
366
- // versus the previous behaviour.
367
- const msg = err instanceof Error ? err.message : String(err);
368
- console.warn(`[Worker] Prepass with SAB view failed (${msg}), retrying with copy`);
369
- const copy = materialiseSharedBytes(sharedBuffer);
370
- result = isFast ? ifcApi.buildPrePassFast(copy) : ifcApi.buildPrePassOnce(copy);
371
- }
372
- self.postMessage({ type: 'prepass-result', result });
373
- return;
374
- }
375
413
  if (e.data.type === 'init') {
376
414
  if (e.data.wasmUrl)
377
415
  cachedWasmUrl = e.data.wasmUrl;
@@ -384,6 +422,8 @@ async function handleMessage(e) {
384
422
  applyComputeGeometryHashesToApi();
385
423
  tessellationQualityApplied = false;
386
424
  applyTessellationQualityToApi();
425
+ entityIndexApplied = false;
426
+ applyEntityIndexToApi();
387
427
  }
388
428
  else {
389
429
  await ensureInit();
@@ -391,21 +431,13 @@ async function handleMessage(e) {
391
431
  self.postMessage({ type: 'ready' });
392
432
  return;
393
433
  }
394
- if (e.data.type === 'process') {
395
- await ensureInit();
396
- const { sharedBuffer, jobsFlat, unitScale, rtcX, rtcY, rtcZ, needsShift, voidKeys, voidCounts, voidValues, styleIds, styleColors } = e.data;
397
- const session = startSession({
398
- sharedBuffer, unitScale, rtcX, rtcY, rtcZ, needsShift,
399
- voidKeys, voidCounts, voidValues, styleIds, styleColors,
400
- });
401
- activeSession = session;
402
- await processSliceStreaming(session, jobsFlat);
403
- emitSessionEnd(session);
404
- activeSession = null;
405
- return;
406
- }
407
434
  if (e.data.type === 'stream-start') {
408
435
  await ensureInit();
436
+ // Fresh load: re-resolve the (optionally overridden) sizing config and
437
+ // relearn batch sizing from scratch (a reused worker may carry a small
438
+ // size from a previous dense model).
439
+ batchSizing = resolveBatchSizing(e.data.batchSizing);
440
+ adaptiveBatchJobs = batchSizing.maxJobs;
409
441
  activeSession = startSession({
410
442
  sharedBuffer: e.data.sharedBuffer,
411
443
  unitScale: e.data.unitScale,
@@ -416,6 +448,10 @@ async function handleMessage(e) {
416
448
  voidValues: e.data.voidValues,
417
449
  styleIds: e.data.styleIds,
418
450
  styleColors: e.data.styleColors,
451
+ planeAngleToRadians: e.data.planeAngleToRadians,
452
+ materialElementIds: e.data.materialElementIds,
453
+ materialColorCounts: e.data.materialColorCounts,
454
+ materialColors: e.data.materialColors,
419
455
  });
420
456
  return;
421
457
  }
@@ -439,6 +475,9 @@ async function handleMessage(e) {
439
475
  activeSession.voidKeys = e.data.voidKeys;
440
476
  activeSession.voidCounts = e.data.voidCounts;
441
477
  activeSession.voidValues = e.data.voidValues;
478
+ activeSession.materialElementIds = e.data.materialElementIds;
479
+ activeSession.materialColorCounts = e.data.materialColorCounts;
480
+ activeSession.materialColors = e.data.materialColors;
442
481
  return;
443
482
  }
444
483
  if (e.data.type === 'set-entity-index') {
@@ -448,8 +487,13 @@ async function handleMessage(e) {
448
487
  // (~5 s on a 1 GB IFC) — the dominant TTFG bottleneck before this
449
488
  // change. Now the only cost is FxHashMap construction from the
450
489
  // input slices (~1 s for 14 M entries).
451
- const ifcApi = await ensureInit();
452
- ifcApi.setEntityIndex(e.data.ids, e.data.starts, e.data.lengths);
490
+ await ensureInit();
491
+ // Cache then apply via the replay helper so a later recovery re-init
492
+ // (api = null in processBatch) re-installs the index instead of falling
493
+ // back to the lazy O(file) re-scan (#1097).
494
+ cachedEntityIndex = { ids: e.data.ids, starts: e.data.starts, lengths: e.data.lengths };
495
+ entityIndexApplied = false;
496
+ applyEntityIndexToApi();
453
497
  return;
454
498
  }
455
499
  if (e.data.type === 'set-merge-layers') {
@@ -483,6 +527,13 @@ async function handleMessage(e) {
483
527
  }
484
528
  emitSessionEnd(activeSession);
485
529
  activeSession = null;
530
+ // Release the per-load entity index and drop the applied flag. Workers
531
+ // are normally terminated after a load, but a reused worker must not
532
+ // retain the (large) index buffers across loads, nor replay a stale
533
+ // index on a recovery re-init before the next load's set-entity-index
534
+ // arrives. The next load re-populates via its own set-entity-index.
535
+ cachedEntityIndex = null;
536
+ entityIndexApplied = false;
486
537
  return;
487
538
  }
488
539
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.worker.js","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAqMxD,IAAI,GAAG,GAAkB,IAAI,CAAC;AAE9B;;;;;;;GAOG;AACH,IAAI,aAAa,GAAuB,SAAS,CAAC;AAElD;;;;;;;GAOG;AACH,KAAK,UAAU,UAAU;IACvB,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;IACnB,kBAAkB,GAAG,KAAK,CAAC;IAC3B,qBAAqB,EAAE,CAAC;IACxB,mBAAmB,GAAG,KAAK,CAAC;IAC5B,+BAA+B,EAAE,CAAC;IAClC,0BAA0B,GAAG,KAAK,CAAC;IACnC,6BAA6B,EAAE,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,IAAI,eAAe,GAAY,KAAK,CAAC;AACrC,IAAI,kBAAkB,GAAY,KAAK,CAAC;AASxC;;;;GAIG;AACH,SAAS,qBAAqB;IAC5B,IAAI,CAAC,GAAG,IAAI,kBAAkB;QAAE,OAAO;IACvC,MAAM,OAAO,GAAG,GAAsB,CAAC;IACvC,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IACD,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,IAAI,qBAAqB,GAAkB,IAAI,CAAC;AAChD,IAAI,mBAAmB,GAAY,KAAK,CAAC;AAEzC,8EAA8E;AAC9E,SAAS,+BAA+B;IACtC,IAAI,CAAC,GAAG,IAAI,mBAAmB;QAAE,OAAO;IACxC,MAAM,OAAO,GAAG,GAAsB,CAAC;IACvC,IAAI,OAAO,OAAO,CAAC,wBAAwB,KAAK,UAAU,EAAE,CAAC;QAC3D,OAAO,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC;IACD,mBAAmB,GAAG,IAAI,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,IAAI,mBAAmB,GAA+B,IAAI,CAAC;AAC3D,IAAI,0BAA0B,GAAY,KAAK,CAAC;AAEhD,2EAA2E;AAC3E,SAAS,6BAA6B;IACpC,IAAI,CAAC,GAAG,IAAI,0BAA0B;QAAE,OAAO;IAC/C,MAAM,OAAO,GAAG,GAAsB,CAAC;IACvC,IAAI,OAAO,OAAO,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;IACD,0BAA0B,GAAG,IAAI,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,YAA+B;IACtD,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,0EAA0E;AAC1E,SAAS,sBAAsB,CAAC,YAA+B;IAC7D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtD,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC;AAyBD,IAAI,aAAa,GAA6B,IAAI,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC,SAAS,YAAY,CAAC,KAUrB;IACC,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;QAC/C,gBAAgB,EAAE,KAAK;QACvB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;QACpD,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAA0B;IAC9C,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC3C,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,CAAC;IAC3C,IAA0B,CAAC,WAAW,CACrC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAgC,EACvD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,OAA0B,EAC1B,UAAsD;IAEtD,IAAI,CAAC;QACH,2EAA2E;QAC3E,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,cAAc,GAAG,mCAAmC,CAAC,UAAU,CAAC,CAAC;QAEvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,mEAAmE;gBACnE,0DAA0D;gBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAa;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,OAAO,EAAE,OAAO;oBAC3B,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC/C,sEAAsE;oBACtE,qEAAqE;oBACrE,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;iBACvC,CAAC;gBACF,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChF,OAAO,CAAC,mBAAmB,IAAI,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBAC9F,6EAA6E;gBAC7E,6EAA6E;gBAC7E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9C,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;oBACnB,QAAQ,CAAC,OAAO,GAAG;wBACjB,IAAI;wBACJ,KAAK,EAAE,IAAI,CAAC,YAAY;wBACxB,MAAM,EAAE,IAAI,CAAC,aAAa;wBAC1B,OAAO,EAAE,IAAI,CAAC,cAAc;wBAC5B,OAAO,EAAE,IAAI,CAAC,cAAc;qBAC7B,CAAC;oBACF,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBACvD,OAAO,CAAC,mBAAmB,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAClE,CAAC;gBACD,sEAAsE;gBACtE,wCAAwC;gBACxC,IAAI,YAAY,KAAK,SAAS;oBAAE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;gBACrE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mCAAmC,CAC1C,UAAsD;IAEtD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,MAAM,CAAC,GAAG,UAIT,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACpC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAC,OAA0B,EAAE,IAAiB;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,CAC5C,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAC3C,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAC5D,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EACxD,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CACtC,CAAC;QACF,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACxF,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,oDAAoD,GAAG,yBAAyB,CAAC,CAAC;YAC/F,OAAO,CAAC,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YAC7D,GAAG,GAAG,IAAI,CAAC;YACX,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,qBAAqB,OAAO,qBAAqB,GAAG,eAAe,CAAC,CAAC;QAClF,GAAG,GAAG,IAAI,CAAC;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,qBAAqB,CAAC,OAA0B,EAAE,QAAqB;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,iBAAiB,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAA0B;IAChD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;IACpD,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,GAAG,EAAE,SAAS,EAA0C,CAAC;QAC5E,aAAa,GAAG,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IACA,IAA0B,CAAC,WAAW,CACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE,aAAa,EAAiC,CACzG,CAAC;IACD,IAA0B,CAAC,WAAW,CACrC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,kBAAkB,EAAmC,CAC/F,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,IAAI,WAAW,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AAEnD,IAAI,CAAC,SAAS,GAAG,CAAC,QAA6C,EAAE,EAAE;IACjE,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACzE,IAA0B,CAAC,WAAW,CACrC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAgC,CAC3G,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,KAAK,UAAU,aAAa,CAAC,CAAsC;IACjE,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,kEAAkE;YAClE,gCAAgC;YAC/B,IAA0B,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACxF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;YACzC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;YAE7C,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,IAAI,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACzC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;gBAChC,IAA0B,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,aAAa,GAAG,IAAI,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,oDAAoD,GAAG,uBAAuB,CAAC,CAAC;oBAC7F,IAAI,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;oBAC5C,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,yEAAyE;YACzE,sEAAsE;YACtE,iBAAiB;YAChB,IAA0B,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACxF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;YAC9C,wDAAwD;YACxD,oDAAoD;YACpD,IAAI,MAA8C,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC3C,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,gEAAgE;gBAChE,qEAAqE;gBACrE,iCAAiC;gBACjC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,0CAA0C,GAAG,uBAAuB,CAAC,CAAC;gBACnF,MAAM,IAAI,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;gBAClD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAClF,CAAC;YACA,IAA0B,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;gBAAE,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACnD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChD,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;gBACnB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,qBAAqB,EAAE,CAAC;gBACxB,mBAAmB,GAAG,KAAK,CAAC;gBAC5B,+BAA+B,EAAE,CAAC;gBAClC,0BAA0B,GAAG,KAAK,CAAC;gBACnC,6BAA6B,EAAE,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,EAAE,CAAC;YACrB,CAAC;YACA,IAA0B,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAC/D,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;YAC3E,MAAM,OAAO,GAAG,YAAY,CAAC;gBAC3B,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU;gBACrD,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW;aACxD,CAAC,CAAC;YACH,aAAa,GAAG,OAAO,CAAC;YACxB,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,UAAU,EAAE,CAAC;YACnB,aAAa,GAAG,YAAY,CAAC;gBAC3B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY;gBACjC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;gBACvD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;gBAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;gBAC7B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;gBAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;aAChC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,mEAAmE;YACnE,kEAAkE;YAClE,+DAA+D;YAC/D,oEAAoE;YACpE,+CAA+C;YAC/C,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAC/C,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACvC,gEAAgE;YAChE,kEAAkE;YAClE,kEAAkE;YAClE,kEAAkE;YAClE,+DAA+D;YAC/D,wCAAwC;YACxC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACvC,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,4DAA4D;YAC5D,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;YAC1C,kBAAkB,GAAG,KAAK,CAAC;YAC3B,qBAAqB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,6BAA6B,EAAE,CAAC;YAClD,mEAAmE;YACnE,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,qBAAqB,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,mBAAmB,GAAG,KAAK,CAAC;YAC5B,+BAA+B,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC/C,mEAAmE;YACnE,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;YAC3C,0BAA0B,GAAG,KAAK,CAAC;YACnC,6BAA6B,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YACD,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9B,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO;QACT,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACZ,IAA0B,CAAC,WAAW,CACrC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAgC,CAC3G,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"geometry.worker.js","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}