@ifc-lite/renderer 3.2.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 (371) 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/environment.d.ts +26 -15
  48. package/dist/environment.d.ts.map +1 -1
  49. package/dist/environment.js +24 -13
  50. package/dist/environment.js.map +1 -1
  51. package/dist/federation-registry.d.ts +16 -0
  52. package/dist/federation-registry.d.ts.map +1 -1
  53. package/dist/federation-registry.js +80 -9
  54. package/dist/federation-registry.js.map +1 -1
  55. package/dist/gpu-static-upload.d.ts +39 -0
  56. package/dist/gpu-static-upload.d.ts.map +1 -0
  57. package/dist/gpu-static-upload.js +70 -0
  58. package/dist/gpu-static-upload.js.map +1 -0
  59. package/dist/gpu-upload-guard.d.ts +12 -23
  60. package/dist/gpu-upload-guard.d.ts.map +1 -1
  61. package/dist/gpu-upload-guard.js +12 -26
  62. package/dist/gpu-upload-guard.js.map +1 -1
  63. package/dist/index.d.ts +29 -21
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +201 -252
  66. package/dist/index.js.map +1 -1
  67. package/dist/instanced-render.d.ts +22 -2
  68. package/dist/instanced-render.d.ts.map +1 -1
  69. package/dist/instanced-render.js +47 -10
  70. package/dist/instanced-render.js.map +1 -1
  71. package/dist/instanced-rte.d.ts +17 -0
  72. package/dist/instanced-rte.d.ts.map +1 -0
  73. package/dist/instanced-rte.js +32 -0
  74. package/dist/instanced-rte.js.map +1 -0
  75. package/dist/mesh-rte-uniforms.d.ts +46 -0
  76. package/dist/mesh-rte-uniforms.d.ts.map +1 -0
  77. package/dist/mesh-rte-uniforms.js +59 -0
  78. package/dist/mesh-rte-uniforms.js.map +1 -0
  79. package/dist/model-bounds-tracker.d.ts +7 -0
  80. package/dist/model-bounds-tracker.d.ts.map +1 -1
  81. package/dist/model-bounds-tracker.js +16 -5
  82. package/dist/model-bounds-tracker.js.map +1 -1
  83. package/dist/model-translation.d.ts +1 -1
  84. package/dist/model-translation.d.ts.map +1 -1
  85. package/dist/model-translation.js +50 -2
  86. package/dist/model-translation.js.map +1 -1
  87. package/dist/pick-rte-snapshot.d.ts +7 -0
  88. package/dist/pick-rte-snapshot.d.ts.map +1 -0
  89. package/dist/pick-rte-snapshot.js +15 -0
  90. package/dist/pick-rte-snapshot.js.map +1 -0
  91. package/dist/pick-types.d.ts +17 -0
  92. package/dist/pick-types.d.ts.map +1 -0
  93. package/dist/pick-types.js +5 -0
  94. package/dist/pick-types.js.map +1 -0
  95. package/dist/pick-uniforms.d.ts +6 -0
  96. package/dist/pick-uniforms.d.ts.map +1 -1
  97. package/dist/pick-uniforms.js +22 -18
  98. package/dist/pick-uniforms.js.map +1 -1
  99. package/dist/pick-world-position.d.ts +18 -0
  100. package/dist/pick-world-position.d.ts.map +1 -0
  101. package/dist/pick-world-position.js +21 -0
  102. package/dist/pick-world-position.js.map +1 -0
  103. package/dist/picker-readbacks.d.ts +6 -0
  104. package/dist/picker-readbacks.d.ts.map +1 -0
  105. package/dist/picker-readbacks.js +20 -0
  106. package/dist/picker-readbacks.js.map +1 -0
  107. package/dist/picker-rte-uniforms.d.ts +6 -0
  108. package/dist/picker-rte-uniforms.d.ts.map +1 -0
  109. package/dist/picker-rte-uniforms.js +41 -0
  110. package/dist/picker-rte-uniforms.js.map +1 -0
  111. package/dist/picker.d.ts +6 -7
  112. package/dist/picker.d.ts.map +1 -1
  113. package/dist/picker.js +88 -115
  114. package/dist/picker.js.map +1 -1
  115. package/dist/picking-manager.d.ts +8 -0
  116. package/dist/picking-manager.d.ts.map +1 -1
  117. package/dist/picking-manager.js +46 -19
  118. package/dist/picking-manager.js.map +1 -1
  119. package/dist/pipeline.d.ts +1 -7
  120. package/dist/pipeline.d.ts.map +1 -1
  121. package/dist/pipeline.js +17 -20
  122. package/dist/pipeline.js.map +1 -1
  123. package/dist/point-picker.d.ts +5 -1
  124. package/dist/point-picker.d.ts.map +1 -1
  125. package/dist/point-picker.js +49 -9
  126. package/dist/point-picker.js.map +1 -1
  127. package/dist/pointcloud/point-cloud-handle-ids.d.ts +22 -0
  128. package/dist/pointcloud/point-cloud-handle-ids.d.ts.map +1 -0
  129. package/dist/pointcloud/point-cloud-handle-ids.js +31 -0
  130. package/dist/pointcloud/point-cloud-handle-ids.js.map +1 -0
  131. package/dist/pointcloud/point-cloud-node.d.ts +14 -6
  132. package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
  133. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  134. package/dist/pointcloud/point-cloud-pick-sources.d.ts +47 -0
  135. package/dist/pointcloud/point-cloud-pick-sources.d.ts.map +1 -0
  136. package/dist/pointcloud/point-cloud-pick-sources.js +32 -0
  137. package/dist/pointcloud/point-cloud-pick-sources.js.map +1 -0
  138. package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -1
  139. package/dist/pointcloud/point-cloud-placement.js +20 -5
  140. package/dist/pointcloud/point-cloud-placement.js.map +1 -1
  141. package/dist/pointcloud/point-cloud-ray-transform.d.ts +78 -4
  142. package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -1
  143. package/dist/pointcloud/point-cloud-ray-transform.js +31 -84
  144. package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -1
  145. package/dist/pointcloud/point-cloud-renderer.d.ts +21 -19
  146. package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
  147. package/dist/pointcloud/point-cloud-renderer.js +46 -52
  148. package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
  149. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts +44 -0
  150. package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts.map +1 -0
  151. package/dist/pointcloud/point-cloud-stream-lifecycle.js +44 -0
  152. package/dist/pointcloud/point-cloud-stream-lifecycle.js.map +1 -0
  153. package/dist/pointcloud/point-cloud-uniforms.d.ts +5 -0
  154. package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
  155. package/dist/pointcloud/point-cloud-uniforms.js +55 -44
  156. package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
  157. package/dist/pointcloud/point-cloud-visibility.d.ts +10 -0
  158. package/dist/pointcloud/point-cloud-visibility.d.ts.map +1 -0
  159. package/dist/pointcloud/point-cloud-visibility.js +18 -0
  160. package/dist/pointcloud/point-cloud-visibility.js.map +1 -0
  161. package/dist/pointcloud/point-pipeline.d.ts +4 -9
  162. package/dist/pointcloud/point-pipeline.d.ts.map +1 -1
  163. package/dist/pointcloud/point-pipeline.js +4 -9
  164. package/dist/pointcloud/point-pipeline.js.map +1 -1
  165. package/dist/pointcloud/point-shader.wgsl.d.ts +1 -21
  166. package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -1
  167. package/dist/pointcloud/point-shader.wgsl.js +25 -5
  168. package/dist/pointcloud/point-shader.wgsl.js.map +1 -1
  169. package/dist/post-pass-chain.d.ts +38 -0
  170. package/dist/post-pass-chain.d.ts.map +1 -0
  171. package/dist/post-pass-chain.js +99 -0
  172. package/dist/post-pass-chain.js.map +1 -0
  173. package/dist/post-processor.d.ts +12 -26
  174. package/dist/post-processor.d.ts.map +1 -1
  175. package/dist/post-processor.js +14 -72
  176. package/dist/post-processor.js.map +1 -1
  177. package/dist/raycast-engine.d.ts +7 -5
  178. package/dist/raycast-engine.d.ts.map +1 -1
  179. package/dist/raycast-engine.js +17 -20
  180. package/dist/raycast-engine.js.map +1 -1
  181. package/dist/raycast-point-cloud-query.d.ts +1 -1
  182. package/dist/raycast-point-cloud-query.d.ts.map +1 -1
  183. package/dist/reference-image-pipeline.d.ts +1 -1
  184. package/dist/reference-image-pipeline.d.ts.map +1 -1
  185. package/dist/reference-image-pipeline.js +25 -7
  186. package/dist/reference-image-pipeline.js.map +1 -1
  187. package/dist/reference-images.d.ts +1 -1
  188. package/dist/reference-images.d.ts.map +1 -1
  189. package/dist/reference-images.js +13 -5
  190. package/dist/reference-images.js.map +1 -1
  191. package/dist/relative-to-eye.d.ts +146 -0
  192. package/dist/relative-to-eye.d.ts.map +1 -0
  193. package/dist/relative-to-eye.js +326 -0
  194. package/dist/relative-to-eye.js.map +1 -0
  195. package/dist/render-section-draw.d.ts +11 -0
  196. package/dist/render-section-draw.d.ts.map +1 -1
  197. package/dist/render-section-draw.js +6 -3
  198. package/dist/render-section-draw.js.map +1 -1
  199. package/dist/renderer-color-readback.d.ts +50 -0
  200. package/dist/renderer-color-readback.d.ts.map +1 -0
  201. package/dist/renderer-color-readback.js +145 -0
  202. package/dist/renderer-color-readback.js.map +1 -0
  203. package/dist/renderer-overlays.d.ts +12 -3
  204. package/dist/renderer-overlays.d.ts.map +1 -1
  205. package/dist/renderer-overlays.js +33 -20
  206. package/dist/renderer-overlays.js.map +1 -1
  207. package/dist/renderer-screenshot.d.ts +4 -0
  208. package/dist/renderer-screenshot.d.ts.map +1 -0
  209. package/dist/renderer-screenshot.js +17 -0
  210. package/dist/renderer-screenshot.js.map +1 -0
  211. package/dist/renderer-symbolic-overlays.d.ts +4 -2
  212. package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
  213. package/dist/renderer-symbolic-overlays.js +33 -13
  214. package/dist/renderer-symbolic-overlays.js.map +1 -1
  215. package/dist/renderer-viewport.d.ts +45 -0
  216. package/dist/renderer-viewport.d.ts.map +1 -1
  217. package/dist/renderer-viewport.js +44 -0
  218. package/dist/renderer-viewport.js.map +1 -1
  219. package/dist/rte-clip-space.d.ts +12 -0
  220. package/dist/rte-clip-space.d.ts.map +1 -0
  221. package/dist/rte-clip-space.js +22 -0
  222. package/dist/rte-clip-space.js.map +1 -0
  223. package/dist/rte-frustum.d.ts +24 -0
  224. package/dist/rte-frustum.d.ts.map +1 -0
  225. package/dist/rte-frustum.js +45 -0
  226. package/dist/rte-frustum.js.map +1 -0
  227. package/dist/scene-batch-upload.d.ts.map +1 -1
  228. package/dist/scene-batch-upload.js +14 -38
  229. package/dist/scene-batch-upload.js.map +1 -1
  230. package/dist/scene-device-recovery.d.ts.map +1 -1
  231. package/dist/scene-device-recovery.js +5 -9
  232. package/dist/scene-device-recovery.js.map +1 -1
  233. package/dist/scene-finalize-regroup.d.ts +54 -0
  234. package/dist/scene-finalize-regroup.d.ts.map +1 -0
  235. package/dist/scene-finalize-regroup.js +136 -0
  236. package/dist/scene-finalize-regroup.js.map +1 -0
  237. package/dist/scene-instance-bounds.d.ts +12 -0
  238. package/dist/scene-instance-bounds.d.ts.map +1 -0
  239. package/dist/scene-instance-bounds.js +48 -0
  240. package/dist/scene-instance-bounds.js.map +1 -0
  241. package/dist/scene-instance-materialization.d.ts +4 -1
  242. package/dist/scene-instance-materialization.d.ts.map +1 -1
  243. package/dist/scene-instance-materialization.js +21 -6
  244. package/dist/scene-instance-materialization.js.map +1 -1
  245. package/dist/scene-instance-translation.d.ts +17 -0
  246. package/dist/scene-instance-translation.d.ts.map +1 -0
  247. package/dist/scene-instance-translation.js +50 -0
  248. package/dist/scene-instance-translation.js.map +1 -0
  249. package/dist/scene-instance-types.d.ts +6 -0
  250. package/dist/scene-instance-types.d.ts.map +1 -1
  251. package/dist/scene-model-translation.d.ts +2 -0
  252. package/dist/scene-model-translation.d.ts.map +1 -1
  253. package/dist/scene-model-translation.js +1 -1
  254. package/dist/scene-model-translation.js.map +1 -1
  255. package/dist/scene-rect-select.d.ts +11 -1
  256. package/dist/scene-rect-select.d.ts.map +1 -1
  257. package/dist/scene-rect-select.js +7 -4
  258. package/dist/scene-rect-select.js.map +1 -1
  259. package/dist/scene.d.ts +17 -19
  260. package/dist/scene.d.ts.map +1 -1
  261. package/dist/scene.js +109 -238
  262. package/dist/scene.js.map +1 -1
  263. package/dist/section-2d-lift.d.ts +10 -2
  264. package/dist/section-2d-lift.d.ts.map +1 -1
  265. package/dist/section-2d-lift.js +14 -6
  266. package/dist/section-2d-lift.js.map +1 -1
  267. package/dist/section-2d-line-buffer.d.ts +12 -4
  268. package/dist/section-2d-line-buffer.d.ts.map +1 -1
  269. package/dist/section-2d-line-buffer.js +59 -33
  270. package/dist/section-2d-line-buffer.js.map +1 -1
  271. package/dist/section-2d-overlay.d.ts +18 -72
  272. package/dist/section-2d-overlay.d.ts.map +1 -1
  273. package/dist/section-2d-overlay.js +72 -103
  274. package/dist/section-2d-overlay.js.map +1 -1
  275. package/dist/section-2d-types.d.ts +38 -0
  276. package/dist/section-2d-types.d.ts.map +1 -0
  277. package/dist/section-2d-types.js +6 -0
  278. package/dist/section-2d-types.js.map +1 -0
  279. package/dist/section-cap-pipelines.d.ts +6 -0
  280. package/dist/section-cap-pipelines.d.ts.map +1 -0
  281. package/dist/section-cap-pipelines.js +87 -0
  282. package/dist/section-cap-pipelines.js.map +1 -0
  283. package/dist/section-plane-geometry.d.ts +24 -0
  284. package/dist/section-plane-geometry.d.ts.map +1 -0
  285. package/dist/section-plane-geometry.js +93 -0
  286. package/dist/section-plane-geometry.js.map +1 -0
  287. package/dist/section-plane.d.ts +23 -24
  288. package/dist/section-plane.d.ts.map +1 -1
  289. package/dist/section-plane.js +58 -174
  290. package/dist/section-plane.js.map +1 -1
  291. package/dist/shaders/ao.wgsl.d.ts +2 -0
  292. package/dist/shaders/ao.wgsl.d.ts.map +1 -0
  293. package/dist/shaders/ao.wgsl.js +234 -0
  294. package/dist/shaders/ao.wgsl.js.map +1 -0
  295. package/dist/shaders/color-transfer.wgsl.d.ts +26 -0
  296. package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -0
  297. package/dist/shaders/color-transfer.wgsl.js +53 -0
  298. package/dist/shaders/color-transfer.wgsl.js.map +1 -0
  299. package/dist/shaders/depth-reconstruct.wgsl.d.ts +16 -0
  300. package/dist/shaders/depth-reconstruct.wgsl.d.ts.map +1 -0
  301. package/dist/shaders/depth-reconstruct.wgsl.js +69 -0
  302. package/dist/shaders/depth-reconstruct.wgsl.js.map +1 -0
  303. package/dist/shaders/main-rte-shadow.wgsl.d.ts +4 -0
  304. package/dist/shaders/main-rte-shadow.wgsl.d.ts.map +1 -0
  305. package/dist/shaders/main-rte-shadow.wgsl.js +54 -0
  306. package/dist/shaders/main-rte-shadow.wgsl.js.map +1 -0
  307. package/dist/shaders/main.wgsl.d.ts +1 -6
  308. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  309. package/dist/shaders/main.wgsl.js +110 -159
  310. package/dist/shaders/main.wgsl.js.map +1 -1
  311. package/dist/shaders/relative-to-eye.wgsl.d.ts +12 -0
  312. package/dist/shaders/relative-to-eye.wgsl.d.ts.map +1 -0
  313. package/dist/shaders/relative-to-eye.wgsl.js +40 -0
  314. package/dist/shaders/relative-to-eye.wgsl.js.map +1 -0
  315. package/dist/shaders/section-2d-overlay.wgsl.d.ts +28 -12
  316. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
  317. package/dist/shaders/section-2d-overlay.wgsl.js +40 -13
  318. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
  319. package/dist/shaders/shadow.wgsl.d.ts +1 -1
  320. package/dist/shaders/shadow.wgsl.d.ts.map +1 -1
  321. package/dist/shaders/shadow.wgsl.js +25 -7
  322. package/dist/shaders/shadow.wgsl.js.map +1 -1
  323. package/dist/shaders/sky.wgsl.d.ts +1 -11
  324. package/dist/shaders/sky.wgsl.d.ts.map +1 -1
  325. package/dist/shaders/sky.wgsl.js +17 -19
  326. package/dist/shaders/sky.wgsl.js.map +1 -1
  327. package/dist/shaders/symbolic-overlay.wgsl.d.ts +2 -9
  328. package/dist/shaders/symbolic-overlay.wgsl.d.ts.map +1 -1
  329. package/dist/shaders/symbolic-overlay.wgsl.js +88 -17
  330. package/dist/shaders/symbolic-overlay.wgsl.js.map +1 -1
  331. package/dist/shaders/textured.wgsl.d.ts.map +1 -1
  332. package/dist/shaders/textured.wgsl.js +11 -9
  333. package/dist/shaders/textured.wgsl.js.map +1 -1
  334. package/dist/shadow-light-matrix.d.ts +7 -0
  335. package/dist/shadow-light-matrix.d.ts.map +1 -1
  336. package/dist/shadow-light-matrix.js +11 -0
  337. package/dist/shadow-light-matrix.js.map +1 -1
  338. package/dist/shadow-occluder-batches.d.ts +10 -0
  339. package/dist/shadow-occluder-batches.d.ts.map +1 -0
  340. package/dist/shadow-occluder-batches.js +39 -0
  341. package/dist/shadow-occluder-batches.js.map +1 -0
  342. package/dist/shadow-occluders.d.ts.map +1 -1
  343. package/dist/shadow-occluders.js +4 -0
  344. package/dist/shadow-occluders.js.map +1 -1
  345. package/dist/shadow-pass.d.ts +5 -51
  346. package/dist/shadow-pass.d.ts.map +1 -1
  347. package/dist/shadow-pass.js +49 -45
  348. package/dist/shadow-pass.js.map +1 -1
  349. package/dist/shadow-types.d.ts +39 -0
  350. package/dist/shadow-types.d.ts.map +1 -0
  351. package/dist/shadow-types.js +15 -0
  352. package/dist/shadow-types.js.map +1 -0
  353. package/dist/symbolic-overlay-geometry.d.ts +7 -0
  354. package/dist/symbolic-overlay-geometry.d.ts.map +1 -0
  355. package/dist/symbolic-overlay-geometry.js +43 -0
  356. package/dist/symbolic-overlay-geometry.js.map +1 -0
  357. package/dist/symbolic-overlay-pipelines.d.ts +24 -36
  358. package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
  359. package/dist/symbolic-overlay-pipelines.js +175 -182
  360. package/dist/symbolic-overlay-pipelines.js.map +1 -1
  361. package/dist/symbolic-text-atlas.d.ts +21 -0
  362. package/dist/symbolic-text-atlas.d.ts.map +1 -1
  363. package/dist/symbolic-text-atlas.js +29 -1
  364. package/dist/symbolic-text-atlas.js.map +1 -1
  365. package/dist/types.d.ts +20 -26
  366. package/dist/types.d.ts.map +1 -1
  367. package/dist/visual-enhancement.d.ts +23 -1
  368. package/dist/visual-enhancement.d.ts.map +1 -1
  369. package/dist/visual-enhancement.js +38 -12
  370. package/dist/visual-enhancement.js.map +1 -1
  371. package/package.json +3 -3
