@ifc-lite/renderer 3.2.0 → 5.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 (399) hide show
  1. package/dist/aabb-edges.d.ts +10 -0
  2. package/dist/aabb-edges.d.ts.map +1 -1
  3. package/dist/aabb-edges.js +13 -0
  4. package/dist/aabb-edges.js.map +1 -1
  5. package/dist/ao-params.d.ts +85 -0
  6. package/dist/ao-params.d.ts.map +1 -0
  7. package/dist/ao-params.js +109 -0
  8. package/dist/ao-params.js.map +1 -0
  9. package/dist/ao-pass.d.ts +47 -0
  10. package/dist/ao-pass.d.ts.map +1 -0
  11. package/dist/ao-pass.js +157 -0
  12. package/dist/ao-pass.js.map +1 -0
  13. package/dist/camera-matrices.d.ts +3 -0
  14. package/dist/camera-matrices.d.ts.map +1 -1
  15. package/dist/camera-matrices.js +12 -1
  16. package/dist/camera-matrices.js.map +1 -1
  17. package/dist/camera-orientation.d.ts +62 -0
  18. package/dist/camera-orientation.d.ts.map +1 -0
  19. package/dist/camera-orientation.js +155 -0
  20. package/dist/camera-orientation.js.map +1 -0
  21. package/dist/camera-projection.d.ts +3 -1
  22. package/dist/camera-projection.d.ts.map +1 -1
  23. package/dist/camera-projection.js +26 -20
  24. package/dist/camera-projection.js.map +1 -1
  25. package/dist/camera-surface-zoom.d.ts +32 -0
  26. package/dist/camera-surface-zoom.d.ts.map +1 -0
  27. package/dist/camera-surface-zoom.js +37 -0
  28. package/dist/camera-surface-zoom.js.map +1 -0
  29. package/dist/camera.d.ts +32 -61
  30. package/dist/camera.d.ts.map +1 -1
  31. package/dist/camera.js +71 -167
  32. package/dist/camera.js.map +1 -1
  33. package/dist/clash-solid-pipeline.d.ts +9 -3
  34. package/dist/clash-solid-pipeline.d.ts.map +1 -1
  35. package/dist/clash-solid-pipeline.js +31 -8
  36. package/dist/clash-solid-pipeline.js.map +1 -1
  37. package/dist/constants.d.ts +1 -1
  38. package/dist/constants.d.ts.map +1 -1
  39. package/dist/constants.js +4 -3
  40. package/dist/constants.js.map +1 -1
  41. package/dist/depth-reconstruct.d.ts +43 -0
  42. package/dist/depth-reconstruct.d.ts.map +1 -0
  43. package/dist/depth-reconstruct.js +35 -0
  44. package/dist/depth-reconstruct.js.map +1 -0
  45. package/dist/device.js +1 -1
  46. package/dist/device.js.map +1 -1
  47. package/dist/edge-params.d.ts +43 -0
  48. package/dist/edge-params.d.ts.map +1 -0
  49. package/dist/edge-params.js +63 -0
  50. package/dist/edge-params.js.map +1 -0
  51. package/dist/edge-pass.d.ts +38 -0
  52. package/dist/edge-pass.d.ts.map +1 -0
  53. package/dist/edge-pass.js +111 -0
  54. package/dist/edge-pass.js.map +1 -0
  55. package/dist/environment.d.ts +26 -15
  56. package/dist/environment.d.ts.map +1 -1
  57. package/dist/environment.js +24 -13
  58. package/dist/environment.js.map +1 -1
  59. package/dist/federation-registry.d.ts +16 -0
  60. package/dist/federation-registry.d.ts.map +1 -1
  61. package/dist/federation-registry.js +80 -9
  62. package/dist/federation-registry.js.map +1 -1
  63. package/dist/gpu-static-upload.d.ts +39 -0
  64. package/dist/gpu-static-upload.d.ts.map +1 -0
  65. package/dist/gpu-static-upload.js +70 -0
  66. package/dist/gpu-static-upload.js.map +1 -0
  67. package/dist/gpu-upload-guard.d.ts +12 -23
  68. package/dist/gpu-upload-guard.d.ts.map +1 -1
  69. package/dist/gpu-upload-guard.js +12 -26
  70. package/dist/gpu-upload-guard.js.map +1 -1
  71. package/dist/index.d.ts +58 -35
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +255 -284
  74. package/dist/index.js.map +1 -1
  75. package/dist/instanced-render.d.ts +25 -5
  76. package/dist/instanced-render.d.ts.map +1 -1
  77. package/dist/instanced-render.js +50 -13
  78. package/dist/instanced-render.js.map +1 -1
  79. package/dist/instanced-rte.d.ts +17 -0
  80. package/dist/instanced-rte.d.ts.map +1 -0
  81. package/dist/instanced-rte.js +32 -0
  82. package/dist/instanced-rte.js.map +1 -0
  83. package/dist/mesh-material.d.ts +26 -0
  84. package/dist/mesh-material.d.ts.map +1 -0
  85. package/dist/mesh-material.js +52 -0
  86. package/dist/mesh-material.js.map +1 -0
  87. package/dist/mesh-rte-uniforms.d.ts +47 -0
  88. package/dist/mesh-rte-uniforms.d.ts.map +1 -0
  89. package/dist/mesh-rte-uniforms.js +60 -0
  90. package/dist/mesh-rte-uniforms.js.map +1 -0
  91. package/dist/model-bounds-tracker.d.ts +7 -0
  92. package/dist/model-bounds-tracker.d.ts.map +1 -1
  93. package/dist/model-bounds-tracker.js +16 -5
  94. package/dist/model-bounds-tracker.js.map +1 -1
  95. package/dist/model-translation.d.ts +1 -1
  96. package/dist/model-translation.d.ts.map +1 -1
  97. package/dist/model-translation.js +50 -2
  98. package/dist/model-translation.js.map +1 -1
  99. package/dist/overlay-theme-uniforms.d.ts +54 -0
  100. package/dist/overlay-theme-uniforms.d.ts.map +1 -0
  101. package/dist/overlay-theme-uniforms.js +89 -0
  102. package/dist/overlay-theme-uniforms.js.map +1 -0
  103. package/dist/overlay-theme.d.ts +73 -0
  104. package/dist/overlay-theme.d.ts.map +1 -0
  105. package/dist/overlay-theme.js +24 -0
  106. package/dist/overlay-theme.js.map +1 -0
  107. package/dist/pick-rte-snapshot.d.ts +7 -0
  108. package/dist/pick-rte-snapshot.d.ts.map +1 -0
  109. package/dist/pick-rte-snapshot.js +15 -0
  110. package/dist/pick-rte-snapshot.js.map +1 -0
  111. package/dist/pick-types.d.ts +17 -0
  112. package/dist/pick-types.d.ts.map +1 -0
  113. package/dist/pick-types.js +5 -0
  114. package/dist/pick-types.js.map +1 -0
  115. package/dist/pick-uniforms.d.ts +6 -0
  116. package/dist/pick-uniforms.d.ts.map +1 -1
  117. package/dist/pick-uniforms.js +22 -18
  118. package/dist/pick-uniforms.js.map +1 -1
  119. package/dist/pick-world-position.d.ts +18 -0
  120. package/dist/pick-world-position.d.ts.map +1 -0
  121. package/dist/pick-world-position.js +21 -0
  122. package/dist/pick-world-position.js.map +1 -0
  123. package/dist/picker-readbacks.d.ts +6 -0
  124. package/dist/picker-readbacks.d.ts.map +1 -0
  125. package/dist/picker-readbacks.js +20 -0
  126. package/dist/picker-readbacks.js.map +1 -0
  127. package/dist/picker-rte-uniforms.d.ts +6 -0
  128. package/dist/picker-rte-uniforms.d.ts.map +1 -0
  129. package/dist/picker-rte-uniforms.js +41 -0
  130. package/dist/picker-rte-uniforms.js.map +1 -0
  131. package/dist/picker.d.ts +6 -7
  132. package/dist/picker.d.ts.map +1 -1
  133. package/dist/picker.js +88 -115
  134. package/dist/picker.js.map +1 -1
  135. package/dist/picking-manager.d.ts +8 -0
  136. package/dist/picking-manager.d.ts.map +1 -1
  137. package/dist/picking-manager.js +46 -19
  138. package/dist/picking-manager.js.map +1 -1
  139. package/dist/pipeline.d.ts +3 -7
  140. package/dist/pipeline.d.ts.map +1 -1
  141. package/dist/pipeline.js +27 -31
  142. package/dist/pipeline.js.map +1 -1
  143. package/dist/point-picker.d.ts +5 -1
  144. package/dist/point-picker.d.ts.map +1 -1
  145. package/dist/point-picker.js +49 -9
  146. package/dist/point-picker.js.map +1 -1
  147. package/dist/pointcloud/point-cloud-handle-ids.d.ts +22 -0
  148. package/dist/pointcloud/point-cloud-handle-ids.d.ts.map +1 -0
  149. package/dist/pointcloud/point-cloud-handle-ids.js +31 -0
  150. package/dist/pointcloud/point-cloud-handle-ids.js.map +1 -0
  151. package/dist/pointcloud/point-cloud-node.d.ts +14 -6
  152. package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
  153. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  154. package/dist/pointcloud/point-cloud-pick-sources.d.ts +47 -0
  155. package/dist/pointcloud/point-cloud-pick-sources.d.ts.map +1 -0
  156. package/dist/pointcloud/point-cloud-pick-sources.js +32 -0
  157. package/dist/pointcloud/point-cloud-pick-sources.js.map +1 -0
  158. package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -1
  159. package/dist/pointcloud/point-cloud-placement.js +20 -5
  160. package/dist/pointcloud/point-cloud-placement.js.map +1 -1
  161. package/dist/pointcloud/point-cloud-ray-transform.d.ts +78 -4
  162. package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -1
  163. package/dist/pointcloud/point-cloud-ray-transform.js +31 -84
  164. package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -1
  165. package/dist/pointcloud/point-cloud-renderer.d.ts +21 -19
  166. package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
  167. package/dist/pointcloud/point-cloud-renderer.js +46 -52
  168. package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
  169. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts +44 -0
  170. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts.map +1 -0
  171. package/dist/pointcloud/point-cloud-stream-lifecycle.js +44 -0
  172. package/dist/pointcloud/point-cloud-stream-lifecycle.js.map +1 -0
  173. package/dist/pointcloud/point-cloud-uniforms.d.ts +5 -0
  174. package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
  175. package/dist/pointcloud/point-cloud-uniforms.js +55 -44
  176. package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
  177. package/dist/pointcloud/point-cloud-visibility.d.ts +10 -0
  178. package/dist/pointcloud/point-cloud-visibility.d.ts.map +1 -0
  179. package/dist/pointcloud/point-cloud-visibility.js +18 -0
  180. package/dist/pointcloud/point-cloud-visibility.js.map +1 -0
  181. package/dist/pointcloud/point-pipeline.d.ts +4 -9
  182. package/dist/pointcloud/point-pipeline.d.ts.map +1 -1
  183. package/dist/pointcloud/point-pipeline.js +4 -9
  184. package/dist/pointcloud/point-pipeline.js.map +1 -1
  185. package/dist/pointcloud/point-shader.wgsl.d.ts +1 -21
  186. package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -1
  187. package/dist/pointcloud/point-shader.wgsl.js +25 -5
  188. package/dist/pointcloud/point-shader.wgsl.js.map +1 -1
  189. package/dist/post-pass-chain.d.ts +38 -0
  190. package/dist/post-pass-chain.d.ts.map +1 -0
  191. package/dist/post-pass-chain.js +105 -0
  192. package/dist/post-pass-chain.js.map +1 -0
  193. package/dist/raycast-engine.d.ts +7 -5
  194. package/dist/raycast-engine.d.ts.map +1 -1
  195. package/dist/raycast-engine.js +17 -20
  196. package/dist/raycast-engine.js.map +1 -1
  197. package/dist/raycast-point-cloud-query.d.ts +1 -1
  198. package/dist/raycast-point-cloud-query.d.ts.map +1 -1
  199. package/dist/reference-image-pipeline.d.ts +1 -1
  200. package/dist/reference-image-pipeline.d.ts.map +1 -1
  201. package/dist/reference-image-pipeline.js +25 -7
  202. package/dist/reference-image-pipeline.js.map +1 -1
  203. package/dist/reference-images.d.ts +1 -1
  204. package/dist/reference-images.d.ts.map +1 -1
  205. package/dist/reference-images.js +13 -5
  206. package/dist/reference-images.js.map +1 -1
  207. package/dist/relative-to-eye.d.ts +146 -0
  208. package/dist/relative-to-eye.d.ts.map +1 -0
  209. package/dist/relative-to-eye.js +326 -0
  210. package/dist/relative-to-eye.js.map +1 -0
  211. package/dist/render-section-draw.d.ts +11 -0
  212. package/dist/render-section-draw.d.ts.map +1 -1
  213. package/dist/render-section-draw.js +6 -3
  214. package/dist/render-section-draw.js.map +1 -1
  215. package/dist/renderer-color-readback.d.ts +50 -0
  216. package/dist/renderer-color-readback.d.ts.map +1 -0
  217. package/dist/renderer-color-readback.js +145 -0
  218. package/dist/renderer-color-readback.js.map +1 -0
  219. package/dist/renderer-overlays.d.ts +20 -10
  220. package/dist/renderer-overlays.d.ts.map +1 -1
  221. package/dist/renderer-overlays.js +44 -34
  222. package/dist/renderer-overlays.js.map +1 -1
  223. package/dist/renderer-screenshot.d.ts +4 -0
  224. package/dist/renderer-screenshot.d.ts.map +1 -0
  225. package/dist/renderer-screenshot.js +17 -0
  226. package/dist/renderer-screenshot.js.map +1 -0
  227. package/dist/renderer-symbolic-overlays.d.ts +4 -2
  228. package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
  229. package/dist/renderer-symbolic-overlays.js +33 -13
  230. package/dist/renderer-symbolic-overlays.js.map +1 -1
  231. package/dist/renderer-viewport.d.ts +45 -0
  232. package/dist/renderer-viewport.d.ts.map +1 -1
  233. package/dist/renderer-viewport.js +44 -0
  234. package/dist/renderer-viewport.js.map +1 -1
  235. package/dist/rte-clip-space.d.ts +12 -0
  236. package/dist/rte-clip-space.d.ts.map +1 -0
  237. package/dist/rte-clip-space.js +22 -0
  238. package/dist/rte-clip-space.js.map +1 -0
  239. package/dist/rte-frustum.d.ts +24 -0
  240. package/dist/rte-frustum.d.ts.map +1 -0
  241. package/dist/rte-frustum.js +45 -0
  242. package/dist/rte-frustum.js.map +1 -0
  243. package/dist/scene-batch-upload.d.ts.map +1 -1
  244. package/dist/scene-batch-upload.js +14 -38
  245. package/dist/scene-batch-upload.js.map +1 -1
  246. package/dist/scene-device-recovery.d.ts.map +1 -1
  247. package/dist/scene-device-recovery.js +5 -9
  248. package/dist/scene-device-recovery.js.map +1 -1
  249. package/dist/scene-finalize-regroup.d.ts +54 -0
  250. package/dist/scene-finalize-regroup.d.ts.map +1 -0
  251. package/dist/scene-finalize-regroup.js +136 -0
  252. package/dist/scene-finalize-regroup.js.map +1 -0
  253. package/dist/scene-instance-bounds.d.ts +12 -0
  254. package/dist/scene-instance-bounds.d.ts.map +1 -0
  255. package/dist/scene-instance-bounds.js +48 -0
  256. package/dist/scene-instance-bounds.js.map +1 -0
  257. package/dist/scene-instance-materialization.d.ts +4 -1
  258. package/dist/scene-instance-materialization.d.ts.map +1 -1
  259. package/dist/scene-instance-materialization.js +21 -6
  260. package/dist/scene-instance-materialization.js.map +1 -1
  261. package/dist/scene-instance-translation.d.ts +17 -0
  262. package/dist/scene-instance-translation.d.ts.map +1 -0
  263. package/dist/scene-instance-translation.js +50 -0
  264. package/dist/scene-instance-translation.js.map +1 -0
  265. package/dist/scene-instance-types.d.ts +6 -0
  266. package/dist/scene-instance-types.d.ts.map +1 -1
  267. package/dist/scene-model-translation.d.ts +2 -0
  268. package/dist/scene-model-translation.d.ts.map +1 -1
  269. package/dist/scene-model-translation.js +1 -1
  270. package/dist/scene-model-translation.js.map +1 -1
  271. package/dist/scene-rect-select.d.ts +11 -1
  272. package/dist/scene-rect-select.d.ts.map +1 -1
  273. package/dist/scene-rect-select.js +7 -4
  274. package/dist/scene-rect-select.js.map +1 -1
  275. package/dist/scene.d.ts +27 -20
  276. package/dist/scene.d.ts.map +1 -1
  277. package/dist/scene.js +109 -238
  278. package/dist/scene.js.map +1 -1
  279. package/dist/section-2d-lift.d.ts +10 -2
  280. package/dist/section-2d-lift.d.ts.map +1 -1
  281. package/dist/section-2d-lift.js +14 -6
  282. package/dist/section-2d-lift.js.map +1 -1
  283. package/dist/section-2d-line-buffer.d.ts +12 -4
  284. package/dist/section-2d-line-buffer.d.ts.map +1 -1
  285. package/dist/section-2d-line-buffer.js +59 -33
  286. package/dist/section-2d-line-buffer.js.map +1 -1
  287. package/dist/section-2d-overlay.d.ts +18 -72
  288. package/dist/section-2d-overlay.d.ts.map +1 -1
  289. package/dist/section-2d-overlay.js +72 -103
  290. package/dist/section-2d-overlay.js.map +1 -1
  291. package/dist/section-2d-types.d.ts +38 -0
  292. package/dist/section-2d-types.d.ts.map +1 -0
  293. package/dist/section-2d-types.js +6 -0
  294. package/dist/section-2d-types.js.map +1 -0
  295. package/dist/section-cap-pipelines.d.ts +6 -0
  296. package/dist/section-cap-pipelines.d.ts.map +1 -0
  297. package/dist/section-cap-pipelines.js +87 -0
  298. package/dist/section-cap-pipelines.js.map +1 -0
  299. package/dist/section-plane-geometry.d.ts +24 -0
  300. package/dist/section-plane-geometry.d.ts.map +1 -0
  301. package/dist/section-plane-geometry.js +93 -0
  302. package/dist/section-plane-geometry.js.map +1 -0
  303. package/dist/section-plane.d.ts +26 -24
  304. package/dist/section-plane.d.ts.map +1 -1
  305. package/dist/section-plane.js +57 -182
  306. package/dist/section-plane.js.map +1 -1
  307. package/dist/shaders/ao.wgsl.d.ts +2 -0
  308. package/dist/shaders/ao.wgsl.d.ts.map +1 -0
  309. package/dist/shaders/ao.wgsl.js +234 -0
  310. package/dist/shaders/ao.wgsl.js.map +1 -0
  311. package/dist/shaders/color-transfer.wgsl.d.ts +28 -0
  312. package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -0
  313. package/dist/shaders/color-transfer.wgsl.js +55 -0
  314. package/dist/shaders/color-transfer.wgsl.js.map +1 -0
  315. package/dist/shaders/depth-reconstruct.wgsl.d.ts +16 -0
  316. package/dist/shaders/depth-reconstruct.wgsl.d.ts.map +1 -0
  317. package/dist/shaders/depth-reconstruct.wgsl.js +69 -0
  318. package/dist/shaders/depth-reconstruct.wgsl.js.map +1 -0
  319. package/dist/shaders/edges.wgsl.d.ts +2 -0
  320. package/dist/shaders/edges.wgsl.d.ts.map +1 -0
  321. package/dist/shaders/edges.wgsl.js +158 -0
  322. package/dist/shaders/edges.wgsl.js.map +1 -0
  323. package/dist/shaders/main-rte-shadow.wgsl.d.ts +4 -0
  324. package/dist/shaders/main-rte-shadow.wgsl.d.ts.map +1 -0
  325. package/dist/shaders/main-rte-shadow.wgsl.js +54 -0
  326. package/dist/shaders/main-rte-shadow.wgsl.js.map +1 -0
  327. package/dist/shaders/main.wgsl.d.ts +1 -6
  328. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  329. package/dist/shaders/main.wgsl.js +183 -228
  330. package/dist/shaders/main.wgsl.js.map +1 -1
  331. package/dist/shaders/relative-to-eye.wgsl.d.ts +12 -0
  332. package/dist/shaders/relative-to-eye.wgsl.d.ts.map +1 -0
  333. package/dist/shaders/relative-to-eye.wgsl.js +40 -0
  334. package/dist/shaders/relative-to-eye.wgsl.js.map +1 -0
  335. package/dist/shaders/section-2d-overlay.wgsl.d.ts +28 -12
  336. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
  337. package/dist/shaders/section-2d-overlay.wgsl.js +40 -13
  338. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
  339. package/dist/shaders/shadow.wgsl.d.ts +1 -1
  340. package/dist/shaders/shadow.wgsl.d.ts.map +1 -1
  341. package/dist/shaders/shadow.wgsl.js +25 -7
  342. package/dist/shaders/shadow.wgsl.js.map +1 -1
  343. package/dist/shaders/sky.wgsl.d.ts +1 -11
  344. package/dist/shaders/sky.wgsl.d.ts.map +1 -1
  345. package/dist/shaders/sky.wgsl.js +17 -19
  346. package/dist/shaders/sky.wgsl.js.map +1 -1
  347. package/dist/shaders/specular.wgsl.d.ts +34 -0
  348. package/dist/shaders/specular.wgsl.d.ts.map +1 -0
  349. package/dist/shaders/specular.wgsl.js +134 -0
  350. package/dist/shaders/specular.wgsl.js.map +1 -0
  351. package/dist/shaders/symbolic-overlay.wgsl.d.ts +2 -9
  352. package/dist/shaders/symbolic-overlay.wgsl.d.ts.map +1 -1
  353. package/dist/shaders/symbolic-overlay.wgsl.js +88 -17
  354. package/dist/shaders/symbolic-overlay.wgsl.js.map +1 -1
  355. package/dist/shaders/textured.wgsl.d.ts.map +1 -1
  356. package/dist/shaders/textured.wgsl.js +11 -9
  357. package/dist/shaders/textured.wgsl.js.map +1 -1
  358. package/dist/shadow-light-matrix.d.ts +7 -0
  359. package/dist/shadow-light-matrix.d.ts.map +1 -1
  360. package/dist/shadow-light-matrix.js +11 -0
  361. package/dist/shadow-light-matrix.js.map +1 -1
  362. package/dist/shadow-occluder-batches.d.ts +10 -0
  363. package/dist/shadow-occluder-batches.d.ts.map +1 -0
  364. package/dist/shadow-occluder-batches.js +39 -0
  365. package/dist/shadow-occluder-batches.js.map +1 -0
  366. package/dist/shadow-occluders.d.ts.map +1 -1
  367. package/dist/shadow-occluders.js +4 -0
  368. package/dist/shadow-occluders.js.map +1 -1
  369. package/dist/shadow-pass.d.ts +5 -51
  370. package/dist/shadow-pass.d.ts.map +1 -1
  371. package/dist/shadow-pass.js +49 -45
  372. package/dist/shadow-pass.js.map +1 -1
  373. package/dist/shadow-types.d.ts +39 -0
  374. package/dist/shadow-types.d.ts.map +1 -0
  375. package/dist/shadow-types.js +15 -0
  376. package/dist/shadow-types.js.map +1 -0
  377. package/dist/symbolic-overlay-geometry.d.ts +7 -0
  378. package/dist/symbolic-overlay-geometry.d.ts.map +1 -0
  379. package/dist/symbolic-overlay-geometry.js +43 -0
  380. package/dist/symbolic-overlay-geometry.js.map +1 -0
  381. package/dist/symbolic-overlay-pipelines.d.ts +24 -36
  382. package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
  383. package/dist/symbolic-overlay-pipelines.js +175 -182
  384. package/dist/symbolic-overlay-pipelines.js.map +1 -1
  385. package/dist/symbolic-text-atlas.d.ts +21 -0
  386. package/dist/symbolic-text-atlas.d.ts.map +1 -1
  387. package/dist/symbolic-text-atlas.js +29 -1
  388. package/dist/symbolic-text-atlas.js.map +1 -1
  389. package/dist/types.d.ts +20 -26
  390. package/dist/types.d.ts.map +1 -1
  391. package/dist/visual-enhancement.d.ts +30 -1
  392. package/dist/visual-enhancement.d.ts.map +1 -1
  393. package/dist/visual-enhancement.js +44 -12
  394. package/dist/visual-enhancement.js.map +1 -1
  395. package/package.json +3 -3
  396. package/dist/post-processor.d.ts +0 -60
  397. package/dist/post-processor.d.ts.map +0 -1
  398. package/dist/post-processor.js +0 -353
  399. package/dist/post-processor.js.map +0 -1
