@ifc-lite/renderer 3.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/README.md +22 -0
  2. package/dist/aabb-edges.d.ts +10 -0
  3. package/dist/aabb-edges.d.ts.map +1 -1
  4. package/dist/aabb-edges.js +13 -0
  5. package/dist/aabb-edges.js.map +1 -1
  6. package/dist/ao-params.d.ts +85 -0
  7. package/dist/ao-params.d.ts.map +1 -0
  8. package/dist/ao-params.js +109 -0
  9. package/dist/ao-params.js.map +1 -0
  10. package/dist/ao-pass.d.ts +47 -0
  11. package/dist/ao-pass.d.ts.map +1 -0
  12. package/dist/ao-pass.js +157 -0
  13. package/dist/ao-pass.js.map +1 -0
  14. package/dist/appearance-preview.d.ts +2 -0
  15. package/dist/appearance-preview.d.ts.map +1 -1
  16. package/dist/appearance-preview.js +4 -0
  17. package/dist/appearance-preview.js.map +1 -1
  18. package/dist/camera-animation-immediate.d.ts +5 -0
  19. package/dist/camera-animation-immediate.d.ts.map +1 -0
  20. package/dist/camera-animation-immediate.js +16 -0
  21. package/dist/camera-animation-immediate.js.map +1 -0
  22. package/dist/camera-animation.d.ts +3 -9
  23. package/dist/camera-animation.d.ts.map +1 -1
  24. package/dist/camera-animation.js +14 -9
  25. package/dist/camera-animation.js.map +1 -1
  26. package/dist/camera-matrices.d.ts +3 -0
  27. package/dist/camera-matrices.d.ts.map +1 -1
  28. package/dist/camera-matrices.js +12 -1
  29. package/dist/camera-matrices.js.map +1 -1
  30. package/dist/camera-orientation.d.ts +62 -0
  31. package/dist/camera-orientation.d.ts.map +1 -0
  32. package/dist/camera-orientation.js +155 -0
  33. package/dist/camera-orientation.js.map +1 -0
  34. package/dist/camera-projection.d.ts +3 -1
  35. package/dist/camera-projection.d.ts.map +1 -1
  36. package/dist/camera-projection.js +26 -20
  37. package/dist/camera-projection.js.map +1 -1
  38. package/dist/camera-surface-zoom.d.ts +32 -0
  39. package/dist/camera-surface-zoom.d.ts.map +1 -0
  40. package/dist/camera-surface-zoom.js +37 -0
  41. package/dist/camera-surface-zoom.js.map +1 -0
  42. package/dist/camera.d.ts +32 -61
  43. package/dist/camera.d.ts.map +1 -1
  44. package/dist/camera.js +71 -167
  45. package/dist/camera.js.map +1 -1
  46. package/dist/clash-solid-pipeline.d.ts +9 -3
  47. package/dist/clash-solid-pipeline.d.ts.map +1 -1
  48. package/dist/clash-solid-pipeline.js +31 -8
  49. package/dist/clash-solid-pipeline.js.map +1 -1
  50. package/dist/constants.d.ts +1 -1
  51. package/dist/constants.d.ts.map +1 -1
  52. package/dist/constants.js +4 -3
  53. package/dist/constants.js.map +1 -1
  54. package/dist/depth-reconstruct.d.ts +43 -0
  55. package/dist/depth-reconstruct.d.ts.map +1 -0
  56. package/dist/depth-reconstruct.js +35 -0
  57. package/dist/depth-reconstruct.js.map +1 -0
  58. package/dist/device-recovery.d.ts +60 -0
  59. package/dist/device-recovery.d.ts.map +1 -0
  60. package/dist/device-recovery.js +153 -0
  61. package/dist/device-recovery.js.map +1 -0
  62. package/dist/device.d.ts +2 -0
  63. package/dist/device.d.ts.map +1 -1
  64. package/dist/device.js +13 -1
  65. package/dist/device.js.map +1 -1
  66. package/dist/environment.d.ts +26 -15
  67. package/dist/environment.d.ts.map +1 -1
  68. package/dist/environment.js +24 -13
  69. package/dist/environment.js.map +1 -1
  70. package/dist/federation-registry.d.ts +16 -0
  71. package/dist/federation-registry.d.ts.map +1 -1
  72. package/dist/federation-registry.js +80 -9
  73. package/dist/federation-registry.js.map +1 -1
  74. package/dist/gpu-static-upload.d.ts +39 -0
  75. package/dist/gpu-static-upload.d.ts.map +1 -0
  76. package/dist/gpu-static-upload.js +70 -0
  77. package/dist/gpu-static-upload.js.map +1 -0
  78. package/dist/gpu-upload-guard.d.ts +95 -0
  79. package/dist/gpu-upload-guard.d.ts.map +1 -0
  80. package/dist/gpu-upload-guard.js +88 -0
  81. package/dist/gpu-upload-guard.js.map +1 -0
  82. package/dist/index.d.ts +71 -41
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +340 -375
  85. package/dist/index.js.map +1 -1
  86. package/dist/instanced-override-color.d.ts +8 -0
  87. package/dist/instanced-override-color.d.ts.map +1 -1
  88. package/dist/instanced-override-color.js +10 -0
  89. package/dist/instanced-override-color.js.map +1 -1
  90. package/dist/instanced-render.d.ts +22 -2
  91. package/dist/instanced-render.d.ts.map +1 -1
  92. package/dist/instanced-render.js +47 -10
  93. package/dist/instanced-render.js.map +1 -1
  94. package/dist/instanced-rte.d.ts +17 -0
  95. package/dist/instanced-rte.d.ts.map +1 -0
  96. package/dist/instanced-rte.js +32 -0
  97. package/dist/instanced-rte.js.map +1 -0
  98. package/dist/merged-mesh-extract.d.ts.map +1 -1
  99. package/dist/merged-mesh-extract.js +5 -0
  100. package/dist/merged-mesh-extract.js.map +1 -1
  101. package/dist/mesh-rte-uniforms.d.ts +46 -0
  102. package/dist/mesh-rte-uniforms.d.ts.map +1 -0
  103. package/dist/mesh-rte-uniforms.js +59 -0
  104. package/dist/mesh-rte-uniforms.js.map +1 -0
  105. package/dist/model-bounds-tracker.d.ts +7 -0
  106. package/dist/model-bounds-tracker.d.ts.map +1 -1
  107. package/dist/model-bounds-tracker.js +16 -5
  108. package/dist/model-bounds-tracker.js.map +1 -1
  109. package/dist/model-translation.d.ts +40 -2
  110. package/dist/model-translation.d.ts.map +1 -1
  111. package/dist/model-translation.js +152 -17
  112. package/dist/model-translation.js.map +1 -1
  113. package/dist/pick-rte-snapshot.d.ts +7 -0
  114. package/dist/pick-rte-snapshot.d.ts.map +1 -0
  115. package/dist/pick-rte-snapshot.js +15 -0
  116. package/dist/pick-rte-snapshot.js.map +1 -0
  117. package/dist/pick-types.d.ts +17 -0
  118. package/dist/pick-types.d.ts.map +1 -0
  119. package/dist/pick-types.js +5 -0
  120. package/dist/pick-types.js.map +1 -0
  121. package/dist/pick-uniforms.d.ts +6 -0
  122. package/dist/pick-uniforms.d.ts.map +1 -1
  123. package/dist/pick-uniforms.js +22 -18
  124. package/dist/pick-uniforms.js.map +1 -1
  125. package/dist/pick-world-position.d.ts +18 -0
  126. package/dist/pick-world-position.d.ts.map +1 -0
  127. package/dist/pick-world-position.js +21 -0
  128. package/dist/pick-world-position.js.map +1 -0
  129. package/dist/picker-readbacks.d.ts +6 -0
  130. package/dist/picker-readbacks.d.ts.map +1 -0
  131. package/dist/picker-readbacks.js +20 -0
  132. package/dist/picker-readbacks.js.map +1 -0
  133. package/dist/picker-rte-uniforms.d.ts +6 -0
  134. package/dist/picker-rte-uniforms.d.ts.map +1 -0
  135. package/dist/picker-rte-uniforms.js +41 -0
  136. package/dist/picker-rte-uniforms.js.map +1 -0
  137. package/dist/picker.d.ts +6 -7
  138. package/dist/picker.d.ts.map +1 -1
  139. package/dist/picker.js +88 -115
  140. package/dist/picker.js.map +1 -1
  141. package/dist/picking-manager.d.ts +10 -1
  142. package/dist/picking-manager.d.ts.map +1 -1
  143. package/dist/picking-manager.js +57 -21
  144. package/dist/picking-manager.js.map +1 -1
  145. package/dist/pipeline.d.ts +1 -7
  146. package/dist/pipeline.d.ts.map +1 -1
  147. package/dist/pipeline.js +17 -20
  148. package/dist/pipeline.js.map +1 -1
  149. package/dist/point-picker.d.ts +5 -1
  150. package/dist/point-picker.d.ts.map +1 -1
  151. package/dist/point-picker.js +49 -9
  152. package/dist/point-picker.js.map +1 -1
  153. package/dist/pointcloud/point-cloud-handle-ids.d.ts +22 -0
  154. package/dist/pointcloud/point-cloud-handle-ids.d.ts.map +1 -0
  155. package/dist/pointcloud/point-cloud-handle-ids.js +31 -0
  156. package/dist/pointcloud/point-cloud-handle-ids.js.map +1 -0
  157. package/dist/pointcloud/point-cloud-node.d.ts +14 -6
  158. package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
  159. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  160. package/dist/pointcloud/point-cloud-pick-sources.d.ts +47 -0
  161. package/dist/pointcloud/point-cloud-pick-sources.d.ts.map +1 -0
  162. package/dist/pointcloud/point-cloud-pick-sources.js +32 -0
  163. package/dist/pointcloud/point-cloud-pick-sources.js.map +1 -0
  164. package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -1
  165. package/dist/pointcloud/point-cloud-placement.js +20 -5
  166. package/dist/pointcloud/point-cloud-placement.js.map +1 -1
  167. package/dist/pointcloud/point-cloud-ray-transform.d.ts +78 -4
  168. package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -1
  169. package/dist/pointcloud/point-cloud-ray-transform.js +31 -84
  170. package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -1
  171. package/dist/pointcloud/point-cloud-renderer.d.ts +21 -19
  172. package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
  173. package/dist/pointcloud/point-cloud-renderer.js +46 -52
  174. package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
  175. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts +44 -0
  176. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts.map +1 -0
  177. package/dist/pointcloud/point-cloud-stream-lifecycle.js +44 -0
  178. package/dist/pointcloud/point-cloud-stream-lifecycle.js.map +1 -0
  179. package/dist/pointcloud/point-cloud-uniforms.d.ts +5 -0
  180. package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
  181. package/dist/pointcloud/point-cloud-uniforms.js +55 -44
  182. package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
  183. package/dist/pointcloud/point-cloud-visibility.d.ts +10 -0
  184. package/dist/pointcloud/point-cloud-visibility.d.ts.map +1 -0
  185. package/dist/pointcloud/point-cloud-visibility.js +18 -0
  186. package/dist/pointcloud/point-cloud-visibility.js.map +1 -0
  187. package/dist/pointcloud/point-pipeline.d.ts +4 -9
  188. package/dist/pointcloud/point-pipeline.d.ts.map +1 -1
  189. package/dist/pointcloud/point-pipeline.js +4 -9
  190. package/dist/pointcloud/point-pipeline.js.map +1 -1
  191. package/dist/pointcloud/point-shader.wgsl.d.ts +1 -21
  192. package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -1
  193. package/dist/pointcloud/point-shader.wgsl.js +25 -5
  194. package/dist/pointcloud/point-shader.wgsl.js.map +1 -1
  195. package/dist/post-pass-chain.d.ts +38 -0
  196. package/dist/post-pass-chain.d.ts.map +1 -0
  197. package/dist/post-pass-chain.js +99 -0
  198. package/dist/post-pass-chain.js.map +1 -0
  199. package/dist/post-processor.d.ts +12 -26
  200. package/dist/post-processor.d.ts.map +1 -1
  201. package/dist/post-processor.js +14 -72
  202. package/dist/post-processor.js.map +1 -1
  203. package/dist/raycast-engine.d.ts +7 -5
  204. package/dist/raycast-engine.d.ts.map +1 -1
  205. package/dist/raycast-engine.js +17 -20
  206. package/dist/raycast-engine.js.map +1 -1
  207. package/dist/raycast-point-cloud-query.d.ts +1 -1
  208. package/dist/raycast-point-cloud-query.d.ts.map +1 -1
  209. package/dist/reference-image-pipeline.d.ts +1 -1
  210. package/dist/reference-image-pipeline.d.ts.map +1 -1
  211. package/dist/reference-image-pipeline.js +25 -7
  212. package/dist/reference-image-pipeline.js.map +1 -1
  213. package/dist/reference-images.d.ts +3 -1
  214. package/dist/reference-images.d.ts.map +1 -1
  215. package/dist/reference-images.js +15 -5
  216. package/dist/reference-images.js.map +1 -1
  217. package/dist/relative-to-eye.d.ts +146 -0
  218. package/dist/relative-to-eye.d.ts.map +1 -0
  219. package/dist/relative-to-eye.js +326 -0
  220. package/dist/relative-to-eye.js.map +1 -0
  221. package/dist/render-section-draw.d.ts +11 -0
  222. package/dist/render-section-draw.d.ts.map +1 -1
  223. package/dist/render-section-draw.js +6 -3
  224. package/dist/render-section-draw.js.map +1 -1
  225. package/dist/renderer-color-readback.d.ts +50 -0
  226. package/dist/renderer-color-readback.d.ts.map +1 -0
  227. package/dist/renderer-color-readback.js +145 -0
  228. package/dist/renderer-color-readback.js.map +1 -0
  229. package/dist/renderer-overlays.d.ts +15 -3
  230. package/dist/renderer-overlays.d.ts.map +1 -1
  231. package/dist/renderer-overlays.js +46 -20
  232. package/dist/renderer-overlays.js.map +1 -1
  233. package/dist/renderer-screenshot.d.ts +4 -0
  234. package/dist/renderer-screenshot.d.ts.map +1 -0
  235. package/dist/renderer-screenshot.js +17 -0
  236. package/dist/renderer-screenshot.js.map +1 -0
  237. package/dist/renderer-symbolic-overlays.d.ts +5 -2
  238. package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
  239. package/dist/renderer-symbolic-overlays.js +36 -13
  240. package/dist/renderer-symbolic-overlays.js.map +1 -1
  241. package/dist/renderer-viewport.d.ts +45 -0
  242. package/dist/renderer-viewport.d.ts.map +1 -1
  243. package/dist/renderer-viewport.js +44 -0
  244. package/dist/renderer-viewport.js.map +1 -1
  245. package/dist/rte-clip-space.d.ts +12 -0
  246. package/dist/rte-clip-space.d.ts.map +1 -0
  247. package/dist/rte-clip-space.js +22 -0
  248. package/dist/rte-clip-space.js.map +1 -0
  249. package/dist/rte-frustum.d.ts +24 -0
  250. package/dist/rte-frustum.d.ts.map +1 -0
  251. package/dist/rte-frustum.js +45 -0
  252. package/dist/rte-frustum.js.map +1 -0
  253. package/dist/scene-appearance-preview.d.ts +2 -0
  254. package/dist/scene-appearance-preview.d.ts.map +1 -1
  255. package/dist/scene-appearance-preview.js +9 -0
  256. package/dist/scene-appearance-preview.js.map +1 -1
  257. package/dist/scene-authored-owner.d.ts +10 -0
  258. package/dist/scene-authored-owner.d.ts.map +1 -1
  259. package/dist/scene-authored-owner.js +44 -5
  260. package/dist/scene-authored-owner.js.map +1 -1
  261. package/dist/scene-batch-rebuild.d.ts +18 -0
  262. package/dist/scene-batch-rebuild.d.ts.map +1 -0
  263. package/dist/scene-batch-rebuild.js +49 -0
  264. package/dist/scene-batch-rebuild.js.map +1 -0
  265. package/dist/scene-batch-upload.d.ts +4 -1
  266. package/dist/scene-batch-upload.d.ts.map +1 -1
  267. package/dist/scene-batch-upload.js +31 -38
  268. package/dist/scene-batch-upload.js.map +1 -1
  269. package/dist/scene-bucket-routing.d.ts +21 -0
  270. package/dist/scene-bucket-routing.d.ts.map +1 -0
  271. package/dist/scene-bucket-routing.js +44 -0
  272. package/dist/scene-bucket-routing.js.map +1 -0
  273. package/dist/scene-contents.d.ts +8 -0
  274. package/dist/scene-contents.d.ts.map +1 -1
  275. package/dist/scene-derived-mesh-provenance.d.ts +13 -0
  276. package/dist/scene-derived-mesh-provenance.d.ts.map +1 -0
  277. package/dist/scene-derived-mesh-provenance.js +30 -0
  278. package/dist/scene-derived-mesh-provenance.js.map +1 -0
  279. package/dist/scene-device-recovery.d.ts +103 -0
  280. package/dist/scene-device-recovery.d.ts.map +1 -0
  281. package/dist/scene-device-recovery.js +295 -0
  282. package/dist/scene-device-recovery.js.map +1 -0
  283. package/dist/scene-finalize-regroup.d.ts +54 -0
  284. package/dist/scene-finalize-regroup.d.ts.map +1 -0
  285. package/dist/scene-finalize-regroup.js +136 -0
  286. package/dist/scene-finalize-regroup.js.map +1 -0
  287. package/dist/scene-geometry.d.ts +1 -0
  288. package/dist/scene-geometry.d.ts.map +1 -1
  289. package/dist/scene-geometry.js +3 -23
  290. package/dist/scene-geometry.js.map +1 -1
  291. package/dist/scene-instance-bounds.d.ts +12 -0
  292. package/dist/scene-instance-bounds.d.ts.map +1 -0
  293. package/dist/scene-instance-bounds.js +48 -0
  294. package/dist/scene-instance-bounds.js.map +1 -0
  295. package/dist/scene-instance-materialization.d.ts +4 -1
  296. package/dist/scene-instance-materialization.d.ts.map +1 -1
  297. package/dist/scene-instance-materialization.js +21 -6
  298. package/dist/scene-instance-materialization.js.map +1 -1
  299. package/dist/scene-instance-translation.d.ts +17 -0
  300. package/dist/scene-instance-translation.d.ts.map +1 -0
  301. package/dist/scene-instance-translation.js +50 -0
  302. package/dist/scene-instance-translation.js.map +1 -0
  303. package/dist/scene-instance-types.d.ts +6 -0
  304. package/dist/scene-instance-types.d.ts.map +1 -1
  305. package/dist/scene-model-translation.d.ts +13 -1
  306. package/dist/scene-model-translation.d.ts.map +1 -1
  307. package/dist/scene-model-translation.js +23 -1
  308. package/dist/scene-model-translation.js.map +1 -1
  309. package/dist/scene-precision.d.ts +16 -0
  310. package/dist/scene-precision.d.ts.map +1 -0
  311. package/dist/scene-precision.js +73 -0
  312. package/dist/scene-precision.js.map +1 -0
  313. package/dist/scene-rect-select.d.ts +11 -1
  314. package/dist/scene-rect-select.d.ts.map +1 -1
  315. package/dist/scene-rect-select.js +7 -4
  316. package/dist/scene-rect-select.js.map +1 -1
  317. package/dist/scene.d.ts +42 -39
  318. package/dist/scene.d.ts.map +1 -1
  319. package/dist/scene.js +258 -375
  320. package/dist/scene.js.map +1 -1
  321. package/dist/section-2d-lift.d.ts +10 -2
  322. package/dist/section-2d-lift.d.ts.map +1 -1
  323. package/dist/section-2d-lift.js +14 -6
  324. package/dist/section-2d-lift.js.map +1 -1
  325. package/dist/section-2d-line-buffer.d.ts +12 -4
  326. package/dist/section-2d-line-buffer.d.ts.map +1 -1
  327. package/dist/section-2d-line-buffer.js +59 -33
  328. package/dist/section-2d-line-buffer.js.map +1 -1
  329. package/dist/section-2d-overlay.d.ts +18 -72
  330. package/dist/section-2d-overlay.d.ts.map +1 -1
  331. package/dist/section-2d-overlay.js +72 -103
  332. package/dist/section-2d-overlay.js.map +1 -1
  333. package/dist/section-2d-types.d.ts +38 -0
  334. package/dist/section-2d-types.d.ts.map +1 -0
  335. package/dist/section-2d-types.js +6 -0
  336. package/dist/section-2d-types.js.map +1 -0
  337. package/dist/section-cap-pipelines.d.ts +6 -0
  338. package/dist/section-cap-pipelines.d.ts.map +1 -0
  339. package/dist/section-cap-pipelines.js +87 -0
  340. package/dist/section-cap-pipelines.js.map +1 -0
  341. package/dist/section-plane-geometry.d.ts +24 -0
  342. package/dist/section-plane-geometry.d.ts.map +1 -0
  343. package/dist/section-plane-geometry.js +93 -0
  344. package/dist/section-plane-geometry.js.map +1 -0
  345. package/dist/section-plane.d.ts +23 -24
  346. package/dist/section-plane.d.ts.map +1 -1
  347. package/dist/section-plane.js +58 -174
  348. package/dist/section-plane.js.map +1 -1
  349. package/dist/shaders/ao.wgsl.d.ts +2 -0
  350. package/dist/shaders/ao.wgsl.d.ts.map +1 -0
  351. package/dist/shaders/ao.wgsl.js +234 -0
  352. package/dist/shaders/ao.wgsl.js.map +1 -0
  353. package/dist/shaders/color-transfer.wgsl.d.ts +26 -0
  354. package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -0
  355. package/dist/shaders/color-transfer.wgsl.js +53 -0
  356. package/dist/shaders/color-transfer.wgsl.js.map +1 -0
  357. package/dist/shaders/depth-reconstruct.wgsl.d.ts +16 -0
  358. package/dist/shaders/depth-reconstruct.wgsl.d.ts.map +1 -0
  359. package/dist/shaders/depth-reconstruct.wgsl.js +69 -0
  360. package/dist/shaders/depth-reconstruct.wgsl.js.map +1 -0
  361. package/dist/shaders/main-rte-shadow.wgsl.d.ts +4 -0
  362. package/dist/shaders/main-rte-shadow.wgsl.d.ts.map +1 -0
  363. package/dist/shaders/main-rte-shadow.wgsl.js +54 -0
  364. package/dist/shaders/main-rte-shadow.wgsl.js.map +1 -0
  365. package/dist/shaders/main.wgsl.d.ts +1 -6
  366. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  367. package/dist/shaders/main.wgsl.js +110 -159
  368. package/dist/shaders/main.wgsl.js.map +1 -1
  369. package/dist/shaders/relative-to-eye.wgsl.d.ts +12 -0
  370. package/dist/shaders/relative-to-eye.wgsl.d.ts.map +1 -0
  371. package/dist/shaders/relative-to-eye.wgsl.js +40 -0
  372. package/dist/shaders/relative-to-eye.wgsl.js.map +1 -0
  373. package/dist/shaders/section-2d-overlay.wgsl.d.ts +28 -12
  374. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
  375. package/dist/shaders/section-2d-overlay.wgsl.js +40 -13
  376. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
  377. package/dist/shaders/shadow.wgsl.d.ts +1 -1
  378. package/dist/shaders/shadow.wgsl.d.ts.map +1 -1
  379. package/dist/shaders/shadow.wgsl.js +25 -7
  380. package/dist/shaders/shadow.wgsl.js.map +1 -1
  381. package/dist/shaders/sky.wgsl.d.ts +1 -11
  382. package/dist/shaders/sky.wgsl.d.ts.map +1 -1
  383. package/dist/shaders/sky.wgsl.js +17 -19
  384. package/dist/shaders/sky.wgsl.js.map +1 -1
  385. package/dist/shaders/symbolic-overlay.wgsl.d.ts +2 -9
  386. package/dist/shaders/symbolic-overlay.wgsl.d.ts.map +1 -1
  387. package/dist/shaders/symbolic-overlay.wgsl.js +88 -17
  388. package/dist/shaders/symbolic-overlay.wgsl.js.map +1 -1
  389. package/dist/shaders/textured.wgsl.d.ts.map +1 -1
  390. package/dist/shaders/textured.wgsl.js +11 -9
  391. package/dist/shaders/textured.wgsl.js.map +1 -1
  392. package/dist/shadow-light-matrix.d.ts +7 -0
  393. package/dist/shadow-light-matrix.d.ts.map +1 -1
  394. package/dist/shadow-light-matrix.js +11 -0
  395. package/dist/shadow-light-matrix.js.map +1 -1
  396. package/dist/shadow-occluder-batches.d.ts +10 -0
  397. package/dist/shadow-occluder-batches.d.ts.map +1 -0
  398. package/dist/shadow-occluder-batches.js +39 -0
  399. package/dist/shadow-occluder-batches.js.map +1 -0
  400. package/dist/shadow-occluders.d.ts.map +1 -1
  401. package/dist/shadow-occluders.js +4 -0
  402. package/dist/shadow-occluders.js.map +1 -1
  403. package/dist/shadow-pass.d.ts +5 -51
  404. package/dist/shadow-pass.d.ts.map +1 -1
  405. package/dist/shadow-pass.js +49 -45
  406. package/dist/shadow-pass.js.map +1 -1
  407. package/dist/shadow-types.d.ts +39 -0
  408. package/dist/shadow-types.d.ts.map +1 -0
  409. package/dist/shadow-types.js +15 -0
  410. package/dist/shadow-types.js.map +1 -0
  411. package/dist/symbolic-overlay-geometry.d.ts +7 -0
  412. package/dist/symbolic-overlay-geometry.d.ts.map +1 -0
  413. package/dist/symbolic-overlay-geometry.js +43 -0
  414. package/dist/symbolic-overlay-geometry.js.map +1 -0
  415. package/dist/symbolic-overlay-pipelines.d.ts +24 -36
  416. package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
  417. package/dist/symbolic-overlay-pipelines.js +175 -182
  418. package/dist/symbolic-overlay-pipelines.js.map +1 -1
  419. package/dist/symbolic-text-atlas.d.ts +21 -0
  420. package/dist/symbolic-text-atlas.d.ts.map +1 -1
  421. package/dist/symbolic-text-atlas.js +29 -1
  422. package/dist/symbolic-text-atlas.js.map +1 -1
  423. package/dist/types.d.ts +20 -26
  424. package/dist/types.d.ts.map +1 -1
  425. package/dist/visual-enhancement.d.ts +23 -1
  426. package/dist/visual-enhancement.d.ts.map +1 -1
  427. package/dist/visual-enhancement.js +38 -12
  428. package/dist/visual-enhancement.js.map +1 -1
  429. package/package.json +3 -3