@@ -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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"}
package/dist/picker.d.ts CHANGED
@@ -5,6 +5,7 @@ import { WebGPUDevice } from './device.js';
5
5
  import type { Mesh, PickResult, PickClipState } from './types.js';
6
6
  import type { InstancedTemplateGPU } from './scene.js';
7
7
  import { type PointPickNode } from './point-picker.js';
8
+ import type { RelativeToEyeSnapshot } from './relative-to-eye.js';
8
9
  /** Point-pick sizing parameters forwarded to the GPU pipeline. */
9
10
  export interface PointPickSizing {
10
11
  sizeMode: 0 | 1 | 2;
@@ -19,6 +20,7 @@ export declare class Picker {
19
20
  private pipeline;
20
21
  private instancedPickPipeline;
21
22
  private instancedPickBindGroup;
23
+ private instancedUniformBuffer;
22
24
  private depthTexture;
23
25
  private colorTexture;
24
26
  private uniformBuffer;
@@ -30,6 +32,8 @@ export declare class Picker {
30
32
  private pointPicker;
31
33
  private readonly uniformScratch;
32
34
  private readonly clipFlags;
35
+ private readonly instancedUniformScratch;
36
+ private readonly instancedClipFlags;
33
37
  constructor(device: WebGPUDevice, width?: number, height?: number);
34
38
  /**
35
39
  * Pick object at screen coordinates.
@@ -48,13 +52,8 @@ export declare class Picker {
48
52
  * null if the device dies *during* the readback, which no entry guard can
49
53
  * pre-empt (see {@link isReadbackAbort}).
50
54
  */
51
- pick(x: number, y: number, width: number, height: number, meshes: Mesh[], viewProj: Float32Array, pointNodes?: ReadonlyArray<PointPickNode>, pointSizing?: PointPickSizing, instancedTemplates?: readonly InstancedTemplateGPU[], clip?: PickClipState | null): Promise<PickResult | null>;
55
+ pick(x: number, y: number, width: number, height: number, meshes: Mesh[], viewProj: Float32Array, pointNodes?: ReadonlyArray<PointPickNode>, pointSizing?: PointPickSizing, instancedTemplates?: readonly InstancedTemplateGPU[], clip?: PickClipState | null, pointRteSnapshot?: RelativeToEyeSnapshot): Promise<PickResult | null>;
52
56
  updateUniforms(viewProj: Float32Array, clip?: PickClipState | null): void;
53
- /**
54
- * Pack viewProj + the last render's section plane / crop box into the shared
55
- * pick uniform and upload it. Layout + flag bits live in {@link packPickUniforms}.
56
- */
57
- private writePickUniforms;
58
57
  /**
59
58
  * Rectangle pick: render the pick pass once, then read back every
60
59
  * texel inside `[x0, y0]..[x1, y1]` and dedupe the hit set. Returns
@@ -68,7 +67,7 @@ export declare class Picker {
68
67
  * Returns an empty set once `destroy()` has run — or if the device dies
69
68
  * mid-readback — for the same reasons {@link Picker.pick} returns null.
70
69
  */
71
- pickRect(x0: number, y0: number, x1: number, y1: number, width: number, height: number, meshes: Mesh[], viewProj: Float32Array, pointNodes?: ReadonlyArray<PointPickNode>, pointSizing?: PointPickSizing, instancedTemplates?: readonly InstancedTemplateGPU[], clip?: PickClipState | null): Promise<Set<number>>;
70
+ pickRect(x0: number, y0: number, x1: number, y1: number, width: number, height: number, meshes: Mesh[], viewProj: Float32Array, pointNodes?: ReadonlyArray<PointPickNode>, pointSizing?: PointPickSizing, instancedTemplates?: readonly InstancedTemplateGPU[], clip?: PickClipState | null, pointRteSnapshot?: RelativeToEyeSnapshot): Promise<Set<number>>;
72
71
  /**
73
72
  * Render the picker pass into `colorTexture` + `depthTexture` and
74
73
  * return the still-open command encoder so the caller can append a
@@ -1 +1 @@
1
- {"version":3,"file":"picker.d.ts","sourceRoot":"","sources":["../src/picker.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA8EtF,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAkB;IACnC,uFAAuF;IACvF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAA4B;IAI/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;gBAErE,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,MAAU,EAAE,MAAM,GAAE,MAAU;IAiQvE;;;;;;;;;;;;;;;;OAgBG;IACG,IAAI,CACR,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,EAAE,EACd,QAAQ,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,EACzC,WAAW,CAAC,EAAE,eAAe,EAC7B,kBAAkB,CAAC,EAAE,SAAS,oBAAoB,EAAE,EACpD,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAyF7B,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAIzE;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;;;;;;;;OAYG;IACG,QAAQ,CACZ,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,EAAE,EACd,QAAQ,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,EACzC,WAAW,CAAC,EAAE,eAAe,EAC7B,kBAAkB,CAAC,EAAE,SAAS,oBAAoB,EAAE,EACpD,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAsEvB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAmGtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAUhB"}
1
+ {"version":3,"file":"picker.d.ts","sourceRoot":"","sources":["../src/picker.ts"],"names":[],"mappings":"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"}