@ifc-lite/renderer 4.2.0 → 6.0.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.
- package/dist/camera-projection.d.ts +2 -0
- package/dist/camera-projection.d.ts.map +1 -1
- package/dist/camera-projection.js +46 -0
- package/dist/camera-projection.js.map +1 -1
- package/dist/chunk-grid.d.ts +21 -0
- package/dist/chunk-grid.d.ts.map +1 -1
- package/dist/chunk-grid.js +25 -7
- package/dist/chunk-grid.js.map +1 -1
- package/dist/clash-solid-pipeline.d.ts.map +1 -1
- package/dist/clash-solid-pipeline.js +4 -2
- package/dist/clash-solid-pipeline.js.map +1 -1
- package/dist/deviation/deviation-computer.d.ts +4 -0
- package/dist/deviation/deviation-computer.d.ts.map +1 -1
- package/dist/deviation/deviation-computer.js +20 -0
- package/dist/deviation/deviation-computer.js.map +1 -1
- package/dist/deviation/deviation-readback.d.ts +18 -0
- package/dist/deviation/deviation-readback.d.ts.map +1 -0
- package/dist/deviation/deviation-readback.js +67 -0
- package/dist/deviation/deviation-readback.js.map +1 -0
- package/dist/edge-params.d.ts +43 -0
- package/dist/edge-params.d.ts.map +1 -0
- package/dist/edge-params.js +63 -0
- package/dist/edge-params.js.map +1 -0
- package/dist/edge-pass.d.ts +54 -0
- package/dist/edge-pass.d.ts.map +1 -0
- package/dist/edge-pass.js +185 -0
- package/dist/edge-pass.js.map +1 -0
- package/dist/entity-color-table.d.ts +140 -0
- package/dist/entity-color-table.d.ts.map +1 -0
- package/dist/entity-color-table.js +238 -0
- package/dist/entity-color-table.js.map +1 -0
- package/dist/gpu-upload-guard.d.ts +1 -1
- package/dist/gpu-upload-guard.js +1 -1
- package/dist/hover-mesh-cache.d.ts +29 -0
- package/dist/hover-mesh-cache.d.ts.map +1 -0
- package/dist/hover-mesh-cache.js +31 -0
- package/dist/hover-mesh-cache.js.map +1 -0
- package/dist/index.d.ts +43 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +196 -189
- package/dist/index.js.map +1 -1
- package/dist/individual-mesh-upload.d.ts +24 -0
- package/dist/individual-mesh-upload.d.ts.map +1 -0
- package/dist/individual-mesh-upload.js +85 -0
- package/dist/individual-mesh-upload.js.map +1 -0
- package/dist/instanced-render.d.ts +22 -12
- package/dist/instanced-render.d.ts.map +1 -1
- package/dist/instanced-render.js +39 -27
- package/dist/instanced-render.js.map +1 -1
- package/dist/instanced-rte.d.ts +68 -7
- package/dist/instanced-rte.d.ts.map +1 -1
- package/dist/instanced-rte.js +98 -17
- package/dist/instanced-rte.js.map +1 -1
- package/dist/instanced-vertex-layout.d.ts +26 -0
- package/dist/instanced-vertex-layout.d.ts.map +1 -0
- package/dist/instanced-vertex-layout.js +61 -0
- package/dist/instanced-vertex-layout.js.map +1 -0
- package/dist/mesh-material.d.ts +26 -0
- package/dist/mesh-material.d.ts.map +1 -0
- package/dist/mesh-material.js +52 -0
- package/dist/mesh-material.js.map +1 -0
- package/dist/mesh-rte-uniforms.d.ts +5 -2
- package/dist/mesh-rte-uniforms.d.ts.map +1 -1
- package/dist/mesh-rte-uniforms.js +5 -2
- package/dist/mesh-rte-uniforms.js.map +1 -1
- package/dist/model-translation.d.ts.map +1 -1
- package/dist/model-translation.js +0 -7
- package/dist/model-translation.js.map +1 -1
- package/dist/outline-params.d.ts +45 -0
- package/dist/outline-params.d.ts.map +1 -0
- package/dist/outline-params.js +54 -0
- package/dist/outline-params.js.map +1 -0
- package/dist/overlay-routing.d.ts +8 -8
- package/dist/overlay-routing.js +2 -2
- package/dist/overlay-routing.js.map +1 -1
- package/dist/overlay-theme-uniforms.d.ts +54 -0
- package/dist/overlay-theme-uniforms.d.ts.map +1 -0
- package/dist/overlay-theme-uniforms.js +89 -0
- package/dist/overlay-theme-uniforms.js.map +1 -0
- package/dist/overlay-theme.d.ts +79 -0
- package/dist/overlay-theme.d.ts.map +1 -0
- package/dist/overlay-theme.js +24 -0
- package/dist/overlay-theme.js.map +1 -0
- package/dist/partial-batch-requests.d.ts +2 -2
- package/dist/pick-mesh-budget.d.ts +28 -0
- package/dist/pick-mesh-budget.d.ts.map +1 -0
- package/dist/pick-mesh-budget.js +74 -0
- package/dist/pick-mesh-budget.js.map +1 -0
- package/dist/picker-rte-uniforms.d.ts +7 -1
- package/dist/picker-rte-uniforms.d.ts.map +1 -1
- package/dist/picker-rte-uniforms.js +9 -1
- package/dist/picker-rte-uniforms.js.map +1 -1
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +15 -28
- package/dist/picker.js.map +1 -1
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +4 -47
- package/dist/picking-manager.js.map +1 -1
- package/dist/pipeline.d.ts +9 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +47 -70
- package/dist/pipeline.js.map +1 -1
- package/dist/point-picker.d.ts.map +1 -1
- package/dist/point-picker.js +7 -2
- package/dist/point-picker.js.map +1 -1
- package/dist/pointcloud/point-cloud-node.js +1 -1
- package/dist/pointcloud/point-cloud-node.js.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.js +3 -1
- package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
- package/dist/pointcloud/point-cloud-uniforms.d.ts +5 -1
- package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-uniforms.js +7 -1
- package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
- package/dist/post-pass-chain.d.ts +15 -2
- package/dist/post-pass-chain.d.ts.map +1 -1
- package/dist/post-pass-chain.js +49 -14
- package/dist/post-pass-chain.js.map +1 -1
- package/dist/raycast-engine.d.ts +5 -1
- package/dist/raycast-engine.d.ts.map +1 -1
- package/dist/raycast-engine.js +20 -8
- package/dist/raycast-engine.js.map +1 -1
- package/dist/raycast-point-cloud-query.d.ts +2 -0
- package/dist/raycast-point-cloud-query.d.ts.map +1 -1
- package/dist/raycast-point-cloud-query.js +7 -0
- package/dist/raycast-point-cloud-query.js.map +1 -1
- package/dist/raycast-source-curve-query.d.ts +13 -0
- package/dist/raycast-source-curve-query.d.ts.map +1 -0
- package/dist/raycast-source-curve-query.js +17 -0
- package/dist/raycast-source-curve-query.js.map +1 -0
- package/dist/reference-image-pipeline.d.ts.map +1 -1
- package/dist/reference-image-pipeline.js +4 -2
- package/dist/reference-image-pipeline.js.map +1 -1
- package/dist/relative-to-eye-abi.d.ts +36 -0
- package/dist/relative-to-eye-abi.d.ts.map +1 -0
- package/dist/relative-to-eye-abi.js +72 -0
- package/dist/relative-to-eye-abi.js.map +1 -0
- package/dist/relative-to-eye.d.ts +15 -35
- package/dist/relative-to-eye.d.ts.map +1 -1
- package/dist/relative-to-eye.js +46 -74
- package/dist/relative-to-eye.js.map +1 -1
- package/dist/render-stats.d.ts +5 -1
- package/dist/render-stats.d.ts.map +1 -1
- package/dist/render-stats.js +1 -1
- package/dist/render-stats.js.map +1 -1
- package/dist/renderer-overlays.d.ts +8 -7
- package/dist/renderer-overlays.d.ts.map +1 -1
- package/dist/renderer-overlays.js +14 -16
- package/dist/renderer-overlays.js.map +1 -1
- package/dist/scene-batch-rebuild.d.ts +1 -2
- package/dist/scene-batch-rebuild.d.ts.map +1 -1
- package/dist/scene-batch-rebuild.js +4 -8
- package/dist/scene-batch-rebuild.js.map +1 -1
- package/dist/scene-batch-upload.d.ts.map +1 -1
- package/dist/scene-batch-upload.js +7 -3
- package/dist/scene-batch-upload.js.map +1 -1
- package/dist/scene-contents.d.ts +1 -1
- package/dist/scene-contents.d.ts.map +1 -1
- package/dist/scene-derived-batches.d.ts +19 -64
- package/dist/scene-derived-batches.d.ts.map +1 -1
- package/dist/scene-derived-batches.js +16 -51
- package/dist/scene-derived-batches.js.map +1 -1
- package/dist/scene-device-recovery.d.ts +3 -3
- package/dist/scene-device-recovery.d.ts.map +1 -1
- package/dist/scene-device-recovery.js +12 -9
- package/dist/scene-device-recovery.js.map +1 -1
- package/dist/scene-geometry.d.ts +6 -6
- package/dist/scene-geometry.d.ts.map +1 -1
- package/dist/scene-geometry.js +8 -9
- package/dist/scene-geometry.js.map +1 -1
- package/dist/scene-instance-bounds.d.ts +1 -1
- package/dist/scene-instance-bounds.d.ts.map +1 -1
- package/dist/scene-instance-bounds.js +4 -16
- package/dist/scene-instance-bounds.js.map +1 -1
- package/dist/scene-instance-materialization.d.ts.map +1 -1
- package/dist/scene-instance-materialization.js +4 -4
- package/dist/scene-instance-materialization.js.map +1 -1
- package/dist/scene-instance-translation.d.ts +6 -10
- package/dist/scene-instance-translation.d.ts.map +1 -1
- package/dist/scene-instance-translation.js +9 -31
- package/dist/scene-instance-translation.js.map +1 -1
- package/dist/scene-instance-types.d.ts +11 -2
- package/dist/scene-instance-types.d.ts.map +1 -1
- package/dist/scene-instance-types.js +7 -1
- package/dist/scene-instance-types.js.map +1 -1
- package/dist/scene-model-translation.d.ts +1 -2
- package/dist/scene-model-translation.d.ts.map +1 -1
- package/dist/scene-model-translation.js +4 -3
- package/dist/scene-model-translation.js.map +1 -1
- package/dist/scene.d.ts +44 -30
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +121 -129
- package/dist/scene.js.map +1 -1
- package/dist/section-2d-line-buffer.d.ts +2 -2
- package/dist/section-2d-line-buffer.d.ts.map +1 -1
- package/dist/section-2d-line-buffer.js +10 -11
- package/dist/section-2d-line-buffer.js.map +1 -1
- package/dist/section-2d-overlay.d.ts +6 -4
- package/dist/section-2d-overlay.d.ts.map +1 -1
- package/dist/section-2d-overlay.js +45 -21
- package/dist/section-2d-overlay.js.map +1 -1
- package/dist/section-2d-types.d.ts +1 -1
- package/dist/section-2d-types.d.ts.map +1 -1
- package/dist/section-2d-types.js +1 -1
- package/dist/section-2d-types.js.map +1 -1
- package/dist/section-plane.d.ts +3 -0
- package/dist/section-plane.d.ts.map +1 -1
- package/dist/section-plane.js +18 -25
- package/dist/section-plane.js.map +1 -1
- package/dist/selection-mask-pass.d.ts +85 -0
- package/dist/selection-mask-pass.d.ts.map +1 -0
- package/dist/selection-mask-pass.js +170 -0
- package/dist/selection-mask-pass.js.map +1 -0
- package/dist/selection-mask-pipelines.d.ts +57 -0
- package/dist/selection-mask-pipelines.d.ts.map +1 -0
- package/dist/selection-mask-pipelines.js +150 -0
- package/dist/selection-mask-pipelines.js.map +1 -0
- package/dist/selection-outline-frame.d.ts +47 -0
- package/dist/selection-outline-frame.d.ts.map +1 -0
- package/dist/selection-outline-frame.js +122 -0
- package/dist/selection-outline-frame.js.map +1 -0
- package/dist/shaders/color-transfer.wgsl.d.ts +5 -3
- package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -1
- package/dist/shaders/color-transfer.wgsl.js +5 -3
- package/dist/shaders/color-transfer.wgsl.js.map +1 -1
- package/dist/shaders/depth-reconstruct.wgsl.d.ts +7 -2
- package/dist/shaders/depth-reconstruct.wgsl.d.ts.map +1 -1
- package/dist/shaders/depth-reconstruct.wgsl.js +8 -3
- package/dist/shaders/depth-reconstruct.wgsl.js.map +1 -1
- package/dist/shaders/edges.wgsl.d.ts +20 -0
- package/dist/shaders/edges.wgsl.d.ts.map +1 -0
- package/dist/shaders/edges.wgsl.js +257 -0
- package/dist/shaders/edges.wgsl.js.map +1 -0
- package/dist/shaders/entity-color-table.wgsl.d.ts +2 -0
- package/dist/shaders/entity-color-table.wgsl.d.ts.map +1 -0
- package/dist/shaders/entity-color-table.wgsl.js +85 -0
- package/dist/shaders/entity-color-table.wgsl.js.map +1 -0
- package/dist/shaders/main.wgsl.d.ts +1 -1
- package/dist/shaders/main.wgsl.d.ts.map +1 -1
- package/dist/shaders/main.wgsl.js +107 -171
- package/dist/shaders/main.wgsl.js.map +1 -1
- package/dist/shaders/mesh-uniforms.wgsl.d.ts +2 -0
- package/dist/shaders/mesh-uniforms.wgsl.d.ts.map +1 -0
- package/dist/shaders/mesh-uniforms.wgsl.js +53 -0
- package/dist/shaders/mesh-uniforms.wgsl.js.map +1 -0
- package/dist/shaders/section-2d-overlay.wgsl.d.ts +1 -0
- package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.js +3 -2
- package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
- package/dist/shaders/selection-mask.wgsl.d.ts +16 -0
- package/dist/shaders/selection-mask.wgsl.d.ts.map +1 -0
- package/dist/shaders/selection-mask.wgsl.js +138 -0
- package/dist/shaders/selection-mask.wgsl.js.map +1 -0
- package/dist/shaders/shadow.wgsl.d.ts +1 -1
- package/dist/shaders/shadow.wgsl.d.ts.map +1 -1
- package/dist/shaders/shadow.wgsl.js +3 -3
- package/dist/shaders/specular.wgsl.d.ts +34 -0
- package/dist/shaders/specular.wgsl.d.ts.map +1 -0
- package/dist/shaders/specular.wgsl.js +134 -0
- package/dist/shaders/specular.wgsl.js.map +1 -0
- package/dist/shadow-occluders.d.ts.map +1 -1
- package/dist/shadow-occluders.js +1 -0
- package/dist/shadow-occluders.js.map +1 -1
- package/dist/shadow-pass.d.ts +0 -1
- package/dist/shadow-pass.d.ts.map +1 -1
- package/dist/shadow-pass.js +26 -32
- package/dist/shadow-pass.js.map +1 -1
- package/dist/shadow-types.d.ts +3 -0
- package/dist/shadow-types.d.ts.map +1 -1
- package/dist/shadow-types.js.map +1 -1
- package/dist/snap-detector.d.ts +5 -0
- package/dist/snap-detector.d.ts.map +1 -1
- package/dist/snap-detector.js.map +1 -1
- package/dist/source-curve-clipping.d.ts +7 -0
- package/dist/source-curve-clipping.d.ts.map +1 -0
- package/dist/source-curve-clipping.js +165 -0
- package/dist/source-curve-clipping.js.map +1 -0
- package/dist/source-curve-snap.d.ts +49 -0
- package/dist/source-curve-snap.d.ts.map +1 -0
- package/dist/source-curve-snap.js +197 -0
- package/dist/source-curve-snap.js.map +1 -0
- package/dist/symbolic-overlay-pipelines.d.ts +1 -1
- package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
- package/dist/symbolic-overlay-pipelines.js +13 -22
- package/dist/symbolic-overlay-pipelines.js.map +1 -1
- package/dist/symbolic-text-rte.d.ts +16 -0
- package/dist/symbolic-text-rte.d.ts.map +1 -0
- package/dist/symbolic-text-rte.js +37 -0
- package/dist/symbolic-text-rte.js.map +1 -0
- package/dist/textured-vertices.d.ts.map +1 -1
- package/dist/textured-vertices.js +2 -3
- package/dist/textured-vertices.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/visual-enhancement.d.ts +10 -7
- package/dist/visual-enhancement.d.ts.map +1 -1
- package/dist/visual-enhancement.js +9 -8
- package/dist/visual-enhancement.js.map +1 -1
- package/dist/xray-alpha.d.ts +7 -3
- package/dist/xray-alpha.d.ts.map +1 -1
- package/dist/xray-alpha.js +11 -7
- package/dist/xray-alpha.js.map +1 -1
- package/package.json +4 -4
- package/dist/post-processor.d.ts +0 -46
- package/dist/post-processor.d.ts.map +0 -1
- package/dist/post-processor.js +0 -295
- package/dist/post-processor.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* The material row of the main mesh uniform (#5386): `metallicRoughness`
|
|
6
|
+
* and `transmission`, right after `baseColor`. The fragment stage's specular
|
|
7
|
+
* term (`shaders/specular.wgsl.ts`) reads it.
|
|
8
|
+
*
|
|
9
|
+
* No IFC finish reaches the renderer yet (IfcSurfaceStyleRendering's specular
|
|
10
|
+
* fields are not extracted), so a draw's material is derived here: a caller's
|
|
11
|
+
* `Mesh.material` if it supplies one, else a matte dielectric, or glass when
|
|
12
|
+
* the AUTHORED colour is translucent.
|
|
13
|
+
*
|
|
14
|
+
* Authored, not drawn: X-Ray and compare fade an opaque element by lowering
|
|
15
|
+
* the alpha the draw carries (`baseColor.a`), and a fade must not turn a wall
|
|
16
|
+
* into a pane of glass. Only the colour the geometry was authored with says
|
|
17
|
+
* what the surface is, so every writer passes that alpha here.
|
|
18
|
+
*/
|
|
19
|
+
import { MESH_UNIFORM_OFFSET } from './mesh-rte-uniforms.js';
|
|
20
|
+
import { OPAQUE_ALPHA_CUTOFF } from './overlay-routing.js';
|
|
21
|
+
/** A dielectric: plaster, concrete, masonry, timber, paint. */
|
|
22
|
+
export const DEFAULT_MATERIAL_METALLIC = 0;
|
|
23
|
+
/**
|
|
24
|
+
* Matte. Building finishes are mostly rough, and at this roughness the sun's
|
|
25
|
+
* highlight on a dielectric is a broad, faint sheen that leaves a white wall
|
|
26
|
+
* as it was (`mesh-material.test.ts` pins that). At the 0.6 this lane used to
|
|
27
|
+
* hold, the highlight washed a whitish film over every sunlit coloured roof.
|
|
28
|
+
*/
|
|
29
|
+
export const DEFAULT_MATERIAL_ROUGHNESS = 0.9;
|
|
30
|
+
/**
|
|
31
|
+
* Glass. Architectural glass is optically smooth, so it mirrors the sky at
|
|
32
|
+
* grazing angles and shows a tight sun glint; that reflection is what makes a
|
|
33
|
+
* pane read as glass.
|
|
34
|
+
*/
|
|
35
|
+
export const GLASS_ROUGHNESS = 0.05;
|
|
36
|
+
/**
|
|
37
|
+
* Write a draw's material into the mesh uniform's material row: metallic,
|
|
38
|
+
* roughness, transmission (1 = drawn as glass) and padding.
|
|
39
|
+
*
|
|
40
|
+
* @param authoredAlpha The alpha of the colour the geometry was authored
|
|
41
|
+
* with, before any X-Ray or compare fade. Defaults to opaque.
|
|
42
|
+
* @param material A caller-supplied finish; its fields win over the defaults.
|
|
43
|
+
*/
|
|
44
|
+
export function packMeshMaterial(out, authoredAlpha = 1, material) {
|
|
45
|
+
const glass = authoredAlpha < OPAQUE_ALPHA_CUTOFF;
|
|
46
|
+
const at = MESH_UNIFORM_OFFSET.metallicRoughness;
|
|
47
|
+
out[at] = material?.metallic ?? DEFAULT_MATERIAL_METALLIC;
|
|
48
|
+
out[at + 1] = material?.roughness ?? (glass ? GLASS_ROUGHNESS : DEFAULT_MATERIAL_ROUGHNESS);
|
|
49
|
+
out[at + 2] = glass ? 1 : 0;
|
|
50
|
+
out[at + 3] = 0;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=mesh-material.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-material.js","sourceRoot":"","sources":["../src/mesh-material.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAiB,EACjB,aAAa,GAAG,CAAC,EACjB,QAA4D;IAE5D,MAAM,KAAK,GAAG,aAAa,GAAG,mBAAmB,CAAC;IAClD,MAAM,EAAE,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;IACjD,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,IAAI,yBAAyB,CAAC;IAC1D,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAC5F,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { ClipBox } from './types.js';
|
|
10
10
|
import { type RelativeToEyeFrame } from './relative-to-eye.js';
|
|
11
|
-
export declare const MESH_UNIFORM_FLOATS =
|
|
11
|
+
export declare const MESH_UNIFORM_FLOATS = 96;
|
|
12
12
|
export declare const MESH_UNIFORM_BYTES: number;
|
|
13
13
|
export declare const MESH_UNIFORM_OFFSET: {
|
|
14
14
|
readonly viewProj: 0;
|
|
15
15
|
readonly model: 16;
|
|
16
16
|
readonly baseColor: 32;
|
|
17
|
+
readonly metallicRoughness: 36;
|
|
17
18
|
readonly sectionPlane: 40;
|
|
18
19
|
readonly flags: 44;
|
|
19
20
|
readonly clipBoxMin: 48;
|
|
@@ -21,6 +22,8 @@ export declare const MESH_UNIFORM_OFFSET: {
|
|
|
21
22
|
readonly rteViewProj: 60;
|
|
22
23
|
readonly drawableDelta: 76;
|
|
23
24
|
readonly rteCameraOrigin: 84;
|
|
25
|
+
/** vec4<u32>: per-draw colour-table anchor + mode bits (entity-color-table.ts, #6076). */
|
|
26
|
+
readonly overrideParams: 92;
|
|
24
27
|
};
|
|
25
28
|
/** flags.x: vertex and fragment values are camera-relative RTE coordinates. */
|
|
26
29
|
export declare const MESH_FLAG_RTE_DRAWABLE: number;
|
|
@@ -41,6 +44,6 @@ export interface MeshSectionPlane {
|
|
|
41
44
|
* cut/crop boundary and an entire several-decimetre quantisation cell.
|
|
42
45
|
*/
|
|
43
46
|
export declare function packRteFragmentSpace(frame: RelativeToEyeFrame, section: MeshSectionPlane | null | undefined, clipBox: ClipBox | null | undefined, out: Float32Array): void;
|
|
44
|
-
/** Pack the shared camera high/low lanes used by
|
|
47
|
+
/** Pack the shared camera high/low lanes used by instanced RTE shaders. */
|
|
45
48
|
export declare function packRteCameraOrigin(frame: RelativeToEyeFrame, out: Float32Array): void;
|
|
46
49
|
//# sourceMappingURL=mesh-rte-uniforms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-rte-uniforms.d.ts","sourceRoot":"","sources":["../src/mesh-rte-uniforms.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,kBAAkB,QAAuD,CAAC;AAEvF,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"mesh-rte-uniforms.d.ts","sourceRoot":"","sources":["../src/mesh-rte-uniforms.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,kBAAkB,QAAuD,CAAC;AAEvF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;IAY9B,0FAA0F;;CAElF,CAAC;AAEX,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,QAAU,CAAC;AAE9C,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,QAA6D,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,GAAG,EAAE,YAAY,GAChB,IAAI,CAkBN;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAKtF"}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { packRteOrigin } from './relative-to-eye.js';
|
|
5
5
|
import { packRteClipBox, rtePlaneDistance } from './rte-clip-space.js';
|
|
6
|
-
export const MESH_UNIFORM_FLOATS =
|
|
6
|
+
export const MESH_UNIFORM_FLOATS = 96;
|
|
7
7
|
export const MESH_UNIFORM_BYTES = MESH_UNIFORM_FLOATS * Float32Array.BYTES_PER_ELEMENT;
|
|
8
8
|
export const MESH_UNIFORM_OFFSET = {
|
|
9
9
|
viewProj: 0,
|
|
10
10
|
model: 16,
|
|
11
11
|
baseColor: 32,
|
|
12
|
+
metallicRoughness: 36,
|
|
12
13
|
sectionPlane: 40,
|
|
13
14
|
flags: 44,
|
|
14
15
|
clipBoxMin: 48,
|
|
@@ -16,6 +17,8 @@ export const MESH_UNIFORM_OFFSET = {
|
|
|
16
17
|
rteViewProj: 60,
|
|
17
18
|
drawableDelta: 76,
|
|
18
19
|
rteCameraOrigin: 84,
|
|
20
|
+
/** vec4<u32>: per-draw colour-table anchor + mode bits (entity-color-table.ts, #6076). */
|
|
21
|
+
overrideParams: 92,
|
|
19
22
|
};
|
|
20
23
|
/** flags.x: vertex and fragment values are camera-relative RTE coordinates. */
|
|
21
24
|
export const MESH_FLAG_RTE_DRAWABLE = 1 << 16;
|
|
@@ -49,7 +52,7 @@ export function packRteFragmentSpace(frame, section, clipBox, out) {
|
|
|
49
52
|
const clipOffset = MESH_UNIFORM_OFFSET.clipBoxMin;
|
|
50
53
|
packRteClipBox(clipBox, eye, out, clipOffset);
|
|
51
54
|
}
|
|
52
|
-
/** Pack the shared camera high/low lanes used by
|
|
55
|
+
/** Pack the shared camera high/low lanes used by instanced RTE shaders. */
|
|
53
56
|
export function packRteCameraOrigin(frame, out) {
|
|
54
57
|
if (out.length < MESH_UNIFORM_FLOATS) {
|
|
55
58
|
throw new RangeError(`Mesh RTE uniform needs ${MESH_UNIFORM_FLOATS} floats.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-rte-uniforms.js","sourceRoot":"","sources":["../src/mesh-rte-uniforms.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,YAAY,CAAC,iBAAiB,CAAC;AAEvF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"mesh-rte-uniforms.js","sourceRoot":"","sources":["../src/mesh-rte-uniforms.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,YAAY,CAAC,iBAAiB,CAAC;AAEvF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;IACnB,0FAA0F;IAC1F,cAAc,EAAE,EAAE;CACV,CAAC;AAEX,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,CAAC;AAE9C,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC;AAQjG;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAyB,EACzB,OAA4C,EAC5C,OAAmC,EACnC,GAAiB;IAEjB,IAAI,GAAG,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,0BAA0B,mBAAmB,UAAU,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC;IACvD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QACxB,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;IAClD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,KAAyB,EAAE,GAAiB;IAC9E,IAAI,GAAG,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,0BAA0B,mBAAmB,UAAU,CAAC,CAAC;IAChF,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"model-translation.d.ts","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
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 { worldAabbFromPieces } from './scene-geometry.js';
|
|
5
|
-
import { writeInstanceAnchor } from './instanced-render.js';
|
|
6
5
|
const ZERO = [0, 0, 0];
|
|
7
6
|
function yawEqual(a, b) {
|
|
8
7
|
if (!a && !b)
|
|
@@ -329,12 +328,6 @@ export class ModelTranslations {
|
|
|
329
328
|
writtenAnchors[anchorOffset] = ax;
|
|
330
329
|
writtenAnchors[anchorOffset + 1] = ay;
|
|
331
330
|
writtenAnchors[anchorOffset + 2] = az;
|
|
332
|
-
if (stride >= 120)
|
|
333
|
-
writeInstanceAnchor(view, i * stride, [ax, ay, az]);
|
|
334
|
-
}
|
|
335
|
-
else if (stride >= 120) {
|
|
336
|
-
// Legacy V1 callers have no canonical source anchors to preserve.
|
|
337
|
-
writeInstanceAnchor(view, i * stride, [ttx, tty, ttz]);
|
|
338
331
|
}
|
|
339
332
|
entry.written[b0 + 9] = ttx;
|
|
340
333
|
entry.written[b0 + 10] = tty;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAK/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,IAAI,GAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAU/B,SAAS,QAAQ,CAAC,CAAkB,EAAE,CAAkB;IACtD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,MAAc;IACvE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1K,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,KAAa;IAC/C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;AACtE,CAAC;AAaD;;kFAEkF;AAClF,MAAM,OAAO,iBAAiB;IACpB,QAAQ,GAAG,IAAI,OAAO,EAAwG,CAAC;IAC/H,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnC,MAAM,GAAG,IAAI,OAAO,EAA2B,CAAC;IAChD,OAAO,GAAG,IAAI,OAAO,EAA4B,CAAC;IAClD,SAAS,GAAG,IAAI,OAAO,EAU3B,CAAC;IACG,cAAc,GAAG,IAAI,OAAO,EAAuB,CAAC;IACpD,gBAAgB,GAAG,IAAI,GAAG,EAAoC,CAAC;IAEvE,GAAG,CAAC,UAAU,GAAG,CAAC,IAAY,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAE5E,GAAG,CAAC,UAAkB,EAAE,MAAc;QACpC,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAChF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;uEAGmE;IACnE,MAAM,CAAC,UAAU,GAAG,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAED;;;;;6EAKyE;IACzE,MAAM,CAAC,UAAkB,EAAE,GAAoB;QAC7C,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;eAClC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;eACjE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;;YAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mFAAmF;IACnF,SAAS,CAAC,MAAgB;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9B,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACzE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QACtC,IAAI,GAAG;YAAE,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,GAAG,GAAG;gBAC3C,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED;sFACkF;IAClF,iBAAiB,CAAC,IAAU;QAC1B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACnE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5L,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO;QACzE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;aACtC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa;YAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAA6B,CAAC,CAAC;;YAC3I,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAU;gBAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;oBACrF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxF,CAAC;QACD,IAAI,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,gFAAgF;IAChF,gBAAgB,CAAC,IAAc;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAa,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACrF,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAClF,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7G,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY;gBACjE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACjG,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAc,IAAc,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;IAEtF,kBAAkB,CAAC,EAAU,IAAU,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,eAAe;QACb,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,MAAuC;QACxD,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;gBACrE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;YAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBAAC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAAC,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YACjH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAClC,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC7B,MAAM,MAAM,GAAgB,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClI,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAU,EAAE,CAAC;gBAChE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,KAAe,IAAwB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAErH;qFACiF;IACjF,mBAAmB,CAAC,GAAgB,EAAE,QAAgB,EAAE,UAAkB;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YAC3C,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;YAC5D,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;SAC7D,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;mFAE+E;IAC/E,WAAW,CAAC,IAAmB,EAAE,UAAU,GAAG,CAAC;QAC7C,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAED,gBAAgB,CAAqB,KAAQ,EAAE,UAAkB;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU;YAClC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC;YAC/C,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/F,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,CAAC,KAAe;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;6CAeyC;IACzC,cAAc,CACZ,IAAiB,EACjB,UAAkB,EAClB,MAAc,EACd,gBAA+B,EAC/B,2BAA0C;QAE1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACpG,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;gBAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACvF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC7B,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC5E,CAAC;YACD,MAAM,aAAa,GAAG,gBAAgB,EAAE,MAAM,KAAK,KAAK,GAAG,CAAC,CAAC;YAC7D,KAAK,GAAG;gBACN,IAAI;gBACJ,OAAO;gBACP,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;oBAClB,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE;oBACpC,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE;iBACzC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,IAAI;aACV,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAEnG,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;YAC3C,uEAAuE;YACvE,sEAAsE;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;YAEvD,oEAAoE;YACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzF,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC9E,CAAC;YACD,sEAAsE;YACtE,mEAAmE;YACnE,4CAA4C;YAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACrF,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;YACzC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;YAC3E,MAAM,cAAc,GAAG,UAAU,IAAI,cAAc,IAAI,gBAAgB;mBAClE,2BAA2B,IAAI,gBAAgB,CAAC,MAAM,KAAK,KAAK,GAAG,CAAC;mBACpE,2BAA2B,CAAC,MAAM,KAAK,KAAK,GAAG,CAAC,CAAC;YACtD,IAAI,cAAc,EAAE,CAAC;gBACnB,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,oCAAoC;gBACpC,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;gBAClF,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1F,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1F,UAAU,CAAC,YAAY,CAAC,IAAI,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;gBACxE,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC;gBAC5C,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;gBAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;gBACtD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvG,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3G,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBACpC,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACxC,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACxC,2BAA2B,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;gBAChD,2BAA2B,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;gBACpD,2BAA2B,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;gBACpD,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBAClC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtC,IAAI,MAAM,IAAI,GAAG;oBAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBACzB,kEAAkE;gBAClE,mBAAmB,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC1F,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure constants and uniform packing for the selection/hover outline
|
|
3
|
+
* composite (#5390), the WGSL side in `shaders/edges.wgsl.ts`'s
|
|
4
|
+
* `outlineFragmentSource`. Mirrors `edge-params.ts`'s split between pure TS
|
|
5
|
+
* (unit-tested) and the shader that reads it.
|
|
6
|
+
*/
|
|
7
|
+
/** Selection outline colour: accessible blue, matching the existing highlight fill's hue family. */
|
|
8
|
+
export declare const SELECTION_OUTLINE_COLOR: readonly [number, number, number];
|
|
9
|
+
/** Hover pre-highlight: the same hue, lower alpha and never drawn through occluders. */
|
|
10
|
+
export declare const HOVER_OUTLINE_COLOR: readonly [number, number, number];
|
|
11
|
+
/** Alpha the solid (visible) selection outline reaches at full coverage. */
|
|
12
|
+
export declare const SELECTION_VISIBLE_ALPHA = 0.9;
|
|
13
|
+
/** The hidden-portion outline is dimmer, not dashed: simpler and immune to pattern aliasing. */
|
|
14
|
+
export declare const SELECTION_HIDDEN_ALPHA = 0.35;
|
|
15
|
+
/** Hover is a thin pre-highlight, well below the selection's own alpha. */
|
|
16
|
+
export declare const HOVER_VISIBLE_ALPHA = 0.5;
|
|
17
|
+
/**
|
|
18
|
+
* Outline ring half-width in device pixels, measured from the mask boundary
|
|
19
|
+
* to either side: a pixel within this distance of a differing mask pixel is
|
|
20
|
+
* fully covered, and coverage fades to 0 over the next pixel (antialiasing).
|
|
21
|
+
*/
|
|
22
|
+
export declare const OUTLINE_WIDTH_PX = 1.5;
|
|
23
|
+
/** Search radius (px) for the nearest differing mask pixel; >= OUTLINE_WIDTH_PX + 0.5. */
|
|
24
|
+
export declare const OUTLINE_SEARCH_RADIUS = 2;
|
|
25
|
+
/**
|
|
26
|
+
* Ring coverage for a pixel whose nearest differing mask pixel is `distance`
|
|
27
|
+
* away (Infinity when none is within `OUTLINE_SEARCH_RADIUS`). Mirrors
|
|
28
|
+
* `boundaryCoverage` in `shaders/edges.wgsl.ts`, which interpolates these
|
|
29
|
+
* same constants.
|
|
30
|
+
*/
|
|
31
|
+
export declare function outlineCoverage(distance: number): number;
|
|
32
|
+
/** Float offsets of the `OutlineParams` struct in `shaders/edges.wgsl.ts`. */
|
|
33
|
+
export declare const OUTLINE_UNIFORM_LAYOUT: {
|
|
34
|
+
readonly viewport: 0;
|
|
35
|
+
readonly selectionColor: 4;
|
|
36
|
+
readonly hoverColor: 8;
|
|
37
|
+
};
|
|
38
|
+
export declare const OUTLINE_UNIFORM_BYTES: number;
|
|
39
|
+
export interface OutlineFrameParams {
|
|
40
|
+
width: number;
|
|
41
|
+
height: number;
|
|
42
|
+
}
|
|
43
|
+
/** Pack one frame's `OutlineParams` into `out` (`OUTLINE_UNIFORM_BYTES / 4` floats). */
|
|
44
|
+
export declare function packOutlineUniforms(out: Float32Array, frame: OutlineFrameParams): void;
|
|
45
|
+
//# sourceMappingURL=outline-params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outline-params.d.ts","sourceRoot":"","sources":["../src/outline-params.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAqB,CAAC;AAC5F,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAqB,CAAC;AAExF,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,gGAAgG;AAChG,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,eAAO,MAAM,qBAAqB,QAA8C,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAQtF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Pure constants and uniform packing for the selection/hover outline
|
|
6
|
+
* composite (#5390), the WGSL side in `shaders/edges.wgsl.ts`'s
|
|
7
|
+
* `outlineFragmentSource`. Mirrors `edge-params.ts`'s split between pure TS
|
|
8
|
+
* (unit-tested) and the shader that reads it.
|
|
9
|
+
*/
|
|
10
|
+
/** Selection outline colour: accessible blue, matching the existing highlight fill's hue family. */
|
|
11
|
+
export const SELECTION_OUTLINE_COLOR = [0.30, 0.62, 1.0];
|
|
12
|
+
/** Hover pre-highlight: the same hue, lower alpha and never drawn through occluders. */
|
|
13
|
+
export const HOVER_OUTLINE_COLOR = [0.30, 0.62, 1.0];
|
|
14
|
+
/** Alpha the solid (visible) selection outline reaches at full coverage. */
|
|
15
|
+
export const SELECTION_VISIBLE_ALPHA = 0.9;
|
|
16
|
+
/** The hidden-portion outline is dimmer, not dashed: simpler and immune to pattern aliasing. */
|
|
17
|
+
export const SELECTION_HIDDEN_ALPHA = 0.35;
|
|
18
|
+
/** Hover is a thin pre-highlight, well below the selection's own alpha. */
|
|
19
|
+
export const HOVER_VISIBLE_ALPHA = 0.5;
|
|
20
|
+
/**
|
|
21
|
+
* Outline ring half-width in device pixels, measured from the mask boundary
|
|
22
|
+
* to either side: a pixel within this distance of a differing mask pixel is
|
|
23
|
+
* fully covered, and coverage fades to 0 over the next pixel (antialiasing).
|
|
24
|
+
*/
|
|
25
|
+
export const OUTLINE_WIDTH_PX = 1.5;
|
|
26
|
+
/** Search radius (px) for the nearest differing mask pixel; >= OUTLINE_WIDTH_PX + 0.5. */
|
|
27
|
+
export const OUTLINE_SEARCH_RADIUS = 2;
|
|
28
|
+
/**
|
|
29
|
+
* Ring coverage for a pixel whose nearest differing mask pixel is `distance`
|
|
30
|
+
* away (Infinity when none is within `OUTLINE_SEARCH_RADIUS`). Mirrors
|
|
31
|
+
* `boundaryCoverage` in `shaders/edges.wgsl.ts`, which interpolates these
|
|
32
|
+
* same constants.
|
|
33
|
+
*/
|
|
34
|
+
export function outlineCoverage(distance) {
|
|
35
|
+
return Math.min(1, Math.max(0, OUTLINE_WIDTH_PX + 0.5 - distance));
|
|
36
|
+
}
|
|
37
|
+
/** Float offsets of the `OutlineParams` struct in `shaders/edges.wgsl.ts`. */
|
|
38
|
+
export const OUTLINE_UNIFORM_LAYOUT = {
|
|
39
|
+
viewport: 0,
|
|
40
|
+
selectionColor: 4,
|
|
41
|
+
hoverColor: 8,
|
|
42
|
+
};
|
|
43
|
+
export const OUTLINE_UNIFORM_BYTES = (OUTLINE_UNIFORM_LAYOUT.hoverColor + 4) * 4;
|
|
44
|
+
/** Pack one frame's `OutlineParams` into `out` (`OUTLINE_UNIFORM_BYTES / 4` floats). */
|
|
45
|
+
export function packOutlineUniforms(out, frame) {
|
|
46
|
+
const L = OUTLINE_UNIFORM_LAYOUT;
|
|
47
|
+
out[L.viewport] = frame.width;
|
|
48
|
+
out[L.viewport + 1] = frame.height;
|
|
49
|
+
out[L.viewport + 2] = 0;
|
|
50
|
+
out[L.viewport + 3] = 0;
|
|
51
|
+
out.set([...SELECTION_OUTLINE_COLOR, SELECTION_VISIBLE_ALPHA], L.selectionColor);
|
|
52
|
+
out.set([...HOVER_OUTLINE_COLOR, HOVER_VISIBLE_ALPHA], L.hoverColor);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=outline-params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outline-params.js","sourceRoot":"","sources":["../src/outline-params.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;GAKG;AAEH,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5F,wFAAwF;AACxF,MAAM,CAAC,MAAM,mBAAmB,GAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAExF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,gGAAgG;AAChG,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE,CAAC;IACX,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;CACL,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,sBAAsB,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAOjF,wFAAwF;AACxF,MAAM,UAAU,mBAAmB,CAAC,GAAiB,EAAE,KAAyB;IAC9E,MAAM,CAAC,GAAG,sBAAsB,CAAC;IACjC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACnC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,uBAAuB,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IACjF,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Routing predicates for the opaque/transparent pipeline split.
|
|
3
3
|
*
|
|
4
|
-
* Lens / Pset colour overrides are
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* draw is transparent (IfcSpace, IfcOpeningElement,
|
|
9
|
-
*
|
|
4
|
+
* Lens / Pset colour overrides are painted in the base pass from the
|
|
5
|
+
* per-entity colour table (#6076, entity-color-table.ts), and only on
|
|
6
|
+
* depth-writing opaque draws — the rule the retired equal-depth overlay pass
|
|
7
|
+
* imposed, kept so the composite is unchanged. A colour override on an
|
|
8
|
+
* entity whose base draw is transparent (IfcSpace, IfcOpeningElement,
|
|
9
|
+
* glass, …) would therefore never show.
|
|
10
10
|
*
|
|
11
11
|
* To fix that, the renderer promotes the base draw of overridden entities
|
|
12
|
-
* to the opaque pipeline
|
|
13
|
-
*
|
|
12
|
+
* to the opaque pipeline, where the table paints it. To avoid turning
|
|
13
|
+
* non-overridden batchmates opaque, batches
|
|
14
14
|
* with mixed override membership are split into a "promoted" sub-batch
|
|
15
15
|
* (all overridden) and a "remaining" sub-batch (all not), each routed
|
|
16
16
|
* through its appropriate pipeline.
|
package/dist/overlay-routing.js
CHANGED
|
@@ -41,8 +41,8 @@ export function shouldRouteMeshTransparent(alpha, transparency, expressId, color
|
|
|
41
41
|
const nativelyTransparent = alpha < OPAQUE_ALPHA_CUTOFF || transparency > 0.01;
|
|
42
42
|
if (!nativelyTransparent)
|
|
43
43
|
return false;
|
|
44
|
-
// Lens / Pset override above the ghost threshold → promote to opaque
|
|
45
|
-
//
|
|
44
|
+
// Lens / Pset override above the ghost threshold → promote to opaque,
|
|
45
|
+
// the only draws the colour table paints (#6076).
|
|
46
46
|
if (colorOverrides != null) {
|
|
47
47
|
const override = colorOverrides.get(expressId);
|
|
48
48
|
if (override != null && override[3] >= OVERRIDE_PROMOTION_MIN_ALPHA)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-routing.js","sourceRoot":"","sources":["../src/overlay-routing.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyB/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAa,EACb,YAAoB,EACpB,SAAiB,EACjB,cAAsC;IAEtC,MAAM,mBAAmB,GAAG,KAAK,GAAG,mBAAmB,IAAI,YAAY,GAAG,IAAI,CAAC;IAC/E,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACvC,
|
|
1
|
+
{"version":3,"file":"overlay-routing.js","sourceRoot":"","sources":["../src/overlay-routing.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyB/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAa,EACb,YAAoB,EACpB,SAAiB,EACjB,cAAsC;IAEtC,MAAM,mBAAmB,GAAG,KAAK,GAAG,mBAAmB,IAAI,YAAY,GAAG,IAAI,CAAC;IAC/E,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACvC,sEAAsE;IACtE,kDAAkD;IAClD,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,4BAA4B;YAAE,OAAO,KAAK,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAa,EACb,UAAiC,EACjC,cAAsC;IAEtC,IAAI,KAAK,IAAI,mBAAmB;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0EAA0E;IAC1E,0EAA0E;IAC1E,qDAAqD;IACrD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,4BAA4B;YAAE,OAAO,IAAI,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAA4B,EAC5B,cAAsC;IAEtC,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,4BAA4B;YAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;YACnE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU/state plumbing for `Renderer.setOverlayTheme` (#5484), pulled out of
|
|
3
|
+
* `pipeline.ts` and `renderer-overlays.ts` so neither module carries this
|
|
4
|
+
* theme's bookkeeping inline (both were pushed over their `check-module-size`
|
|
5
|
+
* budget by it).
|
|
6
|
+
*/
|
|
7
|
+
import { type OverlayTheme, type Rgba } from './overlay-theme.js';
|
|
8
|
+
import type { SectionPlaneRenderer } from './section-plane.js';
|
|
9
|
+
import type { Section2DOverlayRenderer } from './section-2d-overlay.js';
|
|
10
|
+
import type { ClashSolidInput, ClashSolidPipeline } from './clash-solid-pipeline.js';
|
|
11
|
+
/** A clash solid whose `color` may be omitted to follow the theme's `clashOverlap` (#5490). */
|
|
12
|
+
export type ThemedClashSolidInput = Omit<ClashSolidInput, 'color'> & {
|
|
13
|
+
color?: ClashSolidInput['color'];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The selection highlight tint: group(1) binding 4, a standalone 16-byte
|
|
17
|
+
* uniform written only by `update()` (on `Renderer.setOverlayTheme`), never
|
|
18
|
+
* per-frame — unlike `RenderPipeline`'s `environmentBuffer`, which IS
|
|
19
|
+
* rewritten every frame from `RenderOptions.environment`.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SelectionColorUniform {
|
|
22
|
+
readonly buffer: GPUBuffer;
|
|
23
|
+
private readonly device;
|
|
24
|
+
constructor(device: GPUDevice);
|
|
25
|
+
/** Write the selection tint. 16 bytes; called only from `Renderer.setOverlayTheme`. */
|
|
26
|
+
update(color: readonly [number, number, number, number]): void;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Applies an `OverlayTheme` to the section-plane preview, the section-2D
|
|
31
|
+
* overlay (line/section-cut) renderers and the focused clash's overlap marks,
|
|
32
|
+
* and remembers the last theme set so a pre-init `setTheme` call — or a later
|
|
33
|
+
* re-init after device loss — still lands once those GPU objects exist.
|
|
34
|
+
*
|
|
35
|
+
* The clash box / contact lines and the clash solid take `clashOverlap` when
|
|
36
|
+
* their caller omits a colour (#5490), and keep following it: a theme change
|
|
37
|
+
* while a clash is focused recolours the marks in place instead of leaving the
|
|
38
|
+
* previous theme's tint baked into them.
|
|
39
|
+
*/
|
|
40
|
+
export declare class OverlayThemeApplier {
|
|
41
|
+
private theme;
|
|
42
|
+
private clashLinesFollowTheme;
|
|
43
|
+
private themedClashSolid;
|
|
44
|
+
get current(): OverlayTheme;
|
|
45
|
+
/** Set a new theme and apply it to whichever renderers already exist (any may be null pre-init). */
|
|
46
|
+
set(theme: OverlayTheme, sectionPlaneRenderer: SectionPlaneRenderer | null, section2DOverlayRenderer: Section2DOverlayRenderer | null, clashSolidPipeline?: Pick<ClashSolidPipeline, 'upload'> | null): void;
|
|
47
|
+
/** Re-apply the current theme to freshly (re)created renderers, e.g. from `init()`. */
|
|
48
|
+
reapply(sectionPlaneRenderer: SectionPlaneRenderer, section2DOverlayRenderer: Section2DOverlayRenderer): void;
|
|
49
|
+
/** The clash box / contact-line colour: `color` when given, else the theme's `clashOverlap`, followed from now on. */
|
|
50
|
+
clashLineColor(color: Rgba | undefined): Rgba;
|
|
51
|
+
/** The clash solid to upload: `color` when given, else the theme's `clashOverlap`, followed from now on. */
|
|
52
|
+
clashSolid(input: ThemedClashSolidInput | null): ClashSolidInput | null;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=overlay-theme-uniforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-theme-uniforms.d.ts","sourceRoot":"","sources":["../src/overlay-theme-uniforms.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,EAAyB,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAErF,+FAA+F;AAC/F,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAE1G;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,MAAM,EAAE,SAAS;IAa7B,uFAAuF;IACvF,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI9D,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,gBAAgB,CAAsC;IAE9D,IAAI,OAAO,IAAI,YAAY,CAE1B;IAED,oGAAoG;IACpG,GAAG,CACD,KAAK,EAAE,YAAY,EACnB,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,EACjD,wBAAwB,EAAE,wBAAwB,GAAG,IAAI,EACzD,kBAAkB,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,IAAW,GACnE,IAAI;IAQP,uFAAuF;IACvF,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,IAAI;IAM7G,sHAAsH;IACtH,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI;IAK7C,4GAA4G;IAC5G,UAAU,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI;CAMxE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* GPU/state plumbing for `Renderer.setOverlayTheme` (#5484), pulled out of
|
|
6
|
+
* `pipeline.ts` and `renderer-overlays.ts` so neither module carries this
|
|
7
|
+
* theme's bookkeeping inline (both were pushed over their `check-module-size`
|
|
8
|
+
* budget by it).
|
|
9
|
+
*/
|
|
10
|
+
import { DEFAULT_OVERLAY_THEME } from './overlay-theme.js';
|
|
11
|
+
/**
|
|
12
|
+
* The selection highlight tint: group(1) binding 4, a standalone 16-byte
|
|
13
|
+
* uniform written only by `update()` (on `Renderer.setOverlayTheme`), never
|
|
14
|
+
* per-frame — unlike `RenderPipeline`'s `environmentBuffer`, which IS
|
|
15
|
+
* rewritten every frame from `RenderOptions.environment`.
|
|
16
|
+
*/
|
|
17
|
+
export class SelectionColorUniform {
|
|
18
|
+
buffer;
|
|
19
|
+
device;
|
|
20
|
+
constructor(device) {
|
|
21
|
+
this.device = device;
|
|
22
|
+
this.buffer = device.createBuffer({
|
|
23
|
+
label: 'selection-color-uniform',
|
|
24
|
+
size: 16, // vec4<f32>
|
|
25
|
+
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
26
|
+
});
|
|
27
|
+
// Seed with the historic hardcoded selection blue, linear-light decoded
|
|
28
|
+
// (see `DEFAULT_OVERLAY_THEME.selection`) so a caller that never calls
|
|
29
|
+
// `update()` sees no visual change.
|
|
30
|
+
device.queue.writeBuffer(this.buffer, 0, new Float32Array(DEFAULT_OVERLAY_THEME.selection));
|
|
31
|
+
}
|
|
32
|
+
/** Write the selection tint. 16 bytes; called only from `Renderer.setOverlayTheme`. */
|
|
33
|
+
update(color) {
|
|
34
|
+
this.device.queue.writeBuffer(this.buffer, 0, new Float32Array(color));
|
|
35
|
+
}
|
|
36
|
+
destroy() {
|
|
37
|
+
this.buffer.destroy();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Applies an `OverlayTheme` to the section-plane preview, the section-2D
|
|
42
|
+
* overlay (line/section-cut) renderers and the focused clash's overlap marks,
|
|
43
|
+
* and remembers the last theme set so a pre-init `setTheme` call — or a later
|
|
44
|
+
* re-init after device loss — still lands once those GPU objects exist.
|
|
45
|
+
*
|
|
46
|
+
* The clash box / contact lines and the clash solid take `clashOverlap` when
|
|
47
|
+
* their caller omits a colour (#5490), and keep following it: a theme change
|
|
48
|
+
* while a clash is focused recolours the marks in place instead of leaving the
|
|
49
|
+
* previous theme's tint baked into them.
|
|
50
|
+
*/
|
|
51
|
+
export class OverlayThemeApplier {
|
|
52
|
+
theme = DEFAULT_OVERLAY_THEME;
|
|
53
|
+
clashLinesFollowTheme = false;
|
|
54
|
+
themedClashSolid = null;
|
|
55
|
+
get current() {
|
|
56
|
+
return this.theme;
|
|
57
|
+
}
|
|
58
|
+
/** Set a new theme and apply it to whichever renderers already exist (any may be null pre-init). */
|
|
59
|
+
set(theme, sectionPlaneRenderer, section2DOverlayRenderer, clashSolidPipeline = null) {
|
|
60
|
+
this.theme = theme;
|
|
61
|
+
section2DOverlayRenderer?.setOverlayLineColor(theme.overlayLine);
|
|
62
|
+
sectionPlaneRenderer?.setPlaneColor(theme.sectionPlane);
|
|
63
|
+
if (this.clashLinesFollowTheme)
|
|
64
|
+
section2DOverlayRenderer?.setClashBoxLineColor(theme.clashOverlap);
|
|
65
|
+
if (this.themedClashSolid)
|
|
66
|
+
clashSolidPipeline?.upload(this.clashSolid(this.themedClashSolid));
|
|
67
|
+
}
|
|
68
|
+
/** Re-apply the current theme to freshly (re)created renderers, e.g. from `init()`. */
|
|
69
|
+
reapply(sectionPlaneRenderer, section2DOverlayRenderer) {
|
|
70
|
+
section2DOverlayRenderer.setOverlayLineColor(this.theme.overlayLine);
|
|
71
|
+
sectionPlaneRenderer.setPlaneColor(this.theme.sectionPlane);
|
|
72
|
+
if (this.clashLinesFollowTheme)
|
|
73
|
+
section2DOverlayRenderer.setClashBoxLineColor(this.theme.clashOverlap);
|
|
74
|
+
}
|
|
75
|
+
/** The clash box / contact-line colour: `color` when given, else the theme's `clashOverlap`, followed from now on. */
|
|
76
|
+
clashLineColor(color) {
|
|
77
|
+
this.clashLinesFollowTheme = color === undefined;
|
|
78
|
+
return color ?? this.theme.clashOverlap;
|
|
79
|
+
}
|
|
80
|
+
/** The clash solid to upload: `color` when given, else the theme's `clashOverlap`, followed from now on. */
|
|
81
|
+
clashSolid(input) {
|
|
82
|
+
this.themedClashSolid = input && input.color === undefined ? input : null;
|
|
83
|
+
if (!input)
|
|
84
|
+
return null;
|
|
85
|
+
const [r, g, b, a] = input.color ?? this.theme.clashOverlap;
|
|
86
|
+
return { ...input, color: [r, g, b, a] };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=overlay-theme-uniforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-theme-uniforms.js","sourceRoot":"","sources":["../src/overlay-theme-uniforms.ts"],"names":[],"mappings":"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"}
|