@@ -1,3 +1,24 @@
1
+ /**
2
+ * Atlas pixels of contrasting halo drawn around every glyph (#5388). Labels
3
+ * sit over model geometry as often as over the empty backdrop, so no single
4
+ * ink colour is legible on both; a halo is. The text pipeline widens each
5
+ * glyph quad (and its atlas UVs) by this margin on every side, and the
6
+ * fragment shader dilates the glyph coverage into it.
7
+ */
8
+ export declare const GLYPH_HALO_PX = 6;
9
+ /**
10
+ * A glyph's quad widened by {@link GLYPH_HALO_PX} on every side, in atlas px
11
+ * relative to the text anchor, with its atlas UVs widened to match. The shift
12
+ * is symmetric, so the glyph itself lands exactly where the unwidened quad
13
+ * put it; only the transparent margin the halo is drawn into is added.
14
+ */
15
+ export declare function haloGlyphQuad(glyph: GlyphInfo, px0: number, pyBottom: number, atlasSize: number): {
16
+ qx0: number;
17
+ qyBottom: number;
18
+ widthAtlas: number;
19
+ heightGlyphAtlas: number;
20
+ uvBounds: [number, number, number, number];
21
+ };
1
22
  /**
2
23
  * Per-glyph atlas record. UV coordinates are in [0..1] over the atlas; size /
3
24
  * advance / baseline are in canvas pixels (atlas reference frame). World-space
@@ -1 +1 @@
1
- {"version":3,"file":"symbolic-text-atlas.d.ts","sourceRoot":"","sources":["../src/symbolic-text-atlas.ts"],"names":[],"mappings":"AAkCA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAK;gBAER,IAAI,GAAE,iBAAsB;IA2BxC,oFAAoF;IACpF,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IA2C7C;;;;;;;;OAQG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAqBhF;AAED,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB"}
1
+ {"version":3,"file":"symbolic-text-atlas.d.ts","sourceRoot":"","sources":["../src/symbolic-text-atlas.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAM/B;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IACjG,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAC5E,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAUA;AAID;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAK;gBAER,IAAI,GAAE,iBAAsB;IA2BxC,oFAAoF;IACpF,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IA2C7C;;;;;;;;OAQG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAqBhF;AAED,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB"}
@@ -26,7 +26,35 @@
26
26
  */