@@ -2,7 +2,15 @@
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { worldAabbFromPieces } from './scene-geometry.js';
5
+ import { writeInstanceAnchor } from './instanced-render.js';
5
6
  const ZERO = [0, 0, 0];
7
+ function yawEqual(a, b) {
8
+ if (!a && !b)
9
+ return true;
10
+ if (!a || !b)
11
+ return false;
12
+ return a.angle === b.angle && a.px === b.px && a.pz === b.pz;
13
+ }
6
14
  /** Validate before storing an offset, including when no drawables exist yet. */
7
15
  export function assertModelTranslation(modelIndex, offset) {
8
16
  if (!Number.isSafeInteger(modelIndex) || modelIndex < 0 || offset.length !== 3 || !offset.every((value) => Number.isFinite(value) && Number.isFinite(Math.fround(value)))) {
@@ -24,6 +32,7 @@ function moveBounds(bounds, delta) {
24
32
  export class ModelTranslations {
25
33
  authored = new WeakMap();
26
34
  offsets = new Map();
35
+ yaws = new Map();
27
36
  meshes = new WeakMap();
28
37
  batches = new WeakMap();
29
38
  instances = new WeakMap();
@@ -37,6 +46,35 @@ export class ModelTranslations {
37
46
  this.offsets.set(modelIndex, [...offset]);
38
47
  return true;
39
48
  }
49
+ /** A copy, never the stored object: `placeInstances` compares this against
50
+ * its own retained `entry.yaw` by value, so a caller mutating a borrowed
51
+ * yaw in place would make a later placement wrongly see "unchanged" and
52
+ * skip rewriting the instance buffer, leaving the render stale. */
53
+ getYaw(modelIndex = 0) {
54
+ const yaw = this.yaws.get(modelIndex);
55
+ return yaw ? { ...yaw } : null;
56
+ }
57
+ /** `null` clears the model's rotation; an explicit zero angle is stored the
58
+ * same way, so both restore the pristine instance transform bit-exactly.
59
+ * The pivot is validated the same way `assertModelTranslation` validates an
60
+ * offset: `Math.fround`-representable, not merely finite — `placeInstances`
61
+ * writes it through `DataView.setFloat32`, so a pivot like `1e100` would
62
+ * otherwise round to `Infinity` and poison every occurrence's bounds. */
63
+ setYaw(modelIndex, yaw) {
64
+ if (yaw && (!Number.isFinite(yaw.angle)
65
+ || !Number.isFinite(yaw.px) || !Number.isFinite(Math.fround(yaw.px))
66
+ || !Number.isFinite(yaw.pz) || !Number.isFinite(Math.fround(yaw.pz)))) {
67
+ throw new Error('Model rotation requires a finite angle and pivot.');
68
+ }
69
+ const next = yaw && yaw.angle !== 0 ? { angle: yaw.angle, px: yaw.px, pz: yaw.pz } : null;
70
+ if (yawEqual(this.getYaw(modelIndex), next))
71
+ return false;
72
+ if (next)
73
+ this.yaws.set(modelIndex, next);
74
+ else
75
+ this.yaws.delete(modelIndex);
76
+ return true;
77
+ }
40
78
  /** Preserve source identity and source coordinates for export and re-alignment. */
41
79
  placeMesh(source) {
42
80
  let entry = this.meshes.get(source);
@@ -182,36 +220,133 @@ export class ModelTranslations {
182
220
  batch.bounds = moveBounds(base.bounds, delta);
183
221
  }
184
222
  /** Only occurrence transforms change; template vertex/index buffers never do.
185
- * Keep a double baseline so undo never subtracts a rounded GPU translation. */
186
- placeInstances(data, modelIndex, stride) {
187
- const delta = this.get(modelIndex), count = data.byteLength / stride;
223
+ * Keep a double f64 baseline so undo never subtracts a rounded GPU value.
224
+ *
225
+ * The base is the pristine 3x4 (columns 0/1/2 — the linear part — plus the
226
+ * translation column; the mat4's bottom row is always [0,0,0,1] and is
227
+ * never touched), captured the first time an occurrence buffer is seen.
228
+ * Every call writes `R_yaw · base + delta`, never the previous write, so
229
+ * repeated yaw/translate previews cannot accumulate drift: the linear
230
+ * columns rotate as directions (`x' = x·cos + z·sin`, `z' = -x·sin + z·cos`,
231
+ * same sign as `Scene.rotateMeshesForEntity`), the translation column
232
+ * rotates about the pivot like a point (`t' = pivot + R(t - pivot) + delta`).
233
+ * An intervening translation-only edit into bytes 48..59 (exploded-storey
234
+ * lift, `translateInstancedEntity`) is folded back into `base` first, by
235
+ * undoing the OLD yaw that was in effect when it was written — a
236
+ * non-translation edit into bytes 0..47 cannot be folded this way and is a
237
+ * STOP condition (see plan #4890 §5). */
238
+ placeInstances(data, modelIndex, stride, canonicalAnchors, canonicalMatrixTranslations) {
239
+ const delta = this.get(modelIndex), yaw = this.getYaw(modelIndex), count = data.byteLength / stride;
188
240
  const view = new DataView(data);
189
241
  let entry = this.instances.get(data);
190
242
  if (!entry) {
191
- const base = new Float64Array(count * 3), written = new Float32Array(count * 3);
243
+ const base = new Float64Array(count * 12), written = new Float32Array(count * 12);
192
244
  for (let i = 0; i < count; i++)
193
- for (let axis = 0; axis < 3; axis++) {
194
- base[i * 3 + axis] = written[i * 3 + axis] = view.getFloat32(i * stride + 48 + axis * 4, true);
195
- }
196
- entry = { base, written, offset: ZERO };
245
+ for (let c = 0; c < 4; c++)
246
+ for (let a = 0; a < 3; a++) {
247
+ const j = i * 12 + c * 3 + a;
248
+ base[j] = written[j] = view.getFloat32(i * stride + c * 16 + a * 4, true);
249
+ }
250
+ const anchorsUsable = canonicalAnchors?.length === count * 3;
251
+ entry = {
252
+ base,
253
+ written,
254
+ ...(anchorsUsable ? {
255
+ anchorBase: canonicalAnchors.slice(),
256
+ writtenAnchors: canonicalAnchors.slice(),
257
+ } : {}),
258
+ offset: ZERO,
259
+ yaw: null,
260
+ };
197
261
  this.instances.set(data, entry);
198
262
  }
199
- if (entry.offset.every((value, i) => value === delta[i]))
263
+ if (entry.offset.every((value, i) => value === delta[i]) && yawEqual(entry.yaw, yaw))
200
264
  return false;
201
- for (let i = 0; i < count; i++)
202
- for (let axis = 0; axis < 3; axis++) {
203
- const j = i * 3 + axis, byte = i * stride + 48 + axis * 4;
204
- // Preserve intervening element edits / exploded-storey offsets.
205
- entry.base[j] += view.getFloat32(byte, true) - entry.written[j];
206
- const value = entry.base[j] + delta[axis];
207
- view.setFloat32(byte, value, true);
208
- entry.written[j] = value;
265
+ const oldCos = entry.yaw ? Math.cos(entry.yaw.angle) : 1, oldSin = entry.yaw ? Math.sin(entry.yaw.angle) : 0;
266
+ const newCos = yaw ? Math.cos(yaw.angle) : 1, newSin = yaw ? Math.sin(yaw.angle) : 0;
267
+ const newPx = yaw?.px ?? 0, newPz = yaw?.pz ?? 0;
268
+ for (let i = 0; i < count; i++) {
269
+ const b0 = i * 12, tByte = i * stride + 48;
270
+ // Fold an intervening translation edit: undo the OLD yaw's rotation on
271
+ // the world-space delta before adding it back into the pristine base.
272
+ const diffX = view.getFloat32(tByte, true) - entry.written[b0 + 9];
273
+ const diffY = view.getFloat32(tByte + 4, true) - entry.written[b0 + 10];
274
+ const diffZ = view.getFloat32(tByte + 8, true) - entry.written[b0 + 11];
275
+ entry.base[b0 + 9] += diffX * oldCos - diffZ * oldSin;
276
+ entry.base[b0 + 10] += diffY;
277
+ entry.base[b0 + 11] += diffX * oldSin + diffZ * oldCos;
278
+ // Linear columns (0, 1, 2): pure directions, rotate about no pivot.
279
+ for (let c = 0; c < 3; c++) {
280
+ const j = b0 + c * 3, bx = entry.base[j], by = entry.base[j + 1], bz = entry.base[j + 2];
281
+ const nx = yaw ? bx * newCos + bz * newSin : bx;
282
+ const nz = yaw ? -bx * newSin + bz * newCos : bz;
283
+ const byte = i * stride + c * 16;
284
+ view.setFloat32(byte, nx, true);
285
+ view.setFloat32(byte + 4, by, true);
286
+ view.setFloat32(byte + 8, nz, true);
287
+ entry.written[j] = nx;
288
+ entry.written[j + 1] = by;
289
+ entry.written[j + 2] = nz;
209
290
  }
291
+ // Translation column: rotate the pristine point about the pivot, then
292
+ // add the current model offset — order matches `pivotInModelFrame`
293
+ // (rotate about the pivot, then translate).
294
+ const btx = entry.base[b0 + 9], bty = entry.base[b0 + 10], btz = entry.base[b0 + 11];
295
+ const dx = btx - newPx, dz = btz - newPz;
296
+ const ttx = (yaw ? newPx + dx * newCos + dz * newSin : btx) + delta[0];
297
+ const tty = bty + delta[1];
298
+ const ttz = (yaw ? newPz - dx * newSin + dz * newCos : btz) + delta[2];
299
+ view.setFloat32(tByte, ttx, true);
300
+ view.setFloat32(tByte + 4, tty, true);
301
+ view.setFloat32(tByte + 8, ttz, true);
302
+ const anchorOffset = i * 3;
303
+ const anchorBase = entry.anchorBase, writtenAnchors = entry.writtenAnchors;
304
+ const canPlaceAnchor = anchorBase && writtenAnchors && canonicalAnchors
305
+ && canonicalMatrixTranslations && canonicalAnchors.length === count * 3
306
+ && canonicalMatrixTranslations.length === count * 3;
307
+ if (canPlaceAnchor) {
308
+ // Fold an entity-local translation edit into the f64 baseline exactly
309
+ // like the V1 matrix path above. This is essential after a snap/gizmo
310
+ // move: subsequent model placement must preserve its source residual,
311
+ // not revert to the decoded anchor.
312
+ const anchorDiffX = canonicalAnchors[anchorOffset] - writtenAnchors[anchorOffset];
313
+ const anchorDiffY = canonicalAnchors[anchorOffset + 1] - writtenAnchors[anchorOffset + 1];
314
+ const anchorDiffZ = canonicalAnchors[anchorOffset + 2] - writtenAnchors[anchorOffset + 2];
315
+ anchorBase[anchorOffset] += anchorDiffX * oldCos - anchorDiffZ * oldSin;
316
+ anchorBase[anchorOffset + 1] += anchorDiffY;
317
+ anchorBase[anchorOffset + 2] += anchorDiffX * oldSin + anchorDiffZ * oldCos;
318
+ const anchorDx = anchorBase[anchorOffset] - newPx;
319
+ const anchorDz = anchorBase[anchorOffset + 2] - newPz;
320
+ const ax = (yaw ? newPx + anchorDx * newCos + anchorDz * newSin : anchorBase[anchorOffset]) + delta[0];
321
+ const ay = anchorBase[anchorOffset + 1] + delta[1];
322
+ const az = (yaw ? newPz - anchorDx * newSin + anchorDz * newCos : anchorBase[anchorOffset + 2]) + delta[2];
323
+ canonicalAnchors[anchorOffset] = ax;
324
+ canonicalAnchors[anchorOffset + 1] = ay;
325
+ canonicalAnchors[anchorOffset + 2] = az;
326
+ canonicalMatrixTranslations[anchorOffset] = ttx;
327
+ canonicalMatrixTranslations[anchorOffset + 1] = tty;
328
+ canonicalMatrixTranslations[anchorOffset + 2] = ttz;
329
+ writtenAnchors[anchorOffset] = ax;
330
+ writtenAnchors[anchorOffset + 1] = ay;
331
+ writtenAnchors[anchorOffset + 2] = az;
332
+ if (stride >= 120)
333
+ writeInstanceAnchor(view, i * stride, [ax, ay, az]);
334
+ }
335
+ else if (stride >= 120) {
336
+ // Legacy V1 callers have no canonical source anchors to preserve.
337
+ writeInstanceAnchor(view, i * stride, [ttx, tty, ttz]);
338
+ }
339
+ entry.written[b0 + 9] = ttx;
340
+ entry.written[b0 + 10] = tty;
341
+ entry.written[b0 + 11] = ttz;
342
+ }
210
343
  entry.offset = delta;
344
+ entry.yaw = yaw;
211
345
  return true;
212
346
  }
213
347
  clear() {
214
348
  this.offsets.clear();
349
+ this.yaws.clear();
215
350
  this.authored = new WeakMap();
216
351
  this.meshes = new WeakMap();
217
352
  this.batches = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../src/model-translation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Camera } from './camera.js';
2
+ import type { RelativeToEyeSnapshot } from './relative-to-eye.js';
3
+ /** Test doubles predating #5049 have no RTE frame; production Camera does. */
4
+ export declare function capturePointRteSnapshot(camera: Camera): RelativeToEyeSnapshot | undefined;
5
+ /** Reject delayed readback after navigation changed the camera-relative frame. */
6
+ export declare function isPointRteSnapshotCurrent(camera: Camera, snapshot: RelativeToEyeSnapshot): boolean;
7
+ //# sourceMappingURL=pick-rte-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-rte-snapshot.d.ts","sourceRoot":"","sources":["../src/pick-rte-snapshot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AASlE,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAGzF;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAIlG"}
@@ -0,0 +1,15 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /** Test doubles predating #5049 have no RTE frame; production Camera does. */
5
+ export function capturePointRteSnapshot(camera) {
6
+ const rteCamera = camera;
7
+ return rteCamera.getRelativeToEyeFrame?.().snapshot();
8
+ }
9
+ /** Reject delayed readback after navigation changed the camera-relative frame. */
10
+ export function isPointRteSnapshotCurrent(camera, snapshot) {
11
+ const rteCamera = camera;
12
+ const frame = rteCamera.getRelativeToEyeFrame?.();
13
+ return !frame || frame.getRenderEpoch() === snapshot.renderEpoch;
14
+ }
15
+ //# sourceMappingURL=pick-rte-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-rte-snapshot.js","sourceRoot":"","sources":["../src/pick-rte-snapshot.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,SAAS,GAAc,MAAM,CAAC;IACpC,OAAO,SAAS,CAAC,qBAAqB,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,QAA+B;IACvF,MAAM,SAAS,GAAc,MAAM,CAAC;IACpC,MAAM,KAAK,GAAG,SAAS,CAAC,qBAAqB,EAAE,EAAE,CAAC;IAClD,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE,KAAK,QAAQ,CAAC,WAAW,CAAC;AACnE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ClipBox } from './types.js';
2
+ /** Options for GPU picking/selection, matching rendered visibility. */
3
+ export interface PickOptions {
4
+ isStreaming?: boolean;
5
+ hiddenIds?: Set<number>;
6
+ isolatedIds?: Set<number> | null;
7
+ }
8
+ /** Clip state the GPU picker mirrors from the most recent rendered frame. */
9
+ export interface PickClipState {
10
+ sectionPlane?: {
11
+ normal: [number, number, number];
12
+ distance: number;
13
+ flipped: boolean;
14
+ } | null;
15
+ clipBox?: ClipBox | null;
16
+ }
17
+ //# sourceMappingURL=pick-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-types.d.ts","sourceRoot":"","sources":["../src/pick-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAClC;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,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;IAC/F,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,5 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export {};
5
+ //# sourceMappingURL=pick-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-types.js","sourceRoot":"","sources":["../src/pick-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
@@ -1,4 +1,10 @@
1
1
  import type { PickClipState } from './types.js';
2
+ /**
3
+ * Write only the clip portion of a picker uniform. `floatOffset` is the
4
+ * clip-box-min lane; keeping this separate lets RTE draw records prepend their
5
+ * own projection/model fields without reimplementing clip flag semantics.
6
+ */
7
+ export declare function packPickClip(clip: PickClipState | null | undefined, out: Float32Array, outFlags: Uint32Array, floatOffset?: number): void;
2
8
  /**
3
9
  * Write the picker uniform block into `out` (>= 32 floats) and `outFlags` (a
4
10
  * Uint32 view of the same buffer at float lane 28 / byte 112). `clip` is the
@@ -1 +1 @@
1
- {"version":3,"file":"pick-uniforms.d.ts","sourceRoot":"","sources":["../src/pick-uniforms.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAsBN"}
1
+ {"version":3,"file":"pick-uniforms.d.ts","sourceRoot":"","sources":["../src/pick-uniforms.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,WAAW,EACrB,WAAW,SAAK,GACf,IAAI,CAiBN;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAGN"}
@@ -16,34 +16,38 @@
16
16
  */
17
17
  import { packClipBox } from './clip-box.js';
18
18
  /**
19
- * Write the picker uniform block into `out` (>= 32 floats) and `outFlags` (a
20
- * Uint32 view of the same buffer at float lane 28 / byte 112). `clip` is the
21
- * section plane + crop box the last render applied; an absent section / box
22
- * leaves its flag bit clear so picks aren't clipped.
19
+ * Write only the clip portion of a picker uniform. `floatOffset` is the
20
+ * clip-box-min lane; keeping this separate lets RTE draw records prepend their
21
+ * own projection/model fields without reimplementing clip flag semantics.
23
22
  */
24
- export function packPickUniforms(viewProj, clip, out, outFlags) {
25
- out.set(viewProj.subarray(0, 16), 0);
26
- // clip box min/max at lanes 16-23; returns the clip-box enable bit (4) or 0.
27
- let flags = packClipBox(clip?.clipBox, out, 16);
23
+ export function packPickClip(clip, out, outFlags, floatOffset = 16) {
24
+ let flags = packClipBox(clip?.clipBox, out, floatOffset);
28
25
  const sp = clip?.sectionPlane;
29
26
  if (sp) {
30
- out[24] = sp.normal[0];
31
- out[25] = sp.normal[1];
32
- out[26] = sp.normal[2];
33
- out[27] = sp.distance;
34
- flags |= 1; // sectionEnabled
27
+ out[floatOffset + 8] = sp.normal[0];
28
+ out[floatOffset + 9] = sp.normal[1];
29
+ out[floatOffset + 10] = sp.normal[2];
30
+ out[floatOffset + 11] = sp.distance;
31
+ flags |= 1;
35
32
  if (sp.flipped)
36
- flags |= 2; // flipped
33
+ flags |= 2;
37
34
  }
38
35
  else {
39
- out[24] = 0;
40
- out[25] = 0;
41
- out[26] = 0;
42
- out[27] = 0;
36
+ out.fill(0, floatOffset + 8, floatOffset + 12);
43
37
  }
44
38
  outFlags[0] = flags;
45
39
  outFlags[1] = 0;
46
40
  outFlags[2] = 0;
47
41
  outFlags[3] = 0;
48
42
  }
43
+ /**
44
+ * Write the picker uniform block into `out` (>= 32 floats) and `outFlags` (a
45
+ * Uint32 view of the same buffer at float lane 28 / byte 112). `clip` is the
46
+ * section plane + crop box the last render applied; an absent section / box
47
+ * leaves its flag bit clear so picks aren't clipped.
48
+ */
49
+ export function packPickUniforms(viewProj, clip, out, outFlags) {
50
+ out.set(viewProj.subarray(0, 16), 0);
51
+ packPickClip(clip, out, outFlags);
52
+ }
49
53
  //# sourceMappingURL=pick-uniforms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pick-uniforms.js","sourceRoot":"","sources":["../src/pick-uniforms.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAsB,EACtB,IAAsC,EACtC,GAAiB,EACjB,QAAqB;IAErB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,6EAA6E;IAC7E,IAAI,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;QACP,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QACtB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB;QAC7B,IAAI,EAAE,CAAC,OAAO;YAAE,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU;IACxC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IACD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACpB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"pick-uniforms.js","sourceRoot":"","sources":["../src/pick-uniforms.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAsC,EACtC,GAAiB,EACjB,QAAqB,EACrB,WAAW,GAAG,EAAE;IAEhB,IAAI,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QACpC,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,EAAE,CAAC,OAAO;YAAE,KAAK,IAAI,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACpB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAsB,EACtB,IAAsC,EACtC,GAAiB,EACjB,QAAqB;IAErB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { RelativeToEyeSnapshot } from './relative-to-eye.js';
2
+ /** Reproject a pick pixel/depth pair through a reverse-Z view projection. */
3
+ export declare function unprojectPickSample(viewProj: Float32Array, pickX: number, pickY: number, width: number, height: number, depth: number): {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ } | null;
8
+ /** Restore the f64 camera translation after an RTE depth unprojection. */
9
+ export declare function restoreRtePickWorld(relative: {
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ } | null, snapshot: RelativeToEyeSnapshot): {
14
+ x: number;
15
+ y: number;
16
+ z: number;
17
+ } | null;
18
+ //# sourceMappingURL=pick-world-position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-world-position.d.ts","sourceRoot":"","sources":["../src/pick-world-position.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM5C;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EACpD,QAAQ,EAAE,qBAAqB,GAC9B;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI5C"}
@@ -0,0 +1,21 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { MathUtils } from './math.js';
5
+ /** Reproject a pick pixel/depth pair through a reverse-Z view projection. */
6
+ export function unprojectPickSample(viewProj, pickX, pickY, width, height, depth) {
7
+ if (!Number.isFinite(depth) || depth <= 0)
8
+ return null;
9
+ const ndcX = ((pickX + 0.5) / width) * 2 - 1;
10
+ const ndcY = 1 - ((pickY + 0.5) / height) * 2;
11
+ const inverse = MathUtils.invert({ m: viewProj });
12
+ return inverse ? MathUtils.transformPoint(inverse, { x: ndcX, y: ndcY, z: depth }) : null;
13
+ }
14
+ /** Restore the f64 camera translation after an RTE depth unprojection. */
15
+ export function restoreRtePickWorld(relative, snapshot) {
16
+ if (!relative)
17
+ return null;
18
+ const camera = snapshot.getCameraWorld();
19
+ return { x: relative.x + camera[0], y: relative.y + camera[1], z: relative.z + camera[2] };
20
+ }
21
+ //# sourceMappingURL=pick-world-position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-world-position.js","sourceRoot":"","sources":["../src/pick-world-position.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CACjC,QAAsB,EACtB,KAAa,EACb,KAAa,EACb,KAAa,EACb,MAAc,EACd,KAAa;IAEb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5F,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CACjC,QAAoD,EACpD,QAA+B;IAE/B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** Lifecycle handling for asynchronous GPU picker readbacks. */
2
+ /** Only device teardown is an expected `AbortError`; real map faults propagate. */
3
+ export declare function isReadbackAbort(err: unknown): boolean;
4
+ /** Free aborted readbacks while preserving a visible diagnostic on a live device. */
5
+ export declare function releaseReadbacks(...buffers: GPUBuffer[]): void;
6
+ //# sourceMappingURL=picker-readbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-readbacks.d.ts","sourceRoot":"","sources":["../src/picker-readbacks.ts"],"names":[],"mappings":"AAIA,gEAAgE;AAEhE,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAQ9D"}
@@ -0,0 +1,20 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /** Lifecycle handling for asynchronous GPU picker readbacks. */
5
+ /** Only device teardown is an expected `AbortError`; real map faults propagate. */
6
+ export function isReadbackAbort(err) {
7
+ return typeof err === 'object' && err !== null && err.name === 'AbortError';
8
+ }
9
+ /** Free aborted readbacks while preserving a visible diagnostic on a live device. */
10
+ export function releaseReadbacks(...buffers) {
11
+ for (const buffer of buffers) {
12
+ try {
13
+ buffer.destroy();
14
+ }
15
+ catch (err) {
16
+ console.warn('[Picker] failed to release a readback buffer during teardown', err);
17
+ }
18
+ }
19
+ }
20
+ //# sourceMappingURL=picker-readbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-readbacks.js","sourceRoot":"","sources":["../src/picker-readbacks.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,gEAAgE;AAEhE,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAA0B,CAAC,IAAI,KAAK,YAAY,CAAC;AACtG,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,GAAG,OAAoB;IACtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,8DAA8D,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type RelativeToEyeSnapshot } from './relative-to-eye.js';
2
+ import type { Mesh, PickClipState } from './types.js';
3
+ export declare function writePickUniforms(device: GPUDevice, buffer: GPUBuffer, scratch: Float32Array, clipFlags: Uint32Array, viewProj: Float32Array, clip?: PickClipState | null): void;
4
+ export declare function writeFlatPickUniform(device: GPUDevice, buffer: GPUBuffer, scratch: Float32Array, clipFlags: Uint32Array, mesh: Mesh, snapshot: RelativeToEyeSnapshot, clip: PickClipState | null | undefined, slot: number): void;
5
+ export declare function writeInstancedPickUniforms(device: GPUDevice, buffer: GPUBuffer, scratch: Float32Array, clipFlags: Uint32Array, snapshot: RelativeToEyeSnapshot, clip?: PickClipState | null): void;
6
+ //# sourceMappingURL=picker-rte-uniforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-rte-uniforms.d.ts","sourceRoot":"","sources":["../src/picker-rte-uniforms.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,YAAY,EACtB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1B,IAAI,CAMN;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,IAAI,EAAE,MAAM,GACX,IAAI,CAUN;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1B,IAAI,CAQN"}
@@ -0,0 +1,41 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /** Dynamic uniform writers for production RTE object picking. */
5
+ import { packPickClip, packPickUniforms } from './pick-uniforms.js';
6
+ import { packRteOrigin } from './relative-to-eye.js';
7
+ import { packRteClipBox, rtePlaneDistance } from './rte-clip-space.js';
8
+ export function writePickUniforms(device, buffer, scratch, clipFlags, viewProj, clip) {
9
+ scratch.fill(0);
10
+ scratch.set(viewProj, 0);
11
+ scratch[16] = 1;
12
+ scratch[21] = 1;
13
+ scratch[26] = 1;
14
+ scratch[31] = 1;
15
+ packPickClip(clip, scratch, clipFlags, 32);
16
+ device.queue.writeBuffer(buffer, 0, scratch);
17
+ }
18
+ export function writeFlatPickUniform(device, buffer, scratch, clipFlags, mesh, snapshot, clip, slot) {
19
+ scratch.fill(0);
20
+ scratch.set(snapshot.getViewProjection().m, 0);
21
+ scratch.set(mesh.transform.m, 16);
22
+ packPickClip(clip, scratch, clipFlags, 32);
23
+ const camera = snapshot.getCameraWorld();
24
+ packRteClipBox(clip?.clipBox, camera, scratch, 32);
25
+ if (clip?.sectionPlane)
26
+ scratch[43] = rtePlaneDistance(clip.sectionPlane.distance, clip.sectionPlane.normal, camera);
27
+ snapshot.packDrawableOrigin(mesh.rteOrigin ?? [mesh.transform.m[12], mesh.transform.m[13], mesh.transform.m[14]], scratch, 48);
28
+ device.queue.writeBuffer(buffer, slot * 256, scratch);
29
+ }
30
+ export function writeInstancedPickUniforms(device, buffer, scratch, clipFlags, snapshot, clip) {
31
+ packPickUniforms(snapshot.getViewProjection().m, clip, scratch, clipFlags);
32
+ const camera = snapshot.getCameraWorld();
33
+ packRteClipBox(clip?.clipBox, camera, scratch, 16);
34
+ if (clip?.sectionPlane)
35
+ scratch[27] = rtePlaneDistance(clip.sectionPlane.distance, clip.sectionPlane.normal, camera);
36
+ packRteOrigin(camera, scratch, 32);
37
+ scratch[35] = 0;
38
+ scratch[39] = 0;
39
+ device.queue.writeBuffer(buffer, 0, scratch);
40
+ }
41
+ //# sourceMappingURL=picker-rte-uniforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-rte-uniforms.js","sourceRoot":"","sources":["../src/picker-rte-uniforms.ts"],"names":[],"mappings":"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"}