@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
package/dist/camera.js CHANGED
@@ -6,9 +6,12 @@ import { CameraControls } from './camera-controls.js';
6
6
  import { CameraAnimator } from './camera-animation.js';
7
7
  import { CameraProjection } from './camera-projection.js';
8
8
  import { FirstPersonNavigator } from './camera-first-person.js';
9
- import { updateCameraMatrices } from './camera-matrices.js';
9
+ import { updateCameraMatrices, updateCameraRelativeFrame } from './camera-matrices.js';
10
+ import { CameraOrientation } from './camera-orientation.js';
10
11
  import { pickFitPolicy } from './camera-fit-policy.js';
11
- import { areFiniteNumbers, DEFAULT_ORTHO_SIZE, isUsableBounds, isUsableDistance, usableOrthoSize, } from './camera-guards.js';
12
+ import { DEFAULT_ORTHO_SIZE, isUsableBounds, isUsableDistance, usableOrthoSize, } from './camera-guards.js';
13
+ import { RelativeToEyeFrame } from './relative-to-eye.js';
14
+ import { surfaceZoomStep } from './camera-surface-zoom.js';
12
15
  import { CAMERA_CONSTANTS } from './constants.js';
13
16
  export class Camera {
14
17
  state;
@@ -16,6 +19,11 @@ export class Camera {
16
19
  animator;
17
20
  projection;
18
21
  firstPerson;
22
+ orientation;
23
+ /** The sole renderer camera frame used by all RTE-capable consumers. */
24
+ relativeToEyeFrame = new RelativeToEyeFrame();
25
+ /** Mirror of the controls' gate, for the surface zoom below (#5393). */
26
+ interactionMode = 'all';
19
27
  constructor() {
20
28
  // Geometry is converted from IFC Z-up to WebGL Y-up during import
21
29
  this.state = {
@@ -36,24 +44,19 @@ export class Camera {
36
44
  sceneBounds: null,
37
45
  orbitAnchorBounds: null,
38
46
  };
39
- // Bound straight to the module-level function rather than to
40
- // `this.updateMatrices()`: this closure is the per-frame path every
41
- // sub-system drives the matrices through, and routing it via the private
42
- // method would add a hop to it. Depth is therefore unchanged from before
43
- // the extraction (closure → one call), and the callee is monomorphic.
44
- const updateMatrices = () => updateCameraMatrices(this.state);
47
+ // All pose writers publish the ordinary and relative frames together.
48
+ const updateMatrices = () => this.updateMatrices();
45
49
  this.controls = new CameraControls(this.state, updateMatrices);
46
- this.projection = new CameraProjection(this.state, updateMatrices);
50
+ this.projection = new CameraProjection(this.state, updateMatrices, this.relativeToEyeFrame);
47
51
  this.animator = new CameraAnimator(this.state, updateMatrices, this.controls, this.projection);
48
52
  this.firstPerson = new FirstPersonNavigator(this.state, updateMatrices);
53
+ this.orientation = new CameraOrientation(this.state, this.animator, updateMatrices);
49
54
  this.updateMatrices();
50
55
  }
51
- /**
52
- * Cold-path convenience for this class's own setters. The hot path uses the
53
- * closure built in the constructor; see the note there.
54
- */
56
+ /** Publish both camera frames after every setter, gesture and animation. */
55
57
  updateMatrices() {
56
58
  updateCameraMatrices(this.state);
59
+ updateCameraRelativeFrame(this.state, this.relativeToEyeFrame);
57
60
  }
58
61
  /**
59
62
  * Set camera aspect ratio
@@ -117,6 +120,7 @@ export class Camera {
117
120
  }
118
121
  /** Restrict interactive orbit/pan/zoom (embed `controls` param, #2934). */
119
122
  setInteractionMode(mode) {
123
+ this.interactionMode = mode;
120
124
  this.controls.setInteractionMode(mode);
121
125
  }
122
126
  /**
@@ -159,8 +163,18 @@ export class Camera {
159
163
  * @param mouseY - Mouse Y position in canvas coordinates
160
164
  * @param canvasWidth - Canvas width
161
165
  * @param canvasHeight - Canvas height
162
- */
163
- zoom(delta, addVelocity = false, mouseX, mouseY, canvasWidth, canvasHeight, fastZoom) {
166
+ * @param fastZoom - Pure dolly (Shift / Cesium): the full step translates the rig
167
+ * @param surfacePoint - World point on the visible surface under the cursor
168
+ * (#5393). Zooming IN approaches it and stops short of it; it is ignored
169
+ * for zoom-out, fast zoom and orthographic. The surface step applies no
170
+ * inertia, so `addVelocity` has no effect on it.
171
+ */
172
+ zoom(delta, addVelocity = false, mouseX, mouseY, canvasWidth, canvasHeight, fastZoom, surfacePoint) {
173
+ // Zooming IN over geometry approaches the picked surface instead of the
174
+ // target plane, so repeated notches stop short of it (#5393). Pure dolly
175
+ // (fast zoom, Cesium) and orthographic keep the plain path.
176
+ if (surfacePoint && delta < 0 && !fastZoom && this.zoomTowardSurface(delta, surfacePoint))
177
+ return;
164
178
  // Gate inertia on whether `zoom` applied, same reason as `orbit` above (#2934 review).
165
179
  if (!this.controls.zoom(delta, mouseX, mouseY, canvasWidth, canvasHeight, fastZoom))
166
180
  return;
@@ -169,6 +183,23 @@ export class Camera {
169
183
  this.animator.addZoomVelocity(normalizedDelta);
170
184
  }
171
185
  }
186
+ /** One zoom-in notch toward a picked surface point; false = not applied. */
187
+ zoomTowardSurface(delta, point) {
188
+ // Same gate as CameraControls.zoom: only 'all' may dolly (#2934).
189
+ if (this.interactionMode !== 'all' || this.state.projectionMode !== 'perspective')
190
+ return false;
191
+ const fraction = Math.min(Math.abs(delta) * CAMERA_CONSTANTS.ZOOM_SENSITIVITY, CAMERA_CONSTANTS.MAX_ZOOM_DELTA);
192
+ const next = surfaceZoomStep(this.state.camera, point, fraction);
193
+ if (!next)
194
+ return false;
195
+ // The orbit centre is left where it is on purpose: the mouse path re-seats
196
+ // it on every orbit start, and the new target already sits at the surface.
197
+ // In place, like every other pose writer: callers may hold these objects.
198
+ Object.assign(this.state.camera.position, next.position);
199
+ Object.assign(this.state.camera.target, next.target);
200
+ this.updateMatrices();
201
+ return true;
202
+ }
172
203
  /**
173
204
  * Fit view to bounding box. Sets camera to southeast isometric view (typical
174
205
  * BIM starting view). Y-up coordinate system: Y is vertical
@@ -310,7 +341,18 @@ export class Camera {
310
341
  this.state.orbitAnchorBounds = null;
311
342
  }
312
343
  getViewProjMatrix() {
313
- return this.state.viewProjMatrix;
344
+ return { m: new Float32Array(this.state.viewProjMatrix.m) };
345
+ }
346
+ /** The reverse-Z projection matrix (perspective or orthographic); a copy. */
347
+ getProjMatrix() {
348
+ return { m: new Float32Array(this.state.projMatrix.m) };
349
+ }
350
+ /**
351
+ * Return the shared RTE frame for the current camera state. GPU consumers
352
+ * must use this instead of deriving a second camera rebase.
353
+ */
354
+ getRelativeToEyeFrame() {
355
+ return this.relativeToEyeFrame;
314
356
  }
315
357
  getPosition() {
316
358
  return { ...this.state.camera.position };
@@ -333,17 +375,16 @@ export class Camera {
333
375
  /**
334
376
  * The aspect ratio (width / height) the projection is currently built from.
335
377
  *
336
- * This is the DRAWING BUFFER's ratio, not the CSS box's: the render loop
337
- * floors the canvas width to a multiple of 64 for WebGPU's 256-byte texture
338
- * row alignment before calling {@link setAspect}, so on a viewport whose CSS
339
- * width is not a multiple of 64 the two differ by up to 63 pixels.
378
+ * This is the DRAWING BUFFER's ratio. Since #5383 the buffer is the CSS box
379
+ * scaled by one pixel ratio on both axes, so the two agree up to integer
380
+ * rounding of the buffer (the width used to be floored to a multiple of 64,
381
+ * which made them differ by up to 63 pixels).
340
382
  *
341
- * That is the right one for BCF (#3612). A viewpoint's snapshot PNG comes
342
- * from `canvas.toDataURL()`, which encodes that same drawing buffer, so the
343
- * `<AspectRatio>` written beside it describes the image actually in the
344
- * archive; the CSS ratio would describe an image nobody has. It is also the
345
- * ratio the projection matrix used, so a viewer restoring the camera
346
- * reproduces the framing rather than one 63 pixels wider.
383
+ * The buffer ratio is the right one for BCF (#3612). A viewpoint's snapshot
384
+ * PNG comes from `canvas.toDataURL()`, which encodes that same drawing
385
+ * buffer, so the `<AspectRatio>` written beside it describes the image
386
+ * actually in the archive. It is also the ratio the projection matrix used,
387
+ * so a viewer restoring the camera reproduces the framing.
347
388
  *
348
389
  * Always finite and positive -- {@link setAspect} rejects anything else --
349
390
  * which is what BCF 3.0's `PositiveDouble` schema type requires.
@@ -351,147 +392,10 @@ export class Camera {
351
392
  getAspect() {
352
393
  return this.state.camera.aspect;
353
394
  }
354
- /**
355
- * Get distance from camera position to target.
356
- *
357
- * Deliberately **unsanitized**: it reports the pose as it actually is, so a
358
- * malformed one (a BCF viewpoint restored from a file reaches the public
359
- * setters unvalidated) yields NaN rather than a substituted number. This is
360
- * a measurement, not a control input: it is what `useBCF` reads back when
361
- * restoring a viewpoint and what the BCF overlay scales markers by. There is
362
- * no substitute that is right for every reader — a plausible-looking `1`
363
- * would place every restored target one unit from the eye — and returning a
364
- * number here would contradict `getPosition()`/`getTarget()`, which are raw,
365
- * leaving callers no way to tell that the pose is broken. Gesture code inside
366
- * this package guards with {@link isUsableDistance} instead; each gesture
367
- * needs a different fallback. Callers OUTSIDE the package cannot use that
368
- * predicate (it is package-internal) and are not all guarded — see #2466 for
369
- * the viewpoint-restore path (#2441).
370
- */
371
- getDistance() {
372
- const dir = {
373
- x: this.state.camera.position.x - this.state.camera.target.x,
374
- y: this.state.camera.position.y - this.state.camera.target.y,
375
- z: this.state.camera.position.z - this.state.camera.target.z,
376
- };
377
- return Math.sqrt(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z);
378
- }
379
- /**
380
- * Get current camera rotation angles in degrees
381
- * Returns { azimuth, elevation } where:
382
- * - azimuth: horizontal rotation (0-360), 0 = front
383
- * - elevation: vertical rotation (-90 to 90), 0 = horizon
384
- */
385
- getRotation() {
386
- const dir = {
387
- x: this.state.camera.position.x - this.state.camera.target.x,
388
- y: this.state.camera.position.y - this.state.camera.target.y,
389
- z: this.state.camera.position.z - this.state.camera.target.z,
390
- };
391
- const distance = Math.sqrt(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z);
392
- // `distance < 1e-6` alone is a magnitude test, not a finiteness one: the
393
- // comparison is false for NaN, so a malformed pose fell through the guard
394
- // that looked like it was catching it, and `Math.asin(Math.max(-1,
395
- // Math.min(1, NaN)))` is NaN — a NaN elevation that leaves the renderer
396
- // entirely, into the viewer's rotation readout and the measurement
397
- // handlers (#2441). Same neutral answer as the degenerate pose, which is
398
- // preserved verbatim.
399
- if (!isUsableDistance(distance, 1e-6))
400
- return { azimuth: 0, elevation: 0 };
401
- // Elevation: angle from horizontal plane
402
- const elevation = Math.asin(Math.max(-1, Math.min(1, dir.y / distance))) * 180 / Math.PI;
403
- // Calculate azimuth smoothly using up vector
404
- // The up vector defines the "screen up" direction, which determines rotation
405
- const upX = this.state.camera.up.x;
406
- const upY = this.state.camera.up.y;
407
- const upZ = this.state.camera.up.z;
408
- // Project up vector onto horizontal plane (XZ plane)
409
- const upLen = Math.sqrt(upX * upX + upZ * upZ);
410
- let azimuth;
411
- if (upLen > 0.01) {
412
- // Use up vector projection for azimuth (smooth and consistent)
413
- azimuth = (Math.atan2(-upX, -upZ) * 180 / Math.PI + 360) % 360;
414
- // For bottom view, flip azimuth
415
- if (elevation < -80 && upY < 0) {
416
- azimuth = (azimuth + 180) % 360;
417
- }
418
- }
419
- else {
420
- // Fallback: use position-based azimuth when up vector is vertical
421
- azimuth = (Math.atan2(dir.x, dir.z) * 180 / Math.PI + 360) % 360;
422
- }
423
- return { azimuth, elevation };
424
- }
425
- /**
426
- * Place the camera at an ABSOLUTE orientation around its current target,
427
- * in the same angle convention {@link getRotation} reports — the exact
428
- * inverse of it, so `setRotation(a, e)` then `getRotation()` returns
429
- * `{ azimuth: a, elevation: e }` (modulo the normalisation and pole clamp
430
- * below).
431
- *
432
- * This is the only absolute-orientation entry point on the camera. Everything
433
- * else is relative (`orbit`, and the viewer's 90° rotate steppers built on it)
434
- * or names a direction rather than an angle (`setPresetView`), which is why a
435
- * host command that says "go to azimuth 120°, elevation 30°" had nothing to
436
- * call and silently did nothing (#2934).
437
- *
438
- * The orbit radius and the target are preserved — this rotates the camera on
439
- * its current sphere, it does not reframe. `up` is reset to world Y, matching
440
- * `orbit`, so the reported azimuth comes back through `getRotation`'s
441
- * position-based branch.
442
- *
443
- * @param azimuth Horizontal angle in degrees; normalised into [0, 360).
444
- * @param elevation Vertical angle in degrees, 0 = horizon. Clamped to just
445
- * inside ±90° (the same `MIN_PHI` margin `orbit` uses) — the exact poles
446
- * collapse `cross(forward, up)` and flip the model.
447
- */
448
- setRotation(azimuth, elevation) {
449
- // Angles are an input class of their own, and both of them reach the
450
- // trigonometry below unguarded: a non-finite one writes a NaN position and
451
- // destroys an otherwise valid pose. Same rejection `orbit` applies to its
452
- // deltas — a rejected call changes nothing at all.
453
- if (!areFiniteNumbers(azimuth, elevation))
454
- return;
455
- // An in-flight tween or leftover inertia writes position/target on the next
456
- // `update()` and would erase this pose a frame later — a host that sends
457
- // SET_VIEW (animated) and then SET_CAMERA would end up at the preset. An
458
- // absolute placement supersedes whatever motion is still running, so cancel
459
- // it; this also drops the preset-view rotation cycle, which is correct
460
- // after the camera has been reoriented out from under it.
461
- this.animator.reset();
462
- const target = this.state.camera.target;
463
- const dir = {
464
- x: this.state.camera.position.x - target.x,
465
- y: this.state.camera.position.y - target.y,
466
- z: this.state.camera.position.z - target.z,
467
- };
468
- const current = Math.sqrt(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z);
469
- // A degenerate pose (position === target, or a non-finite one) has no orbit
470
- // radius to preserve. Any positive radius yields a well-formed view matrix
471
- // at the requested direction, which is strictly better than propagating the
472
- // degeneracy — and leaves the caller's angles observable, which is the
473
- // whole point of the command.
474
- const distance = isUsableDistance(current, 1e-6) ? current : 1;
475
- // The TARGET is the other unguarded input, and `isUsableDistance` above only
476
- // rescues the radius. `setTarget` accepts non-finite coordinates, and every
477
- // position component below is `target.<axis> + ...`, so one NaN there makes
478
- // the whole pose NaN -- and this method's contract is that it RECOVERS a
479
- // pose, so silently writing an unrecoverable one is worse than refusing.
480
- // Same rejection shape as the angle guard at the top: change nothing.
481
- if (!areFiniteNumbers(target.x, target.y, target.z))
482
- return;
483
- const theta = ((((azimuth % 360) + 360) % 360) * Math.PI) / 180;
484
- const poleMargin = CAMERA_CONSTANTS.MIN_PHI;
485
- const phi = Math.max(poleMargin, Math.min(Math.PI - poleMargin, ((90 - elevation) * Math.PI) / 180));
486
- const sinPhi = Math.sin(phi);
487
- this.state.camera.position = {
488
- x: target.x + distance * sinPhi * Math.sin(theta),
489
- y: target.y + distance * Math.cos(phi),
490
- z: target.z + distance * sinPhi * Math.cos(theta),
491
- };
492
- this.state.camera.up = { x: 0, y: 1, z: 0 };
493
- this.updateMatrices();
494
- }
395
+ /** Raw pose distance; non-finite source poses remain observable. */
396
+ getDistance() { return this.orientation.getDistance(); }
397
+ getRotation() { return this.orientation.getRotation(); }
398
+ setRotation(azimuth, elevation) { this.orientation.setRotation(azimuth, elevation); }
495
399
  /**
496
400
  * Unproject screen coordinates to a ray in world space
497
401
  * @param screenX - X position in screen coordinates
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  /** One flat opaque colour for the whole solid — BIMcollab-style, not per-triangle. */
2
2
  export interface ClashSolidInput {
3
- /** World-space vertex positions, flat `[x, y, z, …]`. */
3
+ /**
4
+ * World-space vertex positions, flat `[x, y, z, …]`; when `origin` is
5
+ * supplied these are local to that canonical f64 anchor instead.
6
+ */
4
7
  positions: Float32Array | Float64Array;
8
+ /** Opt-in f64 anchor for local vertices. Float64 world positions auto-anchor. */
9
+ origin?: [number, number, number];
5
10
  /** Triangle indices into `positions / 3`. */
6
11
  indices: Uint32Array;
7
12
  /** Straight-alpha RGBA in [0..1]. Alpha 1 renders fully opaque. */
@@ -12,7 +17,7 @@ export interface ClashSolidInput {
12
17
  * pos+color-per-vertex stream `SYMBOLIC_FILL_WGSL` expects, matching
13
18
  * `triangulateFillTo`'s non-indexed triangle-list convention.
14
19
  */
15
- export declare function expandTriangles(input: ClashSolidInput): Float32Array;
20
+ export declare function expandTriangles(input: ClashSolidInput, origin?: readonly [number, number, number]): Float32Array;
16
21
  export declare class ClashSolidPipeline {
17
22
  private readonly device;
18
23
  private readonly format;
@@ -23,12 +28,13 @@ export declare class ClashSolidPipeline {
23
28
  private bindGroup;
24
29
  private vertexBuffer;
25
30
  private vertexCount;
31
+ private origin;
26
32
  constructor(device: GPUDevice, presentationFormat: GPUTextureFormat, sampleCount?: number);
27
33
  private init;
28
34
  /** Upload the solid mesh. Pass `null` to clear. */
29
35
  upload(input: ClashSolidInput | null): void;
30
36
  hasGeometry(): boolean;
31
- render(pass: GPURenderPassEncoder, viewProj: Float32Array): void;
37
+ render(pass: GPURenderPassEncoder, viewProj: Float32Array, rteViewProj?: Float32Array, rteCamera?: readonly [number, number, number]): void;
32
38
  destroy(): void;
33
39
  }
34
40
  //# sourceMappingURL=clash-solid-pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clash-solid-pipeline.d.ts","sourceRoot":"","sources":["../src/clash-solid-pipeline.ts"],"names":[],"mappings":"AA+BA,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,SAAS,EAAE,YAAY,GAAG,YAAY,CAAC;IACvC,6CAA6C;IAC7C,OAAO,EAAE,WAAW,CAAC;IACrB,mEAAmE;IACnE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAkBpE;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,WAAW,CAAK;gBAEZ,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,GAAE,MAAU;IAM5F,OAAO,CAAC,IAAI;IAmFZ,mDAAmD;IACnD,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAuB3C,WAAW,IAAI,OAAO;IAItB,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAUhE,OAAO,IAAI,IAAI;CAUhB"}
1
+ {"version":3,"file":"clash-solid-pipeline.d.ts","sourceRoot":"","sources":["../src/clash-solid-pipeline.ts"],"names":[],"mappings":"AAgCA,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,EAAE,YAAY,GAAG,YAAY,CAAC;IACvC,iFAAiF;IACjF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,6CAA6C;IAC7C,OAAO,EAAE,WAAW,CAAC;IACrB,mEAAmE;IACnE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACzC,YAAY,CAkBd;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAuC;gBAEzC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,GAAE,MAAU;IAM5F,OAAO,CAAC,IAAI;IAoFZ,mDAAmD;IACnD,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAmC3C,WAAW,IAAI,OAAO;IAItB,MAAM,CACJ,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC5C,IAAI;IAiBP,OAAO,IAAI,IAAI;CAWhB"}
@@ -24,13 +24,14 @@
24
24
  */
25
25
  import { SYMBOLIC_FILL_WGSL } from './shaders/symbolic-overlay.wgsl.js';
26
26
  import { PIPELINE_CONSTANTS } from './constants.js';
27
+ import { packRteDrawableDelta } from './relative-to-eye.js';
27
28
  const VERTEX_STRIDE_BYTES = (3 + 4) * 4; // pos.xyz + color.rgba, 4 bytes each
28
29
  /**
29
30
  * Expand an indexed triangle mesh + single colour into the flat
30
31
  * pos+color-per-vertex stream `SYMBOLIC_FILL_WGSL` expects, matching
31
32
  * `triangulateFillTo`'s non-indexed triangle-list convention.
32
33
  */
33
- export function expandTriangles(input) {
34
+ export function expandTriangles(input, origin) {
34
35
  const { positions, indices, color } = input;
35
36
  const triCount = Math.floor(indices.length / 3);
36
37
  const out = new Float32Array(triCount * 3 * 7);
@@ -38,9 +39,9 @@ export function expandTriangles(input) {
38
39
  for (let t = 0; t < triCount; t += 1) {
39
40
  for (let k = 0; k < 3; k += 1) {
40
41
  const vi = indices[t * 3 + k] * 3;
41
- out[w++] = positions[vi];
42
- out[w++] = positions[vi + 1];
43
- out[w++] = positions[vi + 2];
42
+ out[w++] = positions[vi] - (origin?.[0] ?? 0);
43
+ out[w++] = positions[vi + 1] - (origin?.[1] ?? 0);
44
+ out[w++] = positions[vi + 2] - (origin?.[2] ?? 0);
44
45
  out[w++] = color[0];
45
46
  out[w++] = color[1];
46
47
  out[w++] = color[2];
@@ -59,6 +60,7 @@ export class ClashSolidPipeline {
59
60
  bindGroup = null;
60
61
  vertexBuffer = null;
61
62
  vertexCount = 0;
63
+ origin;
62
64
  constructor(device, presentationFormat, sampleCount = 1) {
63
65
  this.device = device;
64
66
  this.format = presentationFormat;
@@ -133,7 +135,8 @@ export class ClashSolidPipeline {
133
135
  });
134
136
  this.uniformBuffer = this.device.createBuffer({
135
137
  label: 'clash-solid-camera',
136
- size: 64,
138
+ // SYMBOLIC_FILL_WGSL: global/RTE matrices plus split eye-relative origin.
139
+ size: 160,
137
140
  usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
138
141
  });
139
142
  this.bindGroup = this.device.createBindGroup({
@@ -150,9 +153,20 @@ export class ClashSolidPipeline {
150
153
  this.vertexBuffer = null;
151
154
  }
152
155
  this.vertexCount = 0;
156
+ this.origin = undefined;
153
157
  if (!input || input.indices.length === 0)
154
158
  return;
155
- const data = expandTriangles(input);
159
+ // The on-demand WASM intersection path returns canonical Float64 world
160
+ // coordinates. Anchor it automatically; a Float32 world stream stays on
161
+ // the legacy route unless its producer explicitly provides an origin.
162
+ const autoOrigin = !input.origin && input.positions instanceof Float64Array && input.positions.length >= 3
163
+ ? [input.positions[0], input.positions[1], input.positions[2]]
164
+ : undefined;
165
+ // Explicit origins mean the producer has already supplied local vertices.
166
+ // Only auto-anchored Float64 *world* positions are rebased here; subtracting
167
+ // an explicit origin again displaces the solid by an entire national-grid
168
+ // coordinate.
169
+ const data = expandTriangles(input, autoOrigin);
156
170
  if (data.length === 0)
157
171
  return;
158
172
  this.vertexBuffer = this.device.createBuffer({
@@ -162,16 +176,24 @@ export class ClashSolidPipeline {
162
176
  });
163
177
  this.device.queue.writeBuffer(this.vertexBuffer, 0, data);
164
178
  this.vertexCount = data.length / (VERTEX_STRIDE_BYTES / 4);
179
+ this.origin = input.origin ?? autoOrigin;
165
180
  }
166
181
  hasGeometry() {
167
182
  return this.vertexCount > 0;
168
183
  }
169
- render(pass, viewProj) {
184
+ render(pass, viewProj, rteViewProj, rteCamera) {
170
185
  if (!this.pipeline || !this.uniformBuffer || !this.bindGroup || !this.vertexBuffer)
171
186
  return;
172
187
  if (this.vertexCount === 0)
173
188
  return;
174
- this.device.queue.writeBuffer(this.uniformBuffer, 0, viewProj);
189
+ const uniform = new Float32Array(40);
190
+ uniform.set(viewProj, 0);
191
+ if (this.origin && rteViewProj && rteCamera) {
192
+ uniform.set(rteViewProj, 16);
193
+ packRteDrawableDelta(this.origin, rteCamera, uniform, 32);
194
+ uniform[35] = 1;
195
+ }
196
+ this.device.queue.writeBuffer(this.uniformBuffer, 0, uniform);
175
197
  pass.setPipeline(this.pipeline);
176
198
  pass.setBindGroup(0, this.bindGroup);
177
199
  pass.setVertexBuffer(0, this.vertexBuffer);
@@ -188,6 +210,7 @@ export class ClashSolidPipeline {
188
210
  this.bindGroupLayout = null;
189
211
  this.pipeline = null;
190
212
  this.vertexCount = 0;
213
+ this.origin = undefined;
191
214
  }
192
215
  }
193
216
  //# sourceMappingURL=clash-solid-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clash-solid-pipeline.js","sourceRoot":"","sources":["../src/clash-solid-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clash-solid-pipeline.js","sourceRoot":"","sources":["../src/clash-solid-pipeline.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ export declare const CAMERA_CONSTANTS: {
66
66
  };
67
67
  export declare const PIPELINE_CONSTANTS: {
68
68
  /** Total uniform buffer size */
69
- readonly UNIFORM_BUFFER_SIZE: 224;
69
+ readonly UNIFORM_BUFFER_SIZE: 336;
70
70
  /** Byte offset for flags in uniform buffer */
71
71
  readonly FLAGS_BYTE_OFFSET: 176;
72
72
  /** Default MSAA sample count */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,eAAO,MAAM,gBAAgB;IAE3B,0DAA0D;;IAE1D,6CAA6C;;IAI7C,kCAAkC;;IAElC,4CAA4C;;IAE5C,2BAA2B;;IAE3B,uBAAuB;;IAEvB,mCAAmC;;IAEnC,sDAAsD;;;;;;;;;;;;;;;;;;;;IAYtD,iDAAiD;;IAEjD,2CAA2C;;IAE3C,uCAAuC;;IAWvC,2EAA2E;;IAE3E,8EAA8E;;IAE9E,2CAA2C;;IAI3C,uCAAuC;;IAEvC,qCAAqC;;IAIrC,0CAA0C;;IAE1C,6CAA6C;;IAE7C,yCAAyC;;;;;;;CAKjC,CAAC;AAMX,eAAO,MAAM,kBAAkB;IAI7B,gCAAgC;;IAEhC,8CAA8C;;IAI9C,gCAAgC;;IAIhC;;;;;;OAMG;;CAEK,CAAC;AAMX,eAAO,MAAM,eAAe;IAC1B,oFAAoF;;IAEpF,yEAAyE;;IAEzE,oFAAoF;;IAEpF,+BAA+B;;CAEvB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,eAAO,MAAM,gBAAgB;IAE3B,0DAA0D;;IAE1D,6CAA6C;;IAI7C,kCAAkC;;IAElC,4CAA4C;;IAE5C,2BAA2B;;IAE3B,uBAAuB;;IAEvB,mCAAmC;;IAEnC,sDAAsD;;;;;;;;;;;;;;;;;;;;IAYtD,iDAAiD;;IAEjD,2CAA2C;;IAE3C,uCAAuC;;IAWvC,2EAA2E;;IAE3E,8EAA8E;;IAE9E,2CAA2C;;IAI3C,uCAAuC;;IAEvC,qCAAqC;;IAIrC,0CAA0C;;IAE1C,6CAA6C;;IAE7C,yCAAyC;;;;;;;CAKjC,CAAC;AAMX,eAAO,MAAM,kBAAkB;IAK7B,gCAAgC;;IAEhC,8CAA8C;;IAI9C,gCAAgC;;IAIhC;;;;;;OAMG;;CAEK,CAAC;AAMX,eAAO,MAAM,eAAe;IAC1B,oFAAoF;;IAEpF,yEAAyE;;IAEzE,oFAAoF;;IAEpF,+BAA+B;;CAEvB,CAAC"}
package/dist/constants.js CHANGED
@@ -74,10 +74,11 @@ export const CAMERA_CONSTANTS = {
74
74
  // ============================================================================
75
75
  export const PIPELINE_CONSTANTS = {
76
76
  // Buffer layout (bytes) - must match WGSL shader expectations.
77
- // 56 floats: viewProj(16)+model(16)+baseColor(4)+metallicRoughness/pad(4)+
78
- // sectionPlane(4)+flags(4)+clipBoxMin(4)+clipBoxMax(4) = 224 bytes.
77
+ // 60 floats: viewProj(16)+model(16)+baseColor(4)+metallicRoughness/pad(4)+
78
+ // sectionPlane(4)+flags(4)+clipBoxMin(4)+clipBoxMax(4)+quantParams(4)+
79
+ // RTE view-projection(16)+drawable high/low(8) = 336 bytes.
79
80
  /** Total uniform buffer size */
80
- UNIFORM_BUFFER_SIZE: 224,
81
+ UNIFORM_BUFFER_SIZE: 336,
81
82
  /** Byte offset for flags in uniform buffer */
82
83
  FLAGS_BYTE_OFFSET: 176,
83
84
  // MSAA
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,iBAAiB;IACjB,0DAA0D;IAC1D,cAAc,EAAE,IAAI;IACpB,6CAA6C;IAC7C,sBAAsB,EAAE,KAAK;IAE7B,kBAAkB;IAClB,kCAAkC;IAClC,kBAAkB,EAAE,GAAG;IACvB,4CAA4C;IAC5C,iBAAiB,EAAE,IAAI;IACvB,2BAA2B;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,uBAAuB;IACvB,gBAAgB,EAAE,KAAK;IACvB,mCAAmC;IACnC,cAAc,EAAE,GAAG;IACnB,sDAAsD;IACtD,wBAAwB,EAAE,OAAO;IAEjC,uBAAuB;IACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAW;IACnD,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW;IAC7C,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW;IACzC,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa;IACvC,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,MAAM;IAEnB,kBAAkB;IAClB,iDAAiD;IACjD,kBAAkB,EAAE,KAAK;IACzB,2CAA2C;IAC3C,oBAAoB,EAAE,KAAK;IAC3B,uCAAuC;IACvC,uBAAuB,EAAE,EAAE;IAE3B,mDAAmD;IACnD,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,gEAAgE;IAChE,EAAE;IACF,+DAA+D;IAC/D,2EAA2E;IAC3E,OAAO,EAAE,IAAI;IACb,8EAA8E;IAC9E,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI;IACvB,2CAA2C;IAC3C,cAAc,EAAE,IAAI;IAEpB,YAAY;IACZ,uCAAuC;IACvC,0BAA0B,EAAE,GAAG;IAC/B,qCAAqC;IACrC,wBAAwB,EAAE,GAAG;IAE7B,gBAAgB;IAChB,0CAA0C;IAC1C,uBAAuB,EAAE,GAAG;IAC5B,6CAA6C;IAC7C,wBAAwB,EAAE,GAAG;IAC7B,yCAAyC;IACzC,mBAAmB,EAAE,GAAG;IAExB,yBAAyB;IACzB,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAW;CACtD,CAAC;AAEX,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,+DAA+D;IAC/D,2EAA2E;IAC3E,oEAAoE;IACpE,gCAAgC;IAChC,mBAAmB,EAAE,GAAG;IACxB,8CAA8C;IAC9C,iBAAiB,EAAE,GAAG;IAEtB,OAAO;IACP,gCAAgC;IAChC,oBAAoB,EAAE,CAAC;IAEvB,eAAe;IACf;;;;;;OAMG;IACH,YAAY,EAAE,sBAA+B;CACrC,CAAC;AAEX,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oFAAoF;IACpF,yBAAyB,EAAE,GAAG;IAC9B,yEAAyE;IACzE,wBAAwB,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAC3C,oFAAoF;IACpF,gBAAgB,EAAE,CAAC,GAAG,CAAC;IACvB,+BAA+B;IAC/B,eAAe,EAAE,CAAC;CACV,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,iBAAiB;IACjB,0DAA0D;IAC1D,cAAc,EAAE,IAAI;IACpB,6CAA6C;IAC7C,sBAAsB,EAAE,KAAK;IAE7B,kBAAkB;IAClB,kCAAkC;IAClC,kBAAkB,EAAE,GAAG;IACvB,4CAA4C;IAC5C,iBAAiB,EAAE,IAAI;IACvB,2BAA2B;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,uBAAuB;IACvB,gBAAgB,EAAE,KAAK;IACvB,mCAAmC;IACnC,cAAc,EAAE,GAAG;IACnB,sDAAsD;IACtD,wBAAwB,EAAE,OAAO;IAEjC,uBAAuB;IACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAW;IACnD,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW;IAC7C,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW;IACzC,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa;IACvC,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,MAAM;IAEnB,kBAAkB;IAClB,iDAAiD;IACjD,kBAAkB,EAAE,KAAK;IACzB,2CAA2C;IAC3C,oBAAoB,EAAE,KAAK;IAC3B,uCAAuC;IACvC,uBAAuB,EAAE,EAAE;IAE3B,mDAAmD;IACnD,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,gEAAgE;IAChE,EAAE;IACF,+DAA+D;IAC/D,2EAA2E;IAC3E,OAAO,EAAE,IAAI;IACb,8EAA8E;IAC9E,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI;IACvB,2CAA2C;IAC3C,cAAc,EAAE,IAAI;IAEpB,YAAY;IACZ,uCAAuC;IACvC,0BAA0B,EAAE,GAAG;IAC/B,qCAAqC;IACrC,wBAAwB,EAAE,GAAG;IAE7B,gBAAgB;IAChB,0CAA0C;IAC1C,uBAAuB,EAAE,GAAG;IAC5B,6CAA6C;IAC7C,wBAAwB,EAAE,GAAG;IAC7B,yCAAyC;IACzC,mBAAmB,EAAE,GAAG;IAExB,yBAAyB;IACzB,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAW;CACtD,CAAC;AAEX,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,+DAA+D;IAC/D,2EAA2E;IAC3E,uEAAuE;IACvE,4DAA4D;IAC5D,gCAAgC;IAChC,mBAAmB,EAAE,GAAG;IACxB,8CAA8C;IAC9C,iBAAiB,EAAE,GAAG;IAEtB,OAAO;IACP,gCAAgC;IAChC,oBAAoB,EAAE,CAAC;IAEvB,eAAe;IACf;;;;;;OAMG;IACH,YAAY,EAAE,sBAA+B;CACrC,CAAC;AAEX,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oFAAoF;IACpF,yBAAyB,EAAE,GAAG;IAC9B,yEAAyE;IACzE,wBAAwB,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAC3C,oFAAoF;IACpF,gBAAgB,EAAE,CAAC,GAAG,CAAC;IACvB,+BAA+B;IAC/B,eAAe,EAAE,CAAC;CACV,CAAC"}