27
27
  const DEFAULT_ATLAS_SIZE = 1024;
28
28
  const DEFAULT_GLYPH_PX = 48; // canvas pixels per glyph height
29
- const DEFAULT_PADDING = 2; // pixels of empty space around each glyph (prevents bleed)
29
+ /**
30
+ * Atlas pixels of contrasting halo drawn around every glyph (#5388). Labels
31
+ * sit over model geometry as often as over the empty backdrop, so no single
32
+ * ink colour is legible on both; a halo is. The text pipeline widens each
33
+ * glyph quad (and its atlas UVs) by this margin on every side, and the
34
+ * fragment shader dilates the glyph coverage into it.
35
+ */
36
+ export const GLYPH_HALO_PX = 6;
37
+ // Empty space between packed glyphs. Each glyph's halo margin reads GLYPH_HALO_PX
38
+ // into this gap from BOTH neighbours, plus 1 px each so linear filtering at the
39
+ // widened quad edge never picks up the next glyph.
40
+ const DEFAULT_PADDING = GLYPH_HALO_PX * 2 + 2;
41
+ /**
42
+ * A glyph's quad widened by {@link GLYPH_HALO_PX} on every side, in atlas px
43
+ * relative to the text anchor, with its atlas UVs widened to match. The shift
44
+ * is symmetric, so the glyph itself lands exactly where the unwidened quad
45
+ * put it; only the transparent margin the halo is drawn into is added.
46
+ */
47
+ export function haloGlyphQuad(glyph, px0, pyBottom, atlasSize) {
48
+ const halo = GLYPH_HALO_PX;
49
+ const uv = halo / atlasSize;
50
+ return {
51
+ qx0: px0 - halo,
52
+ qyBottom: pyBottom - halo,
53
+ widthAtlas: glyph.widthPx + 2 * halo,
54
+ heightGlyphAtlas: glyph.heightPx + 2 * halo,
55
+ uvBounds: [glyph.u0 - uv, glyph.v0 - uv, glyph.u1 + uv, glyph.v1 + uv],
56
+ };
57
+ }
30
58
  const DEFAULT_FONT_FAMILY = '"Inter", "Helvetica Neue", "Segoe UI", system-ui, -apple-system, sans-serif';
