@ifc-lite/renderer 2.0.0 → 2.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 (177) hide show
  1. package/README.md +10 -0
  2. package/dist/appearance-batch-cohorts.d.ts +33 -0
  3. package/dist/appearance-batch-cohorts.d.ts.map +1 -0
  4. package/dist/appearance-batch-cohorts.js +126 -0
  5. package/dist/appearance-batch-cohorts.js.map +1 -0
  6. package/dist/appearance-companions.d.ts +30 -0
  7. package/dist/appearance-companions.d.ts.map +1 -0
  8. package/dist/appearance-companions.js +138 -0
  9. package/dist/appearance-companions.js.map +1 -0
  10. package/dist/appearance-preview.d.ts +93 -0
  11. package/dist/appearance-preview.d.ts.map +1 -0
  12. package/dist/appearance-preview.js +246 -0
  13. package/dist/appearance-preview.js.map +1 -0
  14. package/dist/appearance-uvs.d.ts +10 -0
  15. package/dist/appearance-uvs.d.ts.map +1 -0
  16. package/dist/appearance-uvs.js +112 -0
  17. package/dist/appearance-uvs.js.map +1 -0
  18. package/dist/bvh.d.ts.map +1 -1
  19. package/dist/bvh.js +3 -0
  20. package/dist/bvh.js.map +1 -1
  21. package/dist/deviation/deviation-computer.js +1 -1
  22. package/dist/deviation/deviation-computer.js.map +1 -1
  23. package/dist/index.d.ts +60 -18
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +184 -232
  26. package/dist/index.js.map +1 -1
  27. package/dist/lod-simplify.d.ts.map +1 -1
  28. package/dist/lod-simplify.js +24 -2
  29. package/dist/lod-simplify.js.map +1 -1
  30. package/dist/merged-mesh-extract.d.ts +18 -0
  31. package/dist/merged-mesh-extract.d.ts.map +1 -0
  32. package/dist/merged-mesh-extract.js +73 -0
  33. package/dist/merged-mesh-extract.js.map +1 -0
  34. package/dist/model-bounds-tracker.d.ts +1 -1
  35. package/dist/model-bounds-tracker.d.ts.map +1 -1
  36. package/dist/model-bounds-tracker.js +3 -2
  37. package/dist/model-bounds-tracker.js.map +1 -1
  38. package/dist/model-placement-bounds.d.ts +29 -0
  39. package/dist/model-placement-bounds.d.ts.map +1 -0
  40. package/dist/model-placement-bounds.js +55 -0
  41. package/dist/model-placement-bounds.js.map +1 -0
  42. package/dist/model-translation.d.ts +57 -0
  43. package/dist/model-translation.d.ts.map +1 -0
  44. package/dist/model-translation.js +223 -0
  45. package/dist/model-translation.js.map +1 -0
  46. package/dist/partial-batch-cache.d.ts +65 -0
  47. package/dist/partial-batch-cache.d.ts.map +1 -0
  48. package/dist/partial-batch-cache.js +88 -0
  49. package/dist/partial-batch-cache.js.map +1 -0
  50. package/dist/partial-batch-requests.d.ts +77 -0
  51. package/dist/partial-batch-requests.d.ts.map +1 -0
  52. package/dist/partial-batch-requests.js +97 -0
  53. package/dist/partial-batch-requests.js.map +1 -0
  54. package/dist/picking-manager.js +2 -2
  55. package/dist/picking-manager.js.map +1 -1
  56. package/dist/point-picker.d.ts +2 -2
  57. package/dist/point-picker.d.ts.map +1 -1
  58. package/dist/point-picker.js +27 -21
  59. package/dist/point-picker.js.map +1 -1
  60. package/dist/pointcloud/point-cloud-node.d.ts +2 -0
  61. package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
  62. package/dist/pointcloud/point-cloud-node.js +12 -0
  63. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  64. package/dist/pointcloud/point-cloud-placement.d.ts +20 -0
  65. package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -0
  66. package/dist/pointcloud/point-cloud-placement.js +69 -0
  67. package/dist/pointcloud/point-cloud-placement.js.map +1 -0
  68. package/dist/pointcloud/point-cloud-renderer.d.ts +14 -14
  69. package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
  70. package/dist/pointcloud/point-cloud-renderer.js +47 -63
  71. package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
  72. package/dist/raycast-engine.d.ts +9 -11
  73. package/dist/raycast-engine.d.ts.map +1 -1
  74. package/dist/raycast-engine.js +6 -11
  75. package/dist/raycast-engine.js.map +1 -1
  76. package/dist/raycaster.d.ts.map +1 -1
  77. package/dist/raycaster.js +3 -0
  78. package/dist/raycaster.js.map +1 -1
  79. package/dist/reference-image-hit.d.ts +5 -0
  80. package/dist/reference-image-hit.d.ts.map +1 -0
  81. package/dist/reference-image-hit.js +28 -0
  82. package/dist/reference-image-hit.js.map +1 -0
  83. package/dist/reference-image-host.d.ts +5 -0
  84. package/dist/reference-image-host.d.ts.map +1 -0
  85. package/dist/reference-image-host.js +26 -0
  86. package/dist/reference-image-host.js.map +1 -0
  87. package/dist/reference-image-pipeline.d.ts +15 -0
  88. package/dist/reference-image-pipeline.d.ts.map +1 -0
  89. package/dist/reference-image-pipeline.js +104 -0
  90. package/dist/reference-image-pipeline.js.map +1 -0
  91. package/dist/reference-image-types.d.ts +27 -0
  92. package/dist/reference-image-types.d.ts.map +1 -0
  93. package/dist/reference-image-types.js +5 -0
  94. package/dist/reference-image-types.js.map +1 -0
  95. package/dist/reference-images.d.ts +27 -0
  96. package/dist/reference-images.d.ts.map +1 -0
  97. package/dist/reference-images.js +134 -0
  98. package/dist/reference-images.js.map +1 -0
  99. package/dist/renderer-viewport.d.ts +3 -0
  100. package/dist/renderer-viewport.d.ts.map +1 -0
  101. package/dist/renderer-viewport.js +20 -0
  102. package/dist/renderer-viewport.js.map +1 -0
  103. package/dist/rgba-texture-pool.d.ts +12 -0
  104. package/dist/rgba-texture-pool.d.ts.map +1 -0
  105. package/dist/rgba-texture-pool.js +51 -0
  106. package/dist/rgba-texture-pool.js.map +1 -0
  107. package/dist/scene-appearance-buckets.d.ts +41 -0
  108. package/dist/scene-appearance-buckets.d.ts.map +1 -0
  109. package/dist/scene-appearance-buckets.js +164 -0
  110. package/dist/scene-appearance-buckets.js.map +1 -0
  111. package/dist/scene-appearance-instances.d.ts +42 -0
  112. package/dist/scene-appearance-instances.d.ts.map +1 -0
  113. package/dist/scene-appearance-instances.js +143 -0
  114. package/dist/scene-appearance-instances.js.map +1 -0
  115. package/dist/scene-appearance-preview.d.ts +30 -0
  116. package/dist/scene-appearance-preview.d.ts.map +1 -0
  117. package/dist/scene-appearance-preview.js +149 -0
  118. package/dist/scene-appearance-preview.js.map +1 -0
  119. package/dist/scene-appearance-resources.d.ts +16 -0
  120. package/dist/scene-appearance-resources.d.ts.map +1 -0
  121. package/dist/scene-appearance-resources.js +41 -0
  122. package/dist/scene-appearance-resources.js.map +1 -0
  123. package/dist/scene-authored-owner.d.ts +9 -0
  124. package/dist/scene-authored-owner.d.ts.map +1 -0
  125. package/dist/scene-authored-owner.js +73 -0
  126. package/dist/scene-authored-owner.js.map +1 -0
  127. package/dist/scene-batch-upload.d.ts +12 -0
  128. package/dist/scene-batch-upload.d.ts.map +1 -0
  129. package/dist/scene-batch-upload.js +147 -0
  130. package/dist/scene-batch-upload.js.map +1 -0
  131. package/dist/scene-contents.d.ts +41 -0
  132. package/dist/scene-contents.d.ts.map +1 -1
  133. package/dist/scene-geometry.d.ts +16 -0
  134. package/dist/scene-geometry.d.ts.map +1 -1
  135. package/dist/scene-geometry.js +26 -0
  136. package/dist/scene-geometry.js.map +1 -1
  137. package/dist/scene-instance-materialization.d.ts +17 -0
  138. package/dist/scene-instance-materialization.d.ts.map +1 -0
  139. package/dist/scene-instance-materialization.js +52 -0
  140. package/dist/scene-instance-materialization.js.map +1 -0
  141. package/dist/scene-instance-suppression.d.ts +22 -0
  142. package/dist/scene-instance-suppression.d.ts.map +1 -0
  143. package/dist/scene-instance-suppression.js +100 -0
  144. package/dist/scene-instance-suppression.js.map +1 -0
  145. package/dist/scene-instance-types.d.ts +55 -0
  146. package/dist/scene-instance-types.d.ts.map +1 -0
  147. package/dist/scene-instance-types.js +2 -0
  148. package/dist/scene-instance-types.js.map +1 -0
  149. package/dist/scene-model-translation.d.ts +49 -0
  150. package/dist/scene-model-translation.d.ts.map +1 -0
  151. package/dist/scene-model-translation.js +100 -0
  152. package/dist/scene-model-translation.js.map +1 -0
  153. package/dist/scene-stream-split.d.ts +4 -0
  154. package/dist/scene-stream-split.d.ts.map +1 -0
  155. package/dist/scene-stream-split.js +54 -0
  156. package/dist/scene-stream-split.js.map +1 -0
  157. package/dist/scene.d.ts +105 -85
  158. package/dist/scene.d.ts.map +1 -1
  159. package/dist/scene.js +445 -581
  160. package/dist/scene.js.map +1 -1
  161. package/dist/shadow-occluders.d.ts.map +1 -1
  162. package/dist/shadow-occluders.js +13 -9
  163. package/dist/shadow-occluders.js.map +1 -1
  164. package/dist/snap-detector.d.ts.map +1 -1
  165. package/dist/snap-detector.js +3 -0
  166. package/dist/snap-detector.js.map +1 -1
  167. package/dist/textured-vertices.d.ts +9 -0
  168. package/dist/textured-vertices.d.ts.map +1 -0
  169. package/dist/textured-vertices.js +40 -0
  170. package/dist/textured-vertices.js.map +1 -0
  171. package/dist/types.d.ts +11 -9
  172. package/dist/types.d.ts.map +1 -1
  173. package/dist/xray-alpha.d.ts +131 -0
  174. package/dist/xray-alpha.d.ts.map +1 -0
  175. package/dist/xray-alpha.js +266 -0
  176. package/dist/xray-alpha.js.map +1 -0
  177. package/package.json +4 -4
