@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.
Files changed (307) hide show
  1. package/dist/camera-projection.d.ts +2 -0
  2. package/dist/camera-projection.d.ts.map +1 -1
  3. package/dist/camera-projection.js +46 -0
  4. package/dist/camera-projection.js.map +1 -1
  5. package/dist/chunk-grid.d.ts +21 -0
  6. package/dist/chunk-grid.d.ts.map +1 -1
  7. package/dist/chunk-grid.js +25 -7
  8. package/dist/chunk-grid.js.map +1 -1
  9. package/dist/clash-solid-pipeline.d.ts.map +1 -1
  10. package/dist/clash-solid-pipeline.js +4 -2
  11. package/dist/clash-solid-pipeline.js.map +1 -1
  12. package/dist/deviation/deviation-computer.d.ts +4 -0
  13. package/dist/deviation/deviation-computer.d.ts.map +1 -1
  14. package/dist/deviation/deviation-computer.js +20 -0
  15. package/dist/deviation/deviation-computer.js.map +1 -1
  16. package/dist/deviation/deviation-readback.d.ts +18 -0
  17. package/dist/deviation/deviation-readback.d.ts.map +1 -0
  18. package/dist/deviation/deviation-readback.js +67 -0
  19. package/dist/deviation/deviation-readback.js.map +1 -0
  20. package/dist/edge-params.d.ts +43 -0
  21. package/dist/edge-params.d.ts.map +1 -0
  22. package/dist/edge-params.js +63 -0
  23. package/dist/edge-params.js.map +1 -0
  24. package/dist/edge-pass.d.ts +54 -0
  25. package/dist/edge-pass.d.ts.map +1 -0
  26. package/dist/edge-pass.js +185 -0
  27. package/dist/edge-pass.js.map +1 -0
  28. package/dist/entity-color-table.d.ts +140 -0
  29. package/dist/entity-color-table.d.ts.map +1 -0
  30. package/dist/entity-color-table.js +238 -0
  31. package/dist/entity-color-table.js.map +1 -0
  32. package/dist/gpu-upload-guard.d.ts +1 -1
  33. package/dist/gpu-upload-guard.js +1 -1
  34. package/dist/hover-mesh-cache.d.ts +29 -0
  35. package/dist/hover-mesh-cache.d.ts.map +1 -0
  36. package/dist/hover-mesh-cache.js +31 -0
  37. package/dist/hover-mesh-cache.js.map +1 -0
  38. package/dist/index.d.ts +43 -14
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +196 -189
  41. package/dist/index.js.map +1 -1
  42. package/dist/individual-mesh-upload.d.ts +24 -0
  43. package/dist/individual-mesh-upload.d.ts.map +1 -0
  44. package/dist/individual-mesh-upload.js +85 -0
  45. package/dist/individual-mesh-upload.js.map +1 -0
  46. package/dist/instanced-render.d.ts +22 -12
  47. package/dist/instanced-render.d.ts.map +1 -1
  48. package/dist/instanced-render.js +39 -27
  49. package/dist/instanced-render.js.map +1 -1
  50. package/dist/instanced-rte.d.ts +68 -7
  51. package/dist/instanced-rte.d.ts.map +1 -1
  52. package/dist/instanced-rte.js +98 -17
  53. package/dist/instanced-rte.js.map +1 -1
  54. package/dist/instanced-vertex-layout.d.ts +26 -0
  55. package/dist/instanced-vertex-layout.d.ts.map +1 -0
  56. package/dist/instanced-vertex-layout.js +61 -0
  57. package/dist/instanced-vertex-layout.js.map +1 -0
  58. package/dist/mesh-material.d.ts +26 -0
  59. package/dist/mesh-material.d.ts.map +1 -0
  60. package/dist/mesh-material.js +52 -0
  61. package/dist/mesh-material.js.map +1 -0
  62. package/dist/mesh-rte-uniforms.d.ts +5 -2
  63. package/dist/mesh-rte-uniforms.d.ts.map +1 -1
  64. package/dist/mesh-rte-uniforms.js +5 -2
  65. package/dist/mesh-rte-uniforms.js.map +1 -1
  66. package/dist/model-translation.d.ts.map +1 -1
  67. package/dist/model-translation.js +0 -7
  68. package/dist/model-translation.js.map +1 -1
  69. package/dist/outline-params.d.ts +45 -0
  70. package/dist/outline-params.d.ts.map +1 -0
  71. package/dist/outline-params.js +54 -0
  72. package/dist/outline-params.js.map +1 -0
  73. package/dist/overlay-routing.d.ts +8 -8
  74. package/dist/overlay-routing.js +2 -2
  75. package/dist/overlay-routing.js.map +1 -1
  76. package/dist/overlay-theme-uniforms.d.ts +54 -0
  77. package/dist/overlay-theme-uniforms.d.ts.map +1 -0
  78. package/dist/overlay-theme-uniforms.js +89 -0
  79. package/dist/overlay-theme-uniforms.js.map +1 -0
  80. package/dist/overlay-theme.d.ts +79 -0
  81. package/dist/overlay-theme.d.ts.map +1 -0
  82. package/dist/overlay-theme.js +24 -0
  83. package/dist/overlay-theme.js.map +1 -0
  84. package/dist/partial-batch-requests.d.ts +2 -2
  85. package/dist/pick-mesh-budget.d.ts +28 -0
  86. package/dist/pick-mesh-budget.d.ts.map +1 -0
  87. package/dist/pick-mesh-budget.js +74 -0
  88. package/dist/pick-mesh-budget.js.map +1 -0
  89. package/dist/picker-rte-uniforms.d.ts +7 -1
  90. package/dist/picker-rte-uniforms.d.ts.map +1 -1
  91. package/dist/picker-rte-uniforms.js +9 -1
  92. package/dist/picker-rte-uniforms.js.map +1 -1
  93. package/dist/picker.d.ts.map +1 -1
  94. package/dist/picker.js +15 -28
  95. package/dist/picker.js.map +1 -1
  96. package/dist/picking-manager.d.ts.map +1 -1
  97. package/dist/picking-manager.js +4 -47
  98. package/dist/picking-manager.js.map +1 -1
  99. package/dist/pipeline.d.ts +9 -1
  100. package/dist/pipeline.d.ts.map +1 -1
  101. package/dist/pipeline.js +47 -70
  102. package/dist/pipeline.js.map +1 -1
  103. package/dist/point-picker.d.ts.map +1 -1
  104. package/dist/point-picker.js +7 -2
  105. package/dist/point-picker.js.map +1 -1
  106. package/dist/pointcloud/point-cloud-node.js +1 -1
  107. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  108. package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
  109. package/dist/pointcloud/point-cloud-renderer.js +3 -1
  110. package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
  111. package/dist/pointcloud/point-cloud-uniforms.d.ts +5 -1
  112. package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
  113. package/dist/pointcloud/point-cloud-uniforms.js +7 -1
  114. package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
  115. package/dist/post-pass-chain.d.ts +15 -2
  116. package/dist/post-pass-chain.d.ts.map +1 -1
  117. package/dist/post-pass-chain.js +49 -14
  118. package/dist/post-pass-chain.js.map +1 -1
  119. package/dist/raycast-engine.d.ts +5 -1
  120. package/dist/raycast-engine.d.ts.map +1 -1
  121. package/dist/raycast-engine.js +20 -8
  122. package/dist/raycast-engine.js.map +1 -1
  123. package/dist/raycast-point-cloud-query.d.ts +2 -0
  124. package/dist/raycast-point-cloud-query.d.ts.map +1 -1
  125. package/dist/raycast-point-cloud-query.js +7 -0
  126. package/dist/raycast-point-cloud-query.js.map +1 -1
  127. package/dist/raycast-source-curve-query.d.ts +13 -0
  128. package/dist/raycast-source-curve-query.d.ts.map +1 -0
  129. package/dist/raycast-source-curve-query.js +17 -0
  130. package/dist/raycast-source-curve-query.js.map +1 -0
  131. package/dist/reference-image-pipeline.d.ts.map +1 -1
  132. package/dist/reference-image-pipeline.js +4 -2
  133. package/dist/reference-image-pipeline.js.map +1 -1
  134. package/dist/relative-to-eye-abi.d.ts +36 -0
  135. package/dist/relative-to-eye-abi.d.ts.map +1 -0
  136. package/dist/relative-to-eye-abi.js +72 -0
  137. package/dist/relative-to-eye-abi.js.map +1 -0
  138. package/dist/relative-to-eye.d.ts +15 -35
  139. package/dist/relative-to-eye.d.ts.map +1 -1
  140. package/dist/relative-to-eye.js +46 -74
  141. package/dist/relative-to-eye.js.map +1 -1
  142. package/dist/render-stats.d.ts +5 -1
  143. package/dist/render-stats.d.ts.map +1 -1
  144. package/dist/render-stats.js +1 -1
  145. package/dist/render-stats.js.map +1 -1
  146. package/dist/renderer-overlays.d.ts +8 -7
  147. package/dist/renderer-overlays.d.ts.map +1 -1
  148. package/dist/renderer-overlays.js +14 -16
  149. package/dist/renderer-overlays.js.map +1 -1
  150. package/dist/scene-batch-rebuild.d.ts +1 -2
  151. package/dist/scene-batch-rebuild.d.ts.map +1 -1
  152. package/dist/scene-batch-rebuild.js +4 -8
  153. package/dist/scene-batch-rebuild.js.map +1 -1
  154. package/dist/scene-batch-upload.d.ts.map +1 -1
  155. package/dist/scene-batch-upload.js +7 -3
  156. package/dist/scene-batch-upload.js.map +1 -1
  157. package/dist/scene-contents.d.ts +1 -1
  158. package/dist/scene-contents.d.ts.map +1 -1
  159. package/dist/scene-derived-batches.d.ts +19 -64
  160. package/dist/scene-derived-batches.d.ts.map +1 -1
  161. package/dist/scene-derived-batches.js +16 -51
  162. package/dist/scene-derived-batches.js.map +1 -1
  163. package/dist/scene-device-recovery.d.ts +3 -3
  164. package/dist/scene-device-recovery.d.ts.map +1 -1
  165. package/dist/scene-device-recovery.js +12 -9
  166. package/dist/scene-device-recovery.js.map +1 -1
  167. package/dist/scene-geometry.d.ts +6 -6
  168. package/dist/scene-geometry.d.ts.map +1 -1
  169. package/dist/scene-geometry.js +8 -9
  170. package/dist/scene-geometry.js.map +1 -1
  171. package/dist/scene-instance-bounds.d.ts +1 -1
  172. package/dist/scene-instance-bounds.d.ts.map +1 -1
  173. package/dist/scene-instance-bounds.js +4 -16
  174. package/dist/scene-instance-bounds.js.map +1 -1
  175. package/dist/scene-instance-materialization.d.ts.map +1 -1
  176. package/dist/scene-instance-materialization.js +4 -4
  177. package/dist/scene-instance-materialization.js.map +1 -1
  178. package/dist/scene-instance-translation.d.ts +6 -10
  179. package/dist/scene-instance-translation.d.ts.map +1 -1
  180. package/dist/scene-instance-translation.js +9 -31
  181. package/dist/scene-instance-translation.js.map +1 -1
  182. package/dist/scene-instance-types.d.ts +11 -2
  183. package/dist/scene-instance-types.d.ts.map +1 -1
  184. package/dist/scene-instance-types.js +7 -1
  185. package/dist/scene-instance-types.js.map +1 -1
  186. package/dist/scene-model-translation.d.ts +1 -2
  187. package/dist/scene-model-translation.d.ts.map +1 -1
  188. package/dist/scene-model-translation.js +4 -3
  189. package/dist/scene-model-translation.js.map +1 -1
  190. package/dist/scene.d.ts +44 -30
  191. package/dist/scene.d.ts.map +1 -1
  192. package/dist/scene.js +121 -129
  193. package/dist/scene.js.map +1 -1
  194. package/dist/section-2d-line-buffer.d.ts +2 -2
  195. package/dist/section-2d-line-buffer.d.ts.map +1 -1
  196. package/dist/section-2d-line-buffer.js +10 -11
  197. package/dist/section-2d-line-buffer.js.map +1 -1
  198. package/dist/section-2d-overlay.d.ts +6 -4
  199. package/dist/section-2d-overlay.d.ts.map +1 -1
  200. package/dist/section-2d-overlay.js +45 -21
  201. package/dist/section-2d-overlay.js.map +1 -1
  202. package/dist/section-2d-types.d.ts +1 -1
  203. package/dist/section-2d-types.d.ts.map +1 -1
  204. package/dist/section-2d-types.js +1 -1
  205. package/dist/section-2d-types.js.map +1 -1
  206. package/dist/section-plane.d.ts +3 -0
  207. package/dist/section-plane.d.ts.map +1 -1
  208. package/dist/section-plane.js +18 -25
  209. package/dist/section-plane.js.map +1 -1
  210. package/dist/selection-mask-pass.d.ts +85 -0
  211. package/dist/selection-mask-pass.d.ts.map +1 -0
  212. package/dist/selection-mask-pass.js +170 -0
  213. package/dist/selection-mask-pass.js.map +1 -0
  214. package/dist/selection-mask-pipelines.d.ts +57 -0
  215. package/dist/selection-mask-pipelines.d.ts.map +1 -0
  216. package/dist/selection-mask-pipelines.js +150 -0
  217. package/dist/selection-mask-pipelines.js.map +1 -0
  218. package/dist/selection-outline-frame.d.ts +47 -0
  219. package/dist/selection-outline-frame.d.ts.map +1 -0
  220. package/dist/selection-outline-frame.js +122 -0
  221. package/dist/selection-outline-frame.js.map +1 -0
  222. package/dist/shaders/color-transfer.wgsl.d.ts +5 -3
  223. package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -1
  224. package/dist/shaders/color-transfer.wgsl.js +5 -3
  225. package/dist/shaders/color-transfer.wgsl.js.map +1 -1
  226. package/dist/shaders/depth-reconstruct.wgsl.d.ts +7 -2
  227. package/dist/shaders/depth-reconstruct.wgsl.d.ts.map +1 -1
  228. package/dist/shaders/depth-reconstruct.wgsl.js +8 -3
  229. package/dist/shaders/depth-reconstruct.wgsl.js.map +1 -1
  230. package/dist/shaders/edges.wgsl.d.ts +20 -0
  231. package/dist/shaders/edges.wgsl.d.ts.map +1 -0
  232. package/dist/shaders/edges.wgsl.js +257 -0
  233. package/dist/shaders/edges.wgsl.js.map +1 -0
  234. package/dist/shaders/entity-color-table.wgsl.d.ts +2 -0
  235. package/dist/shaders/entity-color-table.wgsl.d.ts.map +1 -0
  236. package/dist/shaders/entity-color-table.wgsl.js +85 -0
  237. package/dist/shaders/entity-color-table.wgsl.js.map +1 -0
  238. package/dist/shaders/main.wgsl.d.ts +1 -1
  239. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  240. package/dist/shaders/main.wgsl.js +107 -171
  241. package/dist/shaders/main.wgsl.js.map +1 -1
  242. package/dist/shaders/mesh-uniforms.wgsl.d.ts +2 -0
  243. package/dist/shaders/mesh-uniforms.wgsl.d.ts.map +1 -0
  244. package/dist/shaders/mesh-uniforms.wgsl.js +53 -0
  245. package/dist/shaders/mesh-uniforms.wgsl.js.map +1 -0
  246. package/dist/shaders/section-2d-overlay.wgsl.d.ts +1 -0
  247. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
  248. package/dist/shaders/section-2d-overlay.wgsl.js +3 -2
  249. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
  250. package/dist/shaders/selection-mask.wgsl.d.ts +16 -0
  251. package/dist/shaders/selection-mask.wgsl.d.ts.map +1 -0
  252. package/dist/shaders/selection-mask.wgsl.js +138 -0
  253. package/dist/shaders/selection-mask.wgsl.js.map +1 -0
  254. package/dist/shaders/shadow.wgsl.d.ts +1 -1
  255. package/dist/shaders/shadow.wgsl.d.ts.map +1 -1
  256. package/dist/shaders/shadow.wgsl.js +3 -3
  257. package/dist/shaders/specular.wgsl.d.ts +34 -0
  258. package/dist/shaders/specular.wgsl.d.ts.map +1 -0
  259. package/dist/shaders/specular.wgsl.js +134 -0
  260. package/dist/shaders/specular.wgsl.js.map +1 -0
  261. package/dist/shadow-occluders.d.ts.map +1 -1
  262. package/dist/shadow-occluders.js +1 -0
  263. package/dist/shadow-occluders.js.map +1 -1
  264. package/dist/shadow-pass.d.ts +0 -1
  265. package/dist/shadow-pass.d.ts.map +1 -1
  266. package/dist/shadow-pass.js +26 -32
  267. package/dist/shadow-pass.js.map +1 -1
  268. package/dist/shadow-types.d.ts +3 -0
  269. package/dist/shadow-types.d.ts.map +1 -1
  270. package/dist/shadow-types.js.map +1 -1
  271. package/dist/snap-detector.d.ts +5 -0
  272. package/dist/snap-detector.d.ts.map +1 -1
  273. package/dist/snap-detector.js.map +1 -1
  274. package/dist/source-curve-clipping.d.ts +7 -0
  275. package/dist/source-curve-clipping.d.ts.map +1 -0
  276. package/dist/source-curve-clipping.js +165 -0
  277. package/dist/source-curve-clipping.js.map +1 -0
  278. package/dist/source-curve-snap.d.ts +49 -0
  279. package/dist/source-curve-snap.d.ts.map +1 -0
  280. package/dist/source-curve-snap.js +197 -0
  281. package/dist/source-curve-snap.js.map +1 -0
  282. package/dist/symbolic-overlay-pipelines.d.ts +1 -1
  283. package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
  284. package/dist/symbolic-overlay-pipelines.js +13 -22
  285. package/dist/symbolic-overlay-pipelines.js.map +1 -1
  286. package/dist/symbolic-text-rte.d.ts +16 -0
  287. package/dist/symbolic-text-rte.d.ts.map +1 -0
  288. package/dist/symbolic-text-rte.js +37 -0
  289. package/dist/symbolic-text-rte.js.map +1 -0
  290. package/dist/textured-vertices.d.ts.map +1 -1
  291. package/dist/textured-vertices.js +2 -3
  292. package/dist/textured-vertices.js.map +1 -1
  293. package/dist/types.d.ts +10 -0
  294. package/dist/types.d.ts.map +1 -1
  295. package/dist/visual-enhancement.d.ts +10 -7
  296. package/dist/visual-enhancement.d.ts.map +1 -1
  297. package/dist/visual-enhancement.js +9 -8
  298. package/dist/visual-enhancement.js.map +1 -1
  299. package/dist/xray-alpha.d.ts +7 -3
  300. package/dist/xray-alpha.d.ts.map +1 -1
  301. package/dist/xray-alpha.js +11 -7
  302. package/dist/xray-alpha.js.map +1 -1
  303. package/package.json +4 -4
  304. package/dist/post-processor.d.ts +0 -46
  305. package/dist/post-processor.d.ts.map +0 -1
  306. package/dist/post-processor.js +0 -295
  307. 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 = 92;
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 V2 instance anchors. */
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;;;;;;;;;;;CAWtB,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,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAKtF"}
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 = 92;
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 V2 instance anchors. */
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;CACX,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,yEAAyE;AACzE,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
+ {"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":"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"}
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":"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"}
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 drawn by a second "overlay paint" pass
5
- * whose pipeline uses `depthCompare: 'equal'` so it only paints where the
6
- * base draw already wrote depth. The transparent pipeline runs with
7
- * `depthWriteEnabled: false`, so a colour override on an entity whose base
8
- * draw is transparent (IfcSpace, IfcOpeningElement, glass, …) silently
9
- * fails — the equality test never matches.
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 so depth gets written and the overlay paint
13
- * succeeds. To avoid turning non-overridden batchmates opaque, batches
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.
@@ -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
- // so the overlay paint (depthCompare 'equal') has matching depth.
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,qEAAqE;IACrE,kEAAkE;IAClE,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"}
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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"}