31
59
  export class SymbolicTextAtlas {
32
60
  canvas;
@@ -1 +1 @@
1
- {"version":3,"file":"symbolic-text-atlas.js","sourceRoot":"","sources":["../src/symbolic-text-atlas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbolic-text-atlas.js","sourceRoot":"","sources":["../src/symbolic-text-atlas.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -31,6 +31,10 @@ export interface Mesh {
31
31
  indexBuffer: GPUBuffer;
32
32
  indexCount: number;
33
33
  transform: Mat4;
34
+ /** Canonical f64-like translation used by the RTE mesh path. It is kept
35
+ * separate from the GPU f32 transform so hydrated selection meshes do not
36
+ * reintroduce national-grid rounding after their source batch was rebased. */
37
+ rteOrigin?: [number, number, number];
34
38
  color: [number, number, number, number];
35
39
  material?: Material;
36
40
  uniformBuffer?: GPUBuffer;
@@ -174,9 +178,22 @@ export interface VisualEnhancementOptions {
174
178
  enabled?: boolean;
175
179
  intensity?: number;
176
180
  };
181
+ /**
182
+ * Screen-space ambient occlusion (the option keeps its historical name).
183
+ * Darkens corners, junctions and contact areas from the depth buffer; the
184
+ * sky and background are never darkened. Paused while navigating on GPUs
185
+ * that miss frames (see {@link RenderOptions.isInteracting}).
186
+ */
177
187
  contactShading?: {
188
+ /** `'low'`: half-resolution AO, 12 taps. `'high'`: full resolution, 16 taps. Default `'off'`. */
178
189
  quality?: ContactShadingQuality;
190
+ /** Darkening strength, 0-1 (clamped). Default 0.8. */
179
191
  intensity?: number;
192
+ /**
193
+ * Occlusion radius in WORLD units (metres for IFC models), 0.05-10
194
+ * (clamped). Geometry farther than this from a point does not occlude it.
195
+ * Default 1.
196
+ */
180
197
  radius?: number;
181
198
  };
182
199
  separationLines?: {
@@ -190,8 +207,8 @@ export interface RenderOptions {
190
207
  clearColor?: [number, number, number, number];
191
208
  /**
192
209
  * Global lighting environment (sun direction/colour, hemisphere ambient,
193
- * exposure, procedural sky). Omitted/empty reproduces the legacy hardcoded
194
- * look exactly. See {@link import('./environment.js').LightingEnvironment}.
210
+ * exposure, procedural sky). Omitted/empty uses the default rig. See
211
+ * {@link import('./environment.js').LightingEnvironment}.
195
212
  */
196
213
  environment?: import('./environment.js').LightingEnvironment;
197
214
  /**
@@ -331,29 +348,6 @@ export interface RenderOptions {
331
348
  sunAngleDeg?: number;
332
349
  };
333
350
  }
334
- /**
335
- * Options for GPU picking/selection
336
- * Filters out hidden/invisible elements so users can select what's visible
337
- */
338
- export interface PickOptions {
339
- isStreaming?: boolean;
340
- hiddenIds?: Set<number>;
341
- isolatedIds?: Set<number> | null;
342
- }
343
- /**
344
- * Resolved clip state the GPU picker mirrors from the most recent render so that
345
- * section/crop-clipped geometry is unpickable, not just invisible. The renderer
346
- * stashes this each `render()` and feeds it to the picker; consumers don't build
347
- * it. Point clouds are clipped by the section plane only (matching the point
348
- * render); the crop box clips triangle meshes only, on render and on pick.
349
- */
350
- export interface PickClipState {
351
- sectionPlane?: {
352
- normal: [number, number, number];
353
- distance: number;
354
- flipped: boolean;
355
- } | null;
356
- clipBox?: ClipBox | null;
357
- }
351
+ export type { PickOptions, PickClipState } from './pick-types.js';
358
352
  export type { PickResult } from './pick-resolve.js';
359
353
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC1E;;;;gFAI4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;iCAE6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;2EAMuE;IACvE,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,aAAa,CAAC,EAAE,SAAS,CAAC;IAE1B,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC1E;;;gFAG4E;IAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;iFAE6E;IAC7E,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;4EAGwE;IACxE,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D;;;;wEAIoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,UAAU,GACV,OAAO,GACP,YAAY,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,qCAAqC;IACrC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,wBAAwB;IACxB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,OAAO;IACtB,+CAA+C;IAC/C,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,+CAA+C;IAC/C,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,qBAAqB,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,sBAAsB,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,kBAAkB,EAAE,mBAAmB,CAAC;IAC7D;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,mBAAmB,EAAE,YAAY,CAAC;IACxD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACnD;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAK5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,WAAW,CAAC,EAAE,OAAO,CAAC;IAOtB,aAAa,CAAC,EAAE,OAAO,CAAC;IAMxB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,wBAAwB,EAAE,uBAAuB,CAAC;IAC5E;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,GAAG,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAE5B,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAE/F,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAID,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type AoQuality } from './ao-params.js';
1
2
  import type { VisualEnhancementOptions, ContactShadingQuality, SeparationLinesQuality } from './types.js';
2
3
  export type ResolvedVisualEnhancement = {
3
4
  enabled: boolean;
@@ -7,20 +8,36 @@ export type ResolvedVisualEnhancement = {
7
8
  };
8
9
  contactShading: {
9
10
  quality: ContactShadingQuality;
11
+ /** [0, 1]. */
10
12
  intensity: number;
13
+ /** World units, within `AO_RADIUS_RANGE`. */
11
14
  radius: number;
12
15
  };
13
16
  separationLines: {
14
17
  enabled: boolean;
15
18
  quality: SeparationLinesQuality;
19
+ /** [0, 1]. */
16
20
  intensity: number;
21
+ /** Pixels, within `SEPARATION_RADIUS_RANGE_PX`. */
17
22
  radius: number;
18
23
  };
19
24
  };
25
+ /**
26
+ * Accepted `separationLines.radius`, in pixels: the tap distance the edge
27
+ * pass (#5385) offsets its cardinal and (at `high` quality) diagonal
28
+ * samples by. Widened from 1-2 to 1-3 when the pass gained diagonal taps and
29
+ * a normal-crease/silhouette test alongside the entity-id test, so `high`
30
+ * quality has room to space its 8 taps out from the 4-tap `low` default.
31
+ */
32
+ export declare const SEPARATION_RADIUS_RANGE_PX: {
33
+ readonly min: 1;
34
+ readonly max: 3;
35
+ };
20
36
  /**
21
37
  * Resolves per-frame `VisualEnhancementOptions` against the last-resolved
22
38
  * state, so an option omitted on one frame keeps whatever the previous frame
23
- * (or the default) set rather than reverting.
39
+ * (or the default) set rather than reverting. Numeric options are clamped to
40
+ * their documented ranges here, once, so every pass reads in-range values.
24
41
  *
25
42
  * Holds the resolved state itself because nothing outside `resolve()`
26
43
  * reads or writes it: `renderFrame` is the sole caller, and no diagnostics
@@ -30,4 +47,16 @@ export declare class VisualEnhancementResolver {
30
47
  private state;
31
48
  resolve(options?: VisualEnhancementOptions): ResolvedVisualEnhancement;
32
49
  }
50
+ /** Which post passes a frame runs. */
51
+ export interface LivePostEffects {
52
+ /** The quality to run ambient occlusion at, or null when it does not run. */
53
+ ambientOcclusion: AoQuality | null;
54
+ /** The edge pass (#5385): entity-id, normal-crease and silhouette lines. Option name stays `separationLines`. */
55
+ edges: boolean;
56
+ }
57
+ /**
58
+ * The post passes to run this frame: those the options ask for, while
59
+ * `effectsLive` (the interaction-effects governor's verdict) allows them.
60
+ */
61
+ export declare function livePostEffects(ve: ResolvedVisualEnhancement, effectsLive: boolean): LivePostEffects;
33
62
  //# sourceMappingURL=visual-enhancement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"visual-enhancement.d.ts","sourceRoot":"","sources":["../src/visual-enhancement.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE1G,MAAM,MAAM,yBAAyB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,cAAc,EAAE;QACZ,OAAO,EAAE,qBAAqB,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,eAAe,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,sBAAsB,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,yBAAyB;IAClC,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,yBAAyB;CAyBzE"}
1
+ {"version":3,"file":"visual-enhancement.d.ts","sourceRoot":"","sources":["../src/visual-enhancement.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE1G,MAAM,MAAM,yBAAyB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,cAAc,EAAE;QACZ,OAAO,EAAE,qBAAqB,CAAC;QAC/B,cAAc;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,6CAA6C;QAC7C,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,eAAe,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,sBAAsB,CAAC;QAChC,cAAc;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,mDAAmD;QACnD,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;CAA8B,CAAC;AAWtE;;;;;;;;;GASG;AACH,qBAAa,yBAAyB;IAClC,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,yBAAyB;CA+BzE;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC5B,6EAA6E;IAC7E,gBAAgB,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC,iHAAiH;IACjH,KAAK,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,yBAAyB,EAAE,WAAW,EAAE,OAAO,GAAG,eAAe,CAOpG"}
@@ -1,10 +1,29 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
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
+ import { AO_RADIUS_RANGE } from './ao-params.js';
5
+ /**
6
+ * Accepted `separationLines.radius`, in pixels: the tap distance the edge
7
+ * pass (#5385) offsets its cardinal and (at `high` quality) diagonal
8
+ * samples by. Widened from 1-2 to 1-3 when the pass gained diagonal taps and
9
+ * a normal-crease/silhouette test alongside the entity-id test, so `high`
10
+ * quality has room to space its 8 taps out from the 4-tap `low` default.
11
+ */
12
+ export const SEPARATION_RADIUS_RANGE_PX = { min: 1, max: 3 };
13
+ /**
14
+ * `value` clamped to [min, max]; a missing or non-finite value keeps
15
+ * `previous` (which is already in range).
16
+ */
17
+ function clampOr(value, previous, min, max) {
18
+ if (value === undefined || !Number.isFinite(value))
19
+ return previous;
20
+ return Math.min(max, Math.max(min, value));
21
+ }
4
22
  /**
5
23
  * Resolves per-frame `VisualEnhancementOptions` against the last-resolved
6
24
  * state, so an option omitted on one frame keeps whatever the previous frame
7
- * (or the default) set rather than reverting.
25
+ * (or the default) set rather than reverting. Numeric options are clamped to
26
+ * their documented ranges here, once, so every pass reads in-range values.
8
27
  *
9
28
  * Holds the resolved state itself because nothing outside `resolve()`
10
29
  * reads or writes it: `renderFrame` is the sole caller, and no diagnostics
@@ -14,33 +33,46 @@ export class VisualEnhancementResolver {
14
33
  state = {
15
34
  enabled: true,
16
35
  edgeContrast: { enabled: true, intensity: 1.0 },
17
- contactShading: { quality: 'off', intensity: 0.3, radius: 1.0 },
36
+ contactShading: { quality: 'off', intensity: 0.8, radius: 1.0 },
18
37
  separationLines: { enabled: true, quality: 'low', intensity: 0.5, radius: 1.0 },
19
38
  };
20
39
  resolve(options) {
21
40
  if (!options) {
22
41
  return this.state;
23
42
  }
43
+ const prev = this.state;
24
44
  const merged = {
25
- enabled: options.enabled ?? this.state.enabled,
45
+ enabled: options.enabled ?? prev.enabled,
26
46
  edgeContrast: {
27
- enabled: options.edgeContrast?.enabled ?? this.state.edgeContrast.enabled,
28
- intensity: options.edgeContrast?.intensity ?? this.state.edgeContrast.intensity,
47
+ enabled: options.edgeContrast?.enabled ?? prev.edgeContrast.enabled,
48
+ intensity: options.edgeContrast?.intensity ?? prev.edgeContrast.intensity,
29
49
  },
30
50
  contactShading: {
31
- quality: options.contactShading?.quality ?? this.state.contactShading.quality,
32
- intensity: options.contactShading?.intensity ?? this.state.contactShading.intensity,
33
- radius: options.contactShading?.radius ?? this.state.contactShading.radius,
51
+ quality: options.contactShading?.quality ?? prev.contactShading.quality,
52
+ intensity: clampOr(options.contactShading?.intensity, prev.contactShading.intensity, 0, 1),
53
+ radius: clampOr(options.contactShading?.radius, prev.contactShading.radius, AO_RADIUS_RANGE.min, AO_RADIUS_RANGE.max),
34
54
  },
35
55
  separationLines: {
36
- enabled: options.separationLines?.enabled ?? this.state.separationLines.enabled,
37
- quality: options.separationLines?.quality ?? this.state.separationLines.quality,
38
- intensity: options.separationLines?.intensity ?? this.state.separationLines.intensity,
39
- radius: options.separationLines?.radius ?? this.state.separationLines.radius,
56
+ enabled: options.separationLines?.enabled ?? prev.separationLines.enabled,
57
+ quality: options.separationLines?.quality ?? prev.separationLines.quality,
58
+ intensity: clampOr(options.separationLines?.intensity, prev.separationLines.intensity, 0, 1),
59
+ radius: clampOr(options.separationLines?.radius, prev.separationLines.radius, SEPARATION_RADIUS_RANGE_PX.min, SEPARATION_RADIUS_RANGE_PX.max),
40
60
  },
41
61
  };
42
62
  this.state = merged;
43
63
  return merged;
44
64
  }
45
65
  }
66
+ /**
67
+ * The post passes to run this frame: those the options ask for, while
68
+ * `effectsLive` (the interaction-effects governor's verdict) allows them.
69
+ */
70
+ export function livePostEffects(ve, effectsLive) {
71
+ const live = effectsLive && ve.enabled;
72
+ const aoQuality = ve.contactShading.quality;
73
+ return {
74
+ ambientOcclusion: live && aoQuality !== 'off' ? aoQuality : null,
75
+ edges: live && ve.separationLines.enabled && ve.separationLines.quality !== 'off',
76
+ };
77
+ }
46
78
  //# sourceMappingURL=visual-enhancement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visual-enhancement.js","sourceRoot":"","sources":["../src/visual-enhancement.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAuB/D;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAAyB;IAC1B,KAAK,GAA8B;QACvC,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;QAC/C,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QAC/D,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;KAClF,CAAC;IAEF,OAAO,CAAC,OAAkC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,MAAM,MAAM,GAA8B;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;YAC9C,YAAY,EAAE;gBACV,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO;gBACzE,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS;aAClF;YACD,cAAc,EAAE;gBACZ,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO;gBAC7E,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS;gBACnF,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM;aAC7E;YACD,eAAe,EAAE;gBACb,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;gBAC/E,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;gBAC/E,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS;gBACrF,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM;aAC/E;SACJ,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"visual-enhancement.js","sourceRoot":"","sources":["../src/visual-enhancement.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/renderer",
3
- "version": "3.2.0",
3
+ "version": "5.0.0",
4
4
  "description": "WebGPU renderer for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,8 +13,8 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ifc-lite/geometry": "^7.4.0",
17
- "@ifc-lite/spatial": "^1.14.19"
16
+ "@ifc-lite/geometry": "^7.5.2",
17
+ "@ifc-lite/spatial": "^1.15.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@webgpu/types": "^0.1.72",
@@ -1,60 +0,0 @@
1
- /**
2
- * Post-processing effects for Blender-quality rendering
3
- * Includes SSAO, tone mapping, and edge enhancement
4
- */
5
- import { WebGPUDevice } from './device.js';
6
- export interface PostProcessorOptions {
7
- enableContactShading?: boolean;
8
- contactRadius?: number;
9
- contactIntensity?: number;
10
- }
11
- export type PostProcessQuality = 'low' | 'high';
12
- export interface ContactShadingPassOptions {
13
- targetView: GPUTextureView;
14
- depthView: GPUTextureView;
15
- objectIdView: GPUTextureView;
16
- contactQuality: PostProcessQuality;
17
- radius: number;
18
- intensity: number;
19
- separationQuality: PostProcessQuality;
20
- separationRadius: number;
21
- separationIntensity: number;
22
- enableSeparationLines: boolean;
23
- }
24
- /**
25
- * Post-processing pipeline
26
- * Currently implements enhanced tone mapping in shader
27
- * SSAO and edge enhancement can be added as separate passes
28
- */
29
- export declare class PostProcessor {
30
- private _device;
31
- private options;
32
- private colorFormat;
33
- private isMultisampled;
34
- private uniformBuffer;
35
- private uniformStaging;
36
- private uniformF32;
37
- private uniformU32;
38
- private bindGroupLayout;
39
- private pipeline;
40
- private cachedBindGroup;
41
- private cachedDepthView;
42
- private cachedObjectIdView;
43
- constructor(device: WebGPUDevice, options?: PostProcessorOptions, sampleCount?: number);
44
- /**
45
- * Apply lightweight contact shading in a fullscreen overlay pass.
46
- */
47
- apply(commandEncoder: GPUCommandEncoder, options: ContactShadingPassOptions): void;
48
- /**
49
- * Update post-processing options
50
- */
51
- updateOptions(options: Partial<PostProcessorOptions>): void;
52
- private destroyed;
53
- /**
54
- * Destroy all GPU resources held by this post-processor.
55
- * After calling this method the post-processor is no longer usable.
56
- * Safe to call multiple times.
57
- */
58
- destroy(): void;
59
- }
60
- //# sourceMappingURL=post-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"post-processor.d.ts","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,cAAc,CAAC;IAC7B,cAAc,EAAE,kBAAkB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,kBAAkB,CAA+B;gBAE7C,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,oBAAyB,EAAE,WAAW,GAAE,MAAU;IA8Q7F;;OAEG;IACH,KAAK,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB,GAAG,IAAI;IA6ClF;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAI3D,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAQlB"}