package/dist/scene.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Scene graph and mesh management
3
3
  */
4
+ import type { InstancedTemplateGPU } from './scene-instance-types.js';
4
5
  import type { Mesh, BatchedMesh, Vec3, PickClipState } from './types.js';
5
6
  import type { MeshData } from '@ifc-lite/geometry';
6
7
  import type { RenderPipeline } from './pipeline.js';
@@ -25,6 +26,11 @@ import type { DecodedInstancedShard } from '@ifc-lite/geometry';
25
26
  * bindGroup wiring all three. Drawn per-mesh in a dedicated sub-pass. */
26
27
  export interface TexturedMesh {
27
28
  expressId: number;
29
+ modelIndex?: number;
30
+ bounds?: {
31
+ min: [number, number, number];
32
+ max: [number, number, number];
33
+ };
28
34
  vertexBuffer: GPUBuffer;
29
35
  indexBuffer: GPUBuffer;
30
36
  indexCount: number;
@@ -62,33 +68,7 @@ export interface TexturedMesh {
62
68
  * per occurrence via a per-instance buffer at slot 1 and
63
69
  * `drawIndexed(indexCount, instanceCount)`. Buffers are Scene-owned, freed in clear().
64
70
  */
65
- export interface InstancedTemplateGPU {
66
- /** Owning model (federation index). Templates are identified by
67
- * `(modelIndex, slot)`, so one model's templates can be freed without
68
- * disturbing another's — see `removeInstancedTemplatesForModel`. Defaults to
69
- * 0, the single-model / primary case. */
70
- modelIndex: number;
71
- vertexBuffer: GPUBuffer;
72
- indexBuffer: GPUBuffer;
73
- indexCount: number;
74
- instanceBuffer: GPUBuffer;
75
- instanceCount: number;
76
- /** Union of the occurrences' world AABBs (null when no occurrence has a
77
- * finite box — such templates are never culled). Same tuple layout as
78
- * BatchedMesh.bounds so the render loop's frustum test is shared. */
79
- bounds: {
80
- min: [number, number, number];
81
- max: [number, number, number];
82
- } | null;
83
- /** Largest single-occurrence bounding-sphere radius (world units). Upper
84
- * bound for the contribution cull: no occurrence can project larger than
85
- * this radius at the union box's nearest view depth. */
86
- maxOccRadius: number;
87
- /** Occurrences currently selected (highlight flag set). A template with a
88
- * selected occurrence is exempt from contribution culling so the highlight
89
- * can't vanish while the entity is the user's focus. */
90
- selectedCount: number;
91
- }
71
+ export type { InstancedTemplateGPU } from './scene-instance-types.js';
92
72
  /**
93
73
  * Pure helper: compute the exclusive end index of the next flushPending()
94
74
  * append chunk, starting at `readIndex` and bounded by BOTH mesh count
@@ -119,6 +99,7 @@ export declare class Scene {
119
99
  private batchedMeshes;
120
100
  private buckets;
121
101
  private meshDataBucket;
102
+ private modelTranslations;
122
103
  private meshDataMap;
123
104
  private boundingBoxes;
124
105
  private texturedMeshes;
@@ -126,6 +107,36 @@ export declare class Scene {
126
107
  * (one `IfcImageTexture` → one upload, sampled by every face set mapping it).
127
108
  * Refcounted: entries die when the last referencing mesh is removed / on clear(). */
128
109
  private sharedTextures;
110
+ private rgbaTexturePool;
111
+ private appearanceController?;
112
+ private appearanceBuckets?;
113
+ private authoredGeneration;
114
+ private appearanceAccess;
115
+ private sharedAppearanceBuckets;
116
+ appearancePreview(device: GPUDevice, pipeline: RenderPipeline): import("./appearance-preview.js").AppearancePreviewController<{
117
+ kind: "textured";
118
+ mesh: TexturedMesh;
119
+ } | {
120
+ kind: "flat";
121
+ flat: import("./scene-appearance-buckets.js").FlatAppearanceResource;
122
+ } | {
123
+ kind: "instance";
124
+ record: import("./scene-appearance-instances.js").InstanceAppearanceRecord;
125
+ }>;
126
+ /** Place canonical native appearance source geometry in this model's live frame. */
127
+ placeAppearanceSource(mesh: MeshData): MeshData;
128
+ /** Retain model-local source coordinates when publishing a placed appearance mesh. */
129
+ appearanceSourceMesh(mesh: MeshData): MeshData;
130
+ /** Stage one new IFC owner with all its coloured or textured geometry parts. */
131
+ prepareAuthoredOwner(parts: readonly MeshData[], device: GPUDevice, pipeline: RenderPipeline): {
132
+ commit(): void;
133
+ dispose(): void;
134
+ };
135
+ /** Compatibility entry point for an image-backed single-part owner. */
136
+ prepareTexturedOwner(mesh: MeshData, device: GPUDevice, pipeline: RenderPipeline): {
137
+ commit(): void;
138
+ dispose(): void;
139
+ };
129
140
  private texturedDevice?;
130
141
  /** GPU-instancing: unique templates + per-occurrence buffers (fed by
131
142
  * addInstancedShard). SLOT-STABLE and therefore SPARSE: a per-model removal
@@ -146,6 +157,9 @@ export declare class Scene {
146
157
  private instancedTemplateCpu;
147
158
  private instancedDevice?;
148
159
  private instancedSelected;
160
+ private instancedSelectedItemExpressId?;
161
+ private instancedSelectedItemId?;
162
+ private readonly instanceSuppression;
149
163
  private instancedHidden;
150
164
  private instancedOverridden;
151
165
  private instancedGhosted;
@@ -176,13 +190,17 @@ export declare class Scene {
176
190
  private finalizeInProgress;
177
191
  private nextSplitId;
178
192
  private nextBatchId;
179
- private sharedFrameOrigin;
193
+ private sharedFrameOrigins;
180
194
  private cachedMaxBufferSize;
181
195
  private static readonly STREAMING_FRAGMENT_MAX_INDICES;
182
196
  private static readonly STREAMING_FRAGMENT_MAX_VERTEX_BYTES;
183
197
  private partialBatchCache;
184
198
  private partialBatchCacheKeys;
185
199
  private partialBatchCacheVersions;
200
+ /** The three maps above as one record, so the eviction paths in
201
+ * `partial-batch-cache.ts` can keep them consistent together. Same Map
202
+ * objects, not copies — they are only ever cleared, never reassigned. */
203
+ private readonly partialCaches;
186
204
  private overrideBatches;
187
205
  private colorOverrides;
188
206
  private colorOverrideGeneration;
@@ -207,7 +225,7 @@ export declare class Scene {
207
225
  /** The shared local-frame origin all batches relativize against (null until
208
226
  * the first batch is built). Per-mesh highlight/picker VBOs replicate the
209
227
  * batch's exact f32 path against this so they render bit-coincident. */
210
- getSharedFrameOrigin(): [number, number, number] | null;
228
+ getSharedFrameOrigin(modelIndex?: number): [number, number, number] | null;
211
229
  /**
212
230
  * Enable/disable spatial chunk bucketing (issue #1682 phase 2). When set,
213
231
  * colour buckets are additionally partitioned by world grid cell, making
@@ -320,15 +338,14 @@ export declare class Scene {
320
338
  * sourceBatchKeys embed the batch id, so they are stale once it is
321
339
  * evicted/replaced). */
322
340
  private dropPartialCacheForBatch;
323
- /** Destroy + drop EVERY cached partial sub-batch. The clones built during
324
- * hide/isolate are deliberately excluded from the GPU residency budget and
325
- * are otherwise only freed on clear()/finalize/evict — never when filtering
326
- * ends. The render loop calls this on the transition back to fully-visible so
327
- * the ~model-sized clone VRAM is not pinned until the next model reload. Uses
328
- * the same destroy-then-clear idiom as clear(); safe to call between frames
329
- * because the previous frame is already submitted (WebGPU defers the free
330
- * past in-flight work). */
341
+ /** Destroy + drop EVERY cached partial sub-batch called on the transition
342
+ * back to "no filtering, no X-Ray" so their VRAM is not pinned until the
343
+ * next model reload. See `partial-batch-cache.ts`. */
331
344
  dropAllPartialCaches(): void;
345
+ /** Free the X-Ray alpha-split slots this frame did not request, so an X-Ray
346
+ * edit that un-splits a batch cannot pin its clones for the session (#4129
347
+ * review). See `partial-batch-cache.ts` for why the sweep is scoped. */
348
+ retireUnusedAlphaSlots(inUse: ReadonlySet<string>): void;
332
349
  /** Free the hydrated (pick / selection-highlight) individual meshes that are
333
350
  * no longer selected, destroying their GPU buffers and dropping them from
334
351
  * `this.meshes`. A mesh is kept iff its expressId is in `keep` AND it
@@ -338,8 +355,11 @@ export declare class Scene {
338
355
  * express ids, and an id-only check would strand the OTHER model's hydrated
339
356
  * mesh resident and drawing when selection moves across models. Only meshes
340
357
  * flagged `hydrated` are touched — authored geometry added via addMesh()
341
- * and batch geometry are left untouched. Returns how many were freed. */
342
- disposeHydratedMeshesExcept(keep: ReadonlySet<number>, keepModelIndex?: number): number;
358
+ * and batch geometry are left untouched. Returns how many were freed.
359
+ * #4382: a hydrated mesh of `itemFilterExpressId` must ALSO match
360
+ * `itemFilterItemId`'s `geometryItemId` to survive (frees a stale item on
361
+ * an in-product item switch); other kept expressIds are unaffected. */
362
+ disposeHydratedMeshesExcept(keep: ReadonlySet<number>, keepModelIndex?: number, itemFilterExpressId?: number, itemFilterItemId?: number): number;
343
363
  /**
344
364
  * Bucket BASE key for a mesh: colour key, prefixed with the mesh's grid
345
365
  * cell when spatial chunking is on. EVERY bucket-key derivation
@@ -368,12 +388,6 @@ export declare class Scene {
368
388
  * @param expressId - The expressId to look up
369
389
  * @param modelIndex - Optional modelIndex to filter by (for multi-model support)
370
390
  */
371
- /**
372
- * Extract only the vertices/triangles belonging to `targetId` from a
373
- * color-merged MeshData that contains many entities. Returns a new
374
- * lightweight MeshData suitable for selection highlighting.
375
- */
376
- private extractEntityFromMergedMesh;
377
391
  hasMeshData(expressId: number, modelIndex?: number): boolean;
378
392
  /**
379
393
  * Get all MeshData pieces for an expressId (without merging).
@@ -390,7 +404,9 @@ export declare class Scene {
390
404
  * multiple times would double-count its triangles in the BVH.
391
405
  */
392
406
  forEachMeshData(visit: (md: MeshData) => void): void;
393
- getMeshDataPieces(expressId: number, modelIndex?: number): MeshData[] | undefined;
407
+ /** #4382: `itemId`, when given, narrows the returned pieces to those whose
408
+ * `geometryItemId` matches (undefined never matches, so no silent fallback). */
409
+ getMeshDataPieces(expressId: number, modelIndex?: number, itemId?: number): MeshData[] | undefined;
394
410
  /**
395
411
  * Generate color key for grouping meshes.
396
412
  * Quantizes RGBA to 10-bit per channel and packs into a compact string.
@@ -480,10 +496,6 @@ export declare class Scene {
480
496
  * to a full reload if needed.
481
497
  */
482
498
  translateMeshesForEntity(expressId: number, delta: [number, number, number]): boolean;
483
- /**
484
- * Translate every flat (non-instanced) mesh for `expressId` by `delta`. See
485
- * {@link translateMeshesForEntity} for the full contract; this is the flat half.
486
- */
487
499
  /**
488
500
  * Mark a mesh's bucket for rebuild after its positions were mutated in
489
501
  * place (move/rotate), migrating it to a new bucket when spatial chunking
@@ -522,6 +534,9 @@ export declare class Scene {
522
534
  * translate or removal, which mutate the underlying geometry but don't touch
523
535
  * these standalone highlight meshes. */
524
536
  private evictHighlightMeshes;
537
+ /** Absolute workspace translation, renderer Y-up metres (#4226). */
538
+ getModelTranslation(modelIndex: number): readonly [number, number, number];
539
+ setModelTranslation(modelIndex: number, translation: readonly [number, number, number]): boolean;
525
540
  /** Bulk variant of `translateMeshesForEntity`. */
526
541
  translateMeshesForEntities(updates: Map<number, [number, number, number]>): number;
527
542
  /**
@@ -644,11 +659,6 @@ export declare class Scene {
644
659
  * participate in the main buckets map).
645
660
  */
646
661
  private createBatchedMesh;
647
- /**
648
- * Merge multiple mesh geometries into single vertex/index buffers.
649
- * Delegates to the extracted mergeGeometry() utility.
650
- */
651
- private mergeGeometry;
652
662
  /**
653
663
  * Get the effective max buffer size for this GPU device, with a safety margin.
654
664
  */
@@ -669,6 +679,25 @@ export declare class Scene {
669
679
  * Extract the base color key from a bucket key (strips "#N" suffix if present).
670
680
  */
671
681
  private baseColorKey;
682
+ /**
683
+ * Whether this batch's entities can be drawn as separate sub-batches right
684
+ * now — the precondition for splitting a batch by per-entity X-Ray alpha
685
+ * (#4129) or by any other per-entity property.
686
+ *
687
+ * Three ways a batch is indivisible:
688
+ * - its CPU geometry was released (GPU-resident mode) — nothing to re-merge;
689
+ * - it is not the live batch of a warm bucket: an evicted (cold) bucket has
690
+ * had its `meshData` dropped, and non-bucket batches (streaming fragments,
691
+ * sub-batches) have no piece list keyed the way the partial builder looks
692
+ * pieces up, so it would silently come back empty;
693
+ * - it holds a colour-merged piece, where many entities share ONE MeshData
694
+ * tagged per vertex. Such a piece is registered under every contained id,
695
+ * so it would land whole in more than one subset — the same geometry drawn
696
+ * twice, at two different alphas.
697
+ *
698
+ * The caller must fall back to drawing the batch whole when this is false.
699
+ */
700
+ canPartitionBatch(batch: BatchedMesh): boolean;
672
701
  /**
673
702
  * Get or create a partial batch for a subset of visible elements from a batch
674
703
  *
@@ -813,6 +842,8 @@ export declare class Scene {
813
842
  * shard, not the flat meshDataMap). CPU consumers use this to decide whether to
814
843
  * fall back to the instanced accessors below. */
815
844
  isInstancedEntity(expressId: number): boolean;
845
+ /** Retain one model-owned occurrence for reversible appearance replacement. */
846
+ retainInstancedOccurrence(expressId: number, modelIndex: number): import("./scene-instance-suppression.js").InstanceLease;
816
847
  /** All instanced occurrence express_ids (for CPU consumers that enumerate geometry,
817
848
  * e.g. the raycast-engine and exporters). */
818
849
  getInstancedEntityIds(): IterableIterator<number>;
@@ -838,8 +869,9 @@ export declare class Scene {
838
869
  * their flag byte (bit 0) and clearing the previously-selected ones. The shader
839
870
  * (vs_instanced -> fs_main) applies the blue highlight per occurrence, so no
840
871
  * re-draw is needed. No-op until a shard has been uploaded.
841
- */
842
- setInstancedSelection(expressIds: ReadonlySet<number>): void;
872
+ * #4382: when the item filter is set, only that expressId's matching-itemId
873
+ * occurrences get the selected bit; every other selected id stays whole-product. */
874
+ setInstancedSelection(expressIds: ReadonlySet<number>, itemFilterExpressId?: number, itemFilterItemId?: number): void;
843
875
  /** Keep each template's selectedCount in sync with selection flips so the
844
876
  * render loop can exempt templates with selected occurrences from
845
877
  * contribution culling (the highlight must not vanish on the user's focus). */
@@ -884,9 +916,10 @@ export declare class Scene {
884
916
  setInstancedGhosting(ghostExceptIds: ReadonlySet<number> | null | undefined, selectedIds: ReadonlySet<number> | null | undefined, ghostAlpha: number): void;
885
917
  /** The colour an occurrence was uploaded with, before any override or ghost. */
886
918
  private originalInstanceColor;
887
- /** Write the combined flag lane (selected | hidden) for every occurrence of `eid`.
888
- * Folding both bits here means selection and visibility updates never clobber each
889
- * other (they share the one u32 flags lane at INSTANCE_FLAGS_OFFSET). */
919
+ /** Write the combined flag lane (selected | hidden) for every occurrence of `eid`
920
+ * (shares one u32 lane at INSTANCE_FLAGS_OFFSET, so both bits are folded here).
921
+ * #4382: for the item-filtered eid, selected narrows per-occurrence to
922
+ * `loc.itemId === instancedSelectedItemId` instead of one shared word. */
890
923
  private writeInstanceFlags;
891
924
  private writeInstanceColor;
892
925
  private restoreInstanceColor;
@@ -903,17 +936,10 @@ export declare class Scene {
903
936
  * image was NOT resolved (missing zip sibling) renders as ordinary
904
937
  * flat-colour geometry instead. */
905
938
  private static hasRenderableTexture;
906
- /**
907
- * Interleave a textured mesh's vertices into the stride-36 layout
908
- * `[px,py,pz, nx,ny,nz, entityId(u32), u,v]`. Shared by initial upload and
909
- * the translate re-upload so the two can't drift. Returns null when the mesh
910
- * has no texture/uvs/geometry.
911
- */
912
- private interleaveTexturedVertices;
913
939
  private createTexturedMesh;
914
940
  /** Release a textured mesh's GPU texture: shared (#1781) entries decrement
915
- * the registry refcount and die with their LAST reference; per-mesh (#961)
916
- * uploads are destroyed outright. */
941
+ * the registry refcount and die with their LAST reference. Decoded RGBA
942
+ * textures use the pixel pool; unregistered partial uploads are destroyed. */
917
943
  private releaseTexturedMeshTexture;
918
944
  /**
919
945
  * Destroy every GPU-instanced template's buffers and reset all instanced
@@ -925,24 +951,18 @@ export declare class Scene {
925
951
  private destroyAllInstancedTemplates;
926
952
  clear(): void;
927
953
  /**
928
- * Clear flat/batched geometry (meshes, batches, buckets, textured meshes,
929
- * colour overlays, streaming state, residency bookkeeping) WITHOUT
930
- * touching GPU-instanced templates (#2073). A reshape that still has at
931
- * least one model present should call this instead of `clear()`, then
932
- * reconcile instanced ownership with `removeInstancedTemplatesForModel`
933
- * for any model that did NOT survive that way a still-loaded model's
934
- * repeated geometry (windows, doors, bolts, ...) stays resident across a
935
- * visibility toggle / in-place content mutation / federated model add
936
- * instead of silently vanishing (nothing re-uploads instanced shard bytes
937
- * after their one-time drain).
938
- *
939
- * Bounding boxes are only dropped for ids with NO surviving instanced
940
- * occurrence — an instanced-only id's box must outlive this call so
941
- * raycast / measure / section keep working for the geometry that was
942
- * just retained; a flat-only id's box is stale the moment its mesh data
943
- * is gone, so it is dropped like everything else here.
954
+ * Clear flat/batched geometry, textures, overlays and streaming/residency
955
+ * state while preserving GPU-instanced templates (#2073). Reshapes use this
956
+ * instead of clear(), then removeInstancedTemplatesForModel for departed
957
+ * models: surviving shards are not uploaded again after their initial drain.
958
+ * Drop retained flat bounds and rebuild boxes from surviving instances so
959
+ * picking and sections cannot see a removed flat contribution (#4226).
944
960
  */
945
961
  clearFlatGeometry(): void;
962
+ /** Reconcile an ordinary source-geometry rebuild; exact surviving appearance
963
+ * owners keep their original-instance history. Full reset remains separate. */
964
+ clearFlatGeometryForRebuild(geometry: readonly MeshData[], models: ReadonlySet<number>, sourceGeometry?: readonly MeshData[]): void;
965
+ private clearFlatBuffers;
946
966
  /**
947
967
  * Calculate bounding box from actual mesh vertex data
948
968
  */
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAKhB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI/E,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAAwC,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAmBhE;;;;;;;;;;GAUG;AACH;;0EAE0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,SAAS,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,YAAY,CAAC;IACxB,iFAAiF;IACjF,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;oFAEgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAWD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;8CAG0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,SAAS,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB;;0EAEsE;IACtE,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;;6DAEyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB;;6DAEyD;IACzD,aAAa,EAAE,MAAM,CAAC;CACvB;AAkCD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CAuBR;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,cAAc,CAAsB;IAC5C;;0FAEsF;IACtF,OAAO,CAAC,cAAc,CAA4D;IAClF,OAAO,CAAC,cAAc,CAAC,CAAY;IACnC;;;;;;;sEAOkE;IAClE,OAAO,CAAC,kBAAkB,CAA4C;IACtE,wEAAwE;IACxE,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,kBAAkB,CAAiD;IAC3E;;oEAEgE;IAChE,OAAO,CAAC,oBAAoB,CAA4C;IACxE,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,gBAAgB,CAA0B;IAKlD,OAAO,CAAC,uBAAuB,CAA+E;IAC9G,OAAO,CAAC,cAAc,CAAK;IAK3B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,yBAAyB,CAAS;IAI1C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAgC;IAC1E,OAAO,CAAC,8BAA8B,CAAM;IAC5C,OAAO,CAAC,wBAAwB,CAAS;IAMzC,OAAO,CAAC,eAAe,CAAkC;IAIzD,OAAO,CAAC,eAAe,CAAsC;IAK7D,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,yBAAyB,CAAS;IAK1C,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,oBAAoB,CAAK;IAEjC,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,uBAAuB,CAAS;IAKxC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAa;IAKhC,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAW;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAmB;IAK9E,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,qBAAqB,CAAkC;IAK/D,OAAO,CAAC,yBAAyB,CAAkC;IAKnE,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,cAAc,CAA+E;IAKrG,OAAO,CAAC,uBAAuB,CAAK;IAGpC,OAAO,CAAC,gBAAgB,CAA0B;IAGlD,OAAO,CAAC,kBAAkB,CAAqB;IAM/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,kBAAkB,CAAa;IAMvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,sBAAsB,CAAkB;IAEhD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB;;OAEG;IACH,SAAS,IAAI,IAAI,EAAE;IAInB;;OAEG;IACH,gBAAgB,IAAI,WAAW,EAAE;IAIjC;;6EAEyE;IACzE,oBAAoB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIvD;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI;IAQ9D,kBAAkB,IAAI,qBAAqB,GAAG,IAAI;IAYlD,wDAAwD;IACxD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASjD,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAItC;yEACqE;IACrE,mBAAmB,IAAI,IAAI;IAI3B,4DAA4D;IAC5D,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAK1C;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAS/C,uBAAuB,IAAI,OAAO;IAIlC;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM;IAmCnG,+EAA+E;IAC/E,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI;IAIpE;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;;;;;;OASG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAO5C,uEAAuE;IACvE,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASlD,yEAAyE;IACzE,mBAAmB,IAAI,MAAM;IAU7B;;2DAEuD;IACvD,OAAO,CAAC,eAAe;IAIvB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAkEzB;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC;gFAC4E;IAC5E,OAAO,CAAC,gBAAgB;IA0CxB;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM;IAmBtE;;;;;;OAMG;IACH,gBAAgB,IAAI,IAAI;IAuDxB;;6BAEyB;IACzB,OAAO,CAAC,wBAAwB;IAchC;;;;;;;gCAO4B;IAC5B,oBAAoB,IAAI,IAAI;IAY5B;;;;;;;;;8EAS0E;IAC1E,2BAA2B,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IAkBvF;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA0BrC;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAuGzE;;;;OAIG;IACH;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IA6DnC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAQ5D;;;OAGG;IACH;;;;;;;;;OASG;IACH,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAqBpD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,SAAS;IAwBjF;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;;;;;;OAQG;IACH,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,GAAE,OAAe,GAAG,IAAI;IAqE3H;;;;;;OAMG;IACH,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAmCxE;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAkFjD;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;;;;OAKG;IACH,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM;IAQ7D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;IAerF;;;OAGG;IACH;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,4BAA4B;IAgEpC;;;;;;;;;;;;;;;;OAgBG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;IAyCrF;;0FAEsF;IACtF,OAAO,CAAC,wBAAwB;IAuBhC;;;;6CAIyC;IACzC,OAAO,CAAC,oBAAoB;IAU5B,kDAAkD;IAClD,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM;IAQlF;;;;;;;;;;;;;;OAcG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;IAmEpG,+CAA+C;IAC/C,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,GAAG,MAAM;IAUzG;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;IASrC,+CAA+C;IAC/C,eAAe,IAAI,OAAO;IAI1B;;;;qEAIiE;IACjE,qBAAqB,IAAI,OAAO;IAIhC;;4DAEwD;IACxD,oBAAoB,IAAI,OAAO;IAI/B;;2EAEuE;IACvE,oBAAoB,IAAI,OAAO;IAI/B,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIjD;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO;IAwElE;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,qBAAqB;IAgE7B;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAUpE,OAAO,CAAC,sBAAsB;IAsG9B;;;;;;;;;;OAUG;IACH,sBAAsB,CACpB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,EACxB,QAAQ,GAAE,MAAU,GACnB,OAAO,CAAC,IAAI,CAAC;IA4KhB,wBAAwB,IAAI,IAAI;IAoChC;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,IAAI,IAAI;IAsD3B;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAIjC;;;;;;OAMG;IACH,gBAAgB,CACd,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EACtD,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,GACvB,IAAI;IAuGP;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAuKzB;;;OAGG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAInC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAsC3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;;;;;;;OAYG;IACH,uBAAuB,CACrB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,GAAG,SAAS;IAsG1B;;;;;;;OAOG;IACH,iBAAiB,CACf,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EACxD,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,GACvB,IAAI;IA6DP;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAO3B;;qEAEiE;IACjE,0BAA0B,IAAI,MAAM;IAIpC,wCAAwC;IACxC,kBAAkB,IAAI,WAAW,EAAE;IAInC,0CAA0C;IAC1C,iBAAiB,IAAI,OAAO;IAI5B;;;;;;;;;;;;;OAaG;IACH,iBAAiB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;IAI1F,gDAAgD;IAChD,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,6EAA6E;IAC7E,iBAAiB,IAAI,SAAS,YAAY,EAAE;IAI5C;;;;;;;;;OASG;IACH,mBAAmB,IAAI,gBAAgB;IAavC;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;8DAC0D;IAC1D,qBAAqB,IAAI,SAAS,oBAAoB,EAAE;IAKxD,wEAAwE;IACxE,OAAO,CAAC,6BAA6B;IAQrC;;yDAEqD;IACrD,wBAAwB,IAAI,MAAM,EAAE;IAQpC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IA8C5D;;;;;;;;;OASG;IACH,OAAO,CAAC,2BAA2B;IAgCnC;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,SAAI,GAAG,IAAI;IAsKxF;;;qDAGiD;IACjD,OAAO,CAAC,uBAAuB;IAkC/B;;sDAEkD;IAClD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI7C;kDAC8C;IAC9C,qBAAqB,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIjD;;2EAEuE;IACvE,uBAAuB,IAAI,MAAM;IAIjC;;;wFAGoF;IACpF,uBAAuB,IAAI,QAAQ,EAAE;IASrC;+EAC2E;IAC3E,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK/D;;;iEAG6D;IAC7D,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,SAAS;IAgDrE;;;;;OAKG;IACH,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAmC5D;;oFAEgF;IAChF,OAAO,CAAC,yBAAyB;IASjC;;;;;;;OAOG;IACH,sBAAsB,CACpB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,GAClD,IAAI;IA8CP;;;;OAIG;IACH,0BAA0B,CACxB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAC/E,IAAI;IAwBP;yEACqE;IACrE,uBAAuB,IAAI,OAAO;IAIlC;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB,CAClB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACtD,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACnD,UAAU,EAAE,MAAM,GACjB,IAAI;IAmCP,gFAAgF;IAChF,OAAO,CAAC,qBAAqB;IAM7B;;8EAE0E;IAC1E,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IAS5B;;;;;;OAMG;IACH;;;;wCAIoC;IACpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAKnC;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IA+BlC,OAAO,CAAC,kBAAkB;IAsG1B;;0CAEsC;IACtC,OAAO,CAAC,0BAA0B;IAclC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAyBpC,KAAK,IAAI,IAAI;IAQb;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,IAAI,IAAI;IAiDzB;;OAEG;IACH,SAAS,IAAI;QAAE,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI;IA8D1G;;;OAGG;IACH,wBAAwB,IAAI,MAAM,EAAE;IAcpC;;;;;OAKG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAgB3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG;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;IA6ChH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IA8B1D;;;;OAIG;IACH,OAAO,CACL,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,IAAI,EACZ,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAChC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1B,UAAU,GAAG,IAAI;IAwDpB;;;;;;;;;;;;;OAaG;IACH,UAAU,CACR,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAChC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1B,GAAG,CAAC,MAAM,CAAC;CA8Bf"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}