gps-plus-slam-app-framework 1.9.1 → 1.11.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 (267) hide show
  1. package/README.md +14 -14
  2. package/dist/{absolute-orientation-BAxc15J6.d.ts → absolute-orientation-Dj1One3y.d.ts} +1 -1
  3. package/dist/{accuracy-circles-DkWBkF5g.d.ts → accuracy-circles-BHz7yVIL.d.ts} +1 -1
  4. package/dist/{alignment-lerper-gD70k7Fq.d.ts → alignment-lerper-DAHicRON.d.ts} +0 -6
  5. package/dist/{app-selectors-BbAiCRUT.d.ts → app-selectors-DG0ZqaeI.d.ts} +23 -13
  6. package/dist/ar/ar-crash-isolation.d.ts +2 -0
  7. package/dist/ar/ar-crash-isolation.js +40 -0
  8. package/dist/ar/bresenham3d.d.ts +1 -1
  9. package/dist/ar/camera-blit-capture.d.ts +1 -1
  10. package/dist/ar/capability-checker.d.ts +1 -1
  11. package/dist/ar/capture-failure-tracker.d.ts +1 -1
  12. package/dist/ar/capture-motion-gate.d.ts +2 -0
  13. package/dist/{capture-motion-gate-_NdTSwKi.js → ar/capture-motion-gate.js} +25 -2
  14. package/dist/ar/chromium-camera-access-workaround.d.ts +1 -1
  15. package/dist/ar/chromium-camera-access-workaround.js +1 -1
  16. package/dist/ar/depth-grid-lookup.d.ts +1 -1
  17. package/dist/ar/depth-occluder.d.ts +1 -1
  18. package/dist/ar/depth-occluder.js +1 -1
  19. package/dist/ar/depth-sampler.d.ts +2 -2
  20. package/dist/ar/depth-sampler.js +16 -5
  21. package/dist/ar/depth-unprojection.d.ts +1 -1
  22. package/dist/ar/enable-gps-ar.d.ts +1 -1
  23. package/dist/ar/enable-gps-ar.js +2 -2
  24. package/dist/ar/image-capture.d.ts +1 -1
  25. package/dist/ar/image-capture.js +1 -1
  26. package/dist/ar/image-quality.d.ts +2 -2
  27. package/dist/ar/image-quality.js +159 -8
  28. package/dist/ar/index.d.ts +32 -30
  29. package/dist/ar/index.js +15 -14
  30. package/dist/ar/occlusion-mesh-worker.d.ts +2 -2
  31. package/dist/ar/occlusion-mesh-worker.js +1 -1
  32. package/dist/ar/occupancy-grid.d.ts +1 -1
  33. package/dist/ar/occupancy-grid.js +2 -2
  34. package/dist/ar/occupancy-mesher.d.ts +1 -1
  35. package/dist/ar/occupancy-mesher.js +4 -5
  36. package/dist/ar/qr/index.d.ts +11 -0
  37. package/dist/ar/qr/index.js +11 -0
  38. package/dist/ar/{planar-pnp.d.ts → qr/planar-pnp.d.ts} +1 -1
  39. package/dist/ar/{planar-pnp.js → qr/planar-pnp.js} +1 -1
  40. package/dist/ar/qr/qr-debug-view.d.ts +2 -0
  41. package/dist/ar/{qr-debug-view.js → qr/qr-debug-view.js} +2 -2
  42. package/dist/ar/{qr-derived-pose.d.ts → qr/qr-derived-pose.d.ts} +1 -1
  43. package/dist/ar/{qr-derived-pose.js → qr/qr-derived-pose.js} +2 -2
  44. package/dist/ar/{qr-detection-controller.d.ts → qr/qr-detection-controller.d.ts} +1 -1
  45. package/dist/ar/qr/qr-detection-controller.js +2 -0
  46. package/dist/ar/{qr-frontend.d.ts → qr/qr-frontend.d.ts} +1 -1
  47. package/dist/ar/{qr-frontend.js → qr/qr-frontend.js} +1 -1
  48. package/dist/ar/{qr-pose.d.ts → qr/qr-pose.d.ts} +1 -1
  49. package/dist/ar/{qr-pose.js → qr/qr-pose.js} +1 -1
  50. package/dist/ar/qr/qr-size-depth-context.d.ts +3 -0
  51. package/dist/ar/{qr-size-depth-context.js → qr/qr-size-depth-context.js} +4 -4
  52. package/dist/ar/{qr-size-measurer.d.ts → qr/qr-size-measurer.d.ts} +1 -1
  53. package/dist/ar/qr/qr-size-measurer.js +2 -0
  54. package/dist/ar/replay-scene.d.ts +1 -1
  55. package/dist/ar/replay-scene.js +15 -13
  56. package/dist/ar/scene-node-names.d.ts +1 -1
  57. package/dist/ar/webxr-nue-basis.d.ts +1 -1
  58. package/dist/ar/webxr-session.d.ts +4 -4
  59. package/dist/ar/webxr-session.js +2 -2
  60. package/dist/ar/xr-error-handler.d.ts +1 -1
  61. package/dist/ar/xr-frame-loop.d.ts +1 -1
  62. package/dist/ar/xr-frame-loop.js +1 -1
  63. package/dist/ar-crash-isolation-DlXCGzMf.d.ts +52 -0
  64. package/dist/{ar-types-Cc5yvBwn.d.ts → ar-types-D6PYS4bc.d.ts} +16 -1
  65. package/dist/{ar-world-group-alignment-Cfg0trC3.d.ts → ar-world-group-alignment-BdS_h8Nf.d.ts} +2 -2
  66. package/dist/{capability-checker-BTTpygvZ.d.ts → capability-checker-BZ3_x1YL.d.ts} +1 -1
  67. package/dist/capture-motion-gate-CPwLekNf.d.ts +120 -0
  68. package/dist/{chromium-camera-access-workaround-C6yJLXz9.d.ts → chromium-camera-access-workaround-BHR4clTE.d.ts} +1 -1
  69. package/dist/core/index.d.ts +1 -1
  70. package/dist/{create-slam-app-store-D1QSMuKu.d.ts → create-slam-app-store-DFm5K9Ob.d.ts} +15 -6
  71. package/dist/{create-slam-app-store-DXiAnJwR.js → create-slam-app-store-oK9bnqyI.js} +10 -8
  72. package/dist/{depth-grid-lookup-D5atpNZ3.d.ts → depth-grid-lookup-CCuzlqUo.d.ts} +1 -1
  73. package/dist/{depth-sampler-CwObAwEA.d.ts → depth-sampler-CS2jAFw4.d.ts} +15 -5
  74. package/dist/{depth-unprojection-DRdBU90S.d.ts → depth-unprojection-ET3Gwedf.d.ts} +1 -1
  75. package/dist/device-orientation-cache-j-kLP8he.js +20 -0
  76. package/dist/{enable-gps-ar-BBtRO2FJ.d.ts → enable-gps-ar-D_xEHzh5.d.ts} +9 -4
  77. package/dist/{file-system-utils-DueXHxo9.d.ts → file-system-utils-BHI0rXr9.d.ts} +1 -1
  78. package/dist/{frame-conversions-DDcNHkTb.d.ts → frame-conversions-CH7E2Iv_.d.ts} +1 -1
  79. package/dist/{fused-path-C5pp0PJU.d.ts → fused-path-DOKzVMiO.d.ts} +1 -1
  80. package/dist/geo/h3-proximity.d.ts +1 -1
  81. package/dist/geo/h3-proximity.js +1 -1
  82. package/dist/geo/index.d.ts +1 -1
  83. package/dist/{geodesic-angle-BTldfFgs.js → geodesic-angle-CZ_Ow90I.js} +2 -2
  84. package/dist/{gps-CDKDQokE.d.ts → gps-CnhYrJCa.d.ts} +8 -1
  85. package/dist/{gps-anchor-CEjGqEVD.d.ts → gps-anchor-BaqyRsPC.d.ts} +14 -4
  86. package/dist/{gps-ar-pose-sampler-DEGNk2CI.d.ts → gps-ar-pose-sampler-BuuUuK-D.d.ts} +1 -1
  87. package/dist/{gps-event-coordinator-BWpgBrHq.d.ts → gps-event-coordinator-Cruoe5I-.d.ts} +16 -29
  88. package/dist/{gps-event-markers-Di2nBzx-.d.ts → gps-event-markers-y2b2aVl6.d.ts} +35 -1
  89. package/dist/{h3-proximity-D0GTHQmr.d.ts → h3-proximity-BaAulrnM.d.ts} +1 -1
  90. package/dist/{image-capture-Bp6Pd4Md.d.ts → image-capture-BevgKpoO.d.ts} +6 -6
  91. package/dist/{image-capture-DVcuqMtX.js → image-capture-C4DwxC10.js} +12 -10
  92. package/dist/{image-quality-BMx2ko9-.d.ts → image-quality--HLuyJ2r.d.ts} +44 -2
  93. package/dist/{index-cCQWuYqy.d.ts → index-BWVwd9Zw.d.ts} +10 -74
  94. package/dist/{index-B6iBnO_K.d.ts → index-ClmnNJ6-.d.ts} +1 -1
  95. package/dist/index-Dxb6ATNK.d.ts +64 -0
  96. package/dist/index.d.ts +79 -79
  97. package/dist/index.js +26 -24
  98. package/dist/{leaflet-map-overlay-CBWPvaX9.js → leaflet-map-overlay-CTcTVmL1.js} +1 -1
  99. package/dist/{leaflet-map-overlay-C8GS4cUy.d.ts → leaflet-map-overlay-CksetpTt.d.ts} +1 -1
  100. package/dist/{map-data-CUnTzRIC.d.ts → map-data-D8cCqpOM.d.ts} +3 -3
  101. package/dist/{map-data-1tF5gcYV.js → map-data-DkhsYDGM.js} +1 -1
  102. package/dist/{map-overlay-draw-6WJeq0Kg.d.ts → map-overlay-draw-Cy-klqoA.d.ts} +1 -1
  103. package/dist/median-DDBrZGP0.js +44 -0
  104. package/dist/{null-storage-backend-B1-jlpin.d.ts → null-storage-backend-DXXuwG8T.d.ts} +2 -2
  105. package/dist/{occlusion-mesh-kXCQ2FM1.d.ts → occlusion-mesh-BWe2PrVi.d.ts} +23 -12
  106. package/dist/{occupancy-grid-BV7RhB7I.d.ts → occupancy-grid-CYBdmMOo.d.ts} +3 -3
  107. package/dist/{occupancy-mesher-C2ecWhNp.d.ts → occupancy-mesher-B4Bv4BTk.d.ts} +4 -9
  108. package/dist/{opfs-storage-backend-D6Z03fML.d.ts → opfs-storage-backend-D1ZpeNEL.d.ts} +2 -2
  109. package/dist/{persistence-middleware-CG-t08X4.d.ts → persistence-middleware-Cun4aF5M.d.ts} +13 -3
  110. package/dist/{planar-pnp-D7bc_rLX.d.ts → planar-pnp-ByxwDEyM.d.ts} +2 -2
  111. package/dist/{ar-BqCudtqE.js → qr-CTp5xI83.js} +24 -34
  112. package/dist/{qr-debug-view-BJooqbiP.d.ts → qr-debug-view-CGlITU09.d.ts} +2 -2
  113. package/dist/{qr-derived-pose-BwNWn8oV.d.ts → qr-derived-pose-DZPxZd9C.d.ts} +3 -3
  114. package/dist/{qr-detected-slice-TzVb8bij.d.ts → qr-detected-slice-mfyxD2-M.d.ts} +9 -8
  115. package/dist/{qr-detection-controller-Bo4XfQTP.d.ts → qr-detection-controller-C5NII-vs.d.ts} +4 -4
  116. package/dist/{qr-detection-controller-B-tLVd-S.js → qr-detection-controller-DXc1yHRf.js} +3 -3
  117. package/dist/{qr-frontend-BPURlh3S.d.ts → qr-frontend-QzKZSqB-.d.ts} +2 -2
  118. package/dist/{qr-pose-y3vaEd6x.d.ts → qr-pose-21fRDcFO.d.ts} +1 -1
  119. package/dist/{qr-pose-aggregation-DBiaLW0O.js → qr-pose-aggregation-Cp0Mtg_j.js} +7 -12
  120. package/dist/{qr-pose-aggregation-CypnmjA-.d.ts → qr-pose-aggregation-mABSN0AW.d.ts} +2 -2
  121. package/dist/{qr-size-depth-context-apAOmbrZ.d.ts → qr-size-depth-context-CMDv6T29.d.ts} +3 -3
  122. package/dist/{qr-size-measurer-DxiMqRUw.d.ts → qr-size-measurer-rVFf4AdM.d.ts} +5 -5
  123. package/dist/{qr-size-measurer-DLb33geH.js → qr-size-measurer-zZB9S1va.js} +9 -15
  124. package/dist/{recording-replayer-BJ8Lf0QY.d.ts → recording-replayer-qT2EM1Qs.d.ts} +2 -2
  125. package/dist/{recording-slice-BW8SiLo1.d.ts → recording-slice-DXw5-UvO.d.ts} +10 -5
  126. package/dist/{replay-engine-DmCAc7WM.d.ts → replay-engine-B1H_kLhK.d.ts} +1 -1
  127. package/dist/{replay-scene-zJ8SFDjE.d.ts → replay-scene-BJeO36YT.d.ts} +12 -5
  128. package/dist/sensors/absolute-orientation.d.ts +1 -1
  129. package/dist/sensors/absolute-orientation.js +1 -1
  130. package/dist/sensors/gps-error-handler.d.ts +1 -1
  131. package/dist/sensors/gps.d.ts +1 -1
  132. package/dist/sensors/gps.js +10 -8
  133. package/dist/sensors/index.d.ts +3 -3
  134. package/dist/sensors/index.js +1 -1
  135. package/dist/sensors/permission-checker.js +71 -40
  136. package/dist/{session-disposers-BPrMplIC.js → session-disposers-B7hUN90w.js} +1 -1
  137. package/dist/state/app-selectors.d.ts +1 -1
  138. package/dist/state/combined-root-state.d.ts +1 -1
  139. package/dist/state/create-slam-app-store.d.ts +1 -1
  140. package/dist/state/create-slam-app-store.js +1 -1
  141. package/dist/state/gps-ar-pose-sampler.d.ts +2 -3
  142. package/dist/state/gps-ar-pose-sampler.js +1 -1
  143. package/dist/state/gps-event-coordinator.d.ts +2 -1
  144. package/dist/state/gps-event-coordinator.js +4 -46
  145. package/dist/state/index.d.ts +19 -20
  146. package/dist/state/index.js +6 -5
  147. package/dist/state/persistence-middleware.d.ts +2 -2
  148. package/dist/state/persistence-middleware.js +24 -15
  149. package/dist/state/qr-detected-slice.d.ts +3 -3
  150. package/dist/state/qr-detected-slice.js +11 -15
  151. package/dist/state/recording-replayer.d.ts +2 -2
  152. package/dist/state/recording-replayer.js +1 -1
  153. package/dist/state/recording-slice.d.ts +1 -1
  154. package/dist/state/replay-engine.d.ts +1 -1
  155. package/dist/state/store-subscribers.d.ts +2 -2
  156. package/dist/state/store-subscribers.js +23 -6
  157. package/dist/state/subscribe-to-selector.d.ts +1 -1
  158. package/dist/state/tracking-quality.d.ts +1 -1
  159. package/dist/state/tracking-quality.js +14 -11
  160. package/dist/state/tracking-slice.d.ts +1 -1
  161. package/dist/{state-BeKvn4B-.js → state-CDF5LvsO.js} +2 -4
  162. package/dist/storage/file-system-utils.d.ts +1 -1
  163. package/dist/storage/file-system-utils.js +1 -1
  164. package/dist/storage/index.d.ts +8 -8
  165. package/dist/storage/null-storage-backend.d.ts +1 -1
  166. package/dist/storage/opfs-storage-backend.d.ts +1 -1
  167. package/dist/storage/opfs-storage.d.ts +1 -1
  168. package/dist/storage/storage-backend.d.ts +1 -1
  169. package/dist/storage/zip-coverage-embed.d.ts +1 -1
  170. package/dist/storage/zip-coverage-embed.js +1 -1
  171. package/dist/storage/zip-export.d.ts +1 -1
  172. package/dist/storage/zip-export.js +10 -4
  173. package/dist/storage/zip-reader.d.ts +1 -1
  174. package/dist/{storage-backend-sEtmM4yW.d.ts → storage-backend-BX7egQKi.d.ts} +1 -1
  175. package/dist/{store-subscribers-DJUErW-o.d.ts → store-subscribers-CWHToX6N.d.ts} +2 -2
  176. package/dist/{subscribe-to-selector-dQV8SpsO.d.ts → subscribe-to-selector-j-eOYybQ.d.ts} +1 -1
  177. package/dist/test-utils/browser-mocks.d.ts +1 -1
  178. package/dist/test-utils/zip-round-trip-helpers.d.ts +1 -1
  179. package/dist/{tracking-slice-DMkHlbny.d.ts → tracking-slice-BAbcZK-Y.d.ts} +3 -2
  180. package/dist/types/ar-types.d.ts +2 -2
  181. package/dist/types/ar-types.js +31 -1
  182. package/dist/types/geo-types.d.ts +1 -1
  183. package/dist/types/index.d.ts +3 -3
  184. package/dist/types/index.js +2 -1
  185. package/dist/utils/concurrency.d.ts +1 -1
  186. package/dist/utils/failure-tracker.d.ts +1 -1
  187. package/dist/utils/format-file-size.d.ts +1 -1
  188. package/dist/utils/fused-path.d.ts +1 -1
  189. package/dist/utils/fused-path.js +1 -1
  190. package/dist/utils/index.d.ts +7 -7
  191. package/dist/utils/index.js +1 -1
  192. package/dist/utils/list-formatter.d.ts +1 -1
  193. package/dist/utils/logger.d.ts +1 -1
  194. package/dist/utils/logger.js +30 -20
  195. package/dist/visualization/accuracy-circles.d.ts +1 -1
  196. package/dist/visualization/accuracy-circles.js +1 -1
  197. package/dist/visualization/alignment-lerper.d.ts +1 -1
  198. package/dist/visualization/alignment-lerper.js +20 -5
  199. package/dist/visualization/ar-world-group-alignment.d.ts +1 -1
  200. package/dist/visualization/ar-world-group-alignment.js +2 -2
  201. package/dist/visualization/camera-follower.d.ts +1 -1
  202. package/dist/visualization/css3d-renderer-manager.d.ts +1 -1
  203. package/dist/visualization/frame-conversions.d.ts +1 -1
  204. package/dist/visualization/frustum-visibility.d.ts +1 -1
  205. package/dist/visualization/gps-anchor.d.ts +1 -1
  206. package/dist/visualization/gps-anchor.js +44 -19
  207. package/dist/visualization/gps-compass-cubes.d.ts +1 -1
  208. package/dist/visualization/gps-event-markers.d.ts +2 -2
  209. package/dist/visualization/gps-event-markers.js +27 -6
  210. package/dist/visualization/hit-test-reticle.d.ts +1 -1
  211. package/dist/visualization/index.d.ts +19 -20
  212. package/dist/visualization/index.js +4 -5
  213. package/dist/visualization/leaflet-map-overlay.d.ts +1 -1
  214. package/dist/visualization/leaflet-map-overlay.js +1 -1
  215. package/dist/visualization/lerp-utils.d.ts +1 -1
  216. package/dist/visualization/map-data.d.ts +1 -1
  217. package/dist/visualization/map-data.js +1 -1
  218. package/dist/visualization/map-overlay-draw.d.ts +1 -1
  219. package/dist/visualization/occluder-mesh-driver.d.ts +2 -2
  220. package/dist/visualization/occluder-mesh-driver.js +1 -1
  221. package/dist/visualization/occlusion-mesh.d.ts +2 -2
  222. package/dist/visualization/occlusion-mesh.js +29 -14
  223. package/dist/visualization/three-dispose.d.ts +1 -1
  224. package/dist/visualization/vis-colors.d.ts +1 -1
  225. package/dist/{webxr-session-BWCpGd-2.d.ts → webxr-session-DefwObIu.d.ts} +143 -193
  226. package/dist/{webxr-session-BCP2XK7k.js → webxr-session-OyR3YbTq.js} +154 -284
  227. package/dist/{xr-frame-loop-DX3JPpAU.d.ts → xr-frame-loop-BiZvgqP7.d.ts} +1 -1
  228. package/dist/{zip-coverage-embed-ncVbaZAz.d.ts → zip-coverage-embed-CyoX7XL7.d.ts} +1 -1
  229. package/package.json +5 -3
  230. package/dist/ar/qr-debug-view.d.ts +0 -2
  231. package/dist/ar/qr-detection-controller.js +0 -2
  232. package/dist/ar/qr-size-depth-context.d.ts +0 -3
  233. package/dist/ar/qr-size-measurer.js +0 -2
  234. package/dist/capture-motion-gate-BGoAMkmf.d.ts +0 -24
  235. package/dist/map-overlay-BCQgvIgU.d.ts +0 -153
  236. package/dist/recording-options-DYKWVI93.d.ts +0 -693
  237. package/dist/state/recording-options.d.ts +0 -2
  238. package/dist/state/recording-options.js +0 -591
  239. package/dist/visualization/map-overlay.d.ts +0 -2
  240. package/dist/visualization/map-overlay.js +0 -241
  241. /package/dist/{bresenham3d-DGc4nIb-.d.ts → bresenham3d-D-t9i_b5.d.ts} +0 -0
  242. /package/dist/{camera-blit-capture-BimSdyih.d.ts → camera-blit-capture-BlC-arRb.d.ts} +0 -0
  243. /package/dist/{camera-follower-DfBm2J5i.d.ts → camera-follower-CO_ibF2o.d.ts} +0 -0
  244. /package/dist/{capture-failure-tracker-_BVfhpxv.d.ts → capture-failure-tracker-BAUKjtXU.d.ts} +0 -0
  245. /package/dist/{cell-key-DIB4rOTV.js → cell-key-Bj-eYTLA.js} +0 -0
  246. /package/dist/{concurrency-DPeGBH0X.d.ts → concurrency-DW0jQo3G.d.ts} +0 -0
  247. /package/dist/{css3d-renderer-manager-CPpVtvgs.d.ts → css3d-renderer-manager-CJjHtCMT.d.ts} +0 -0
  248. /package/dist/{failure-tracker-CeKf5HIc.d.ts → failure-tracker-B7fzPfZo.d.ts} +0 -0
  249. /package/dist/{format-file-size-DxN-EBLc.d.ts → format-file-size-Da8rZgfs.d.ts} +0 -0
  250. /package/dist/{frustum-visibility-CokkgS_i.d.ts → frustum-visibility-COPfzruF.d.ts} +0 -0
  251. /package/dist/{geo-types-DrGVu8nS.d.ts → geo-types-BfDK8kJu.d.ts} +0 -0
  252. /package/dist/{gps-compass-cubes-1mooS3BS.d.ts → gps-compass-cubes-CT3TWctJ.d.ts} +0 -0
  253. /package/dist/{gps-error-handler-C34GQuTu.d.ts → gps-error-handler-DjVuLXve.d.ts} +0 -0
  254. /package/dist/{hit-test-reticle-CaQbrhbk.d.ts → hit-test-reticle-DhnCMOsc.d.ts} +0 -0
  255. /package/dist/{index-DXPVzOpP.d.ts → index-CjxbDm8W.d.ts} +0 -0
  256. /package/dist/{index-D74JTX4I.d.ts → index-Nr3qg4IH.d.ts} +0 -0
  257. /package/dist/{lerp-utils-Qs8OhumS.d.ts → lerp-utils-bwMwVCpU.d.ts} +0 -0
  258. /package/dist/{list-formatter-DLFDnS70.d.ts → list-formatter-1ttG18MQ.d.ts} +0 -0
  259. /package/dist/{logger-CqTd5Kpk.d.ts → logger-B4StJUDb.d.ts} +0 -0
  260. /package/dist/{opfs-storage-CTkxvxN4.d.ts → opfs-storage-S_odkCk1.d.ts} +0 -0
  261. /package/dist/{scene-node-names-CGb-ylBd.d.ts → scene-node-names-DWzhE7Ro.d.ts} +0 -0
  262. /package/dist/{three-dispose-BMOAmPhb.d.ts → three-dispose-C3mnKQR5.d.ts} +0 -0
  263. /package/dist/{vis-colors-C7HI0u9_.d.ts → vis-colors-CoSpbZEO.d.ts} +0 -0
  264. /package/dist/{webxr-nue-basis-CaCnYxuq.d.ts → webxr-nue-basis-C3vTqkE2.d.ts} +0 -0
  265. /package/dist/{xr-error-handler-uVGDu9IX.d.ts → xr-error-handler-D9y5r8ok.d.ts} +0 -0
  266. /package/dist/{zip-export-CtiUnAlJ.d.ts → zip-export-CuBimX1J.d.ts} +0 -0
  267. /package/dist/{zip-reader-BzENzMH6.d.ts → zip-reader-BHc_b_iA.d.ts} +0 -0
@@ -1,5 +1,35 @@
1
+ import { n as lowerMedian } from "../median-DDBrZGP0.js";
1
2
  //#region ../src/ar/image-quality.ts
2
3
  /**
4
+ * Image-quality metrics + the drop/retry verdict policy for the image-content
5
+ * capture gate (blur + blackness), the increment layered ON TOP of the motion
6
+ * gate (`capture-motion-gate.ts`).
7
+ *
8
+ * Everything here is **pure and deterministic** — plain typed-array math plus a
9
+ * tiny rolling-history class. There is **no DOM and no Web Worker** in this
10
+ * module: it is fully unit-testable with synthetic buffers, and the recorder's
11
+ * `image-quality.worker.ts` is a thin shell that decodes a frame to pixels and
12
+ * calls into these functions. Keeping the verdict/history policy here (rather
13
+ * than inside the worker, as the original plan §8 sketched) honours the project
14
+ * rule that no untested logic ships: the worker is the device layer and is not
15
+ * unit-built, so the median/threshold decision must live where tests can pin it.
16
+ *
17
+ * Metrics:
18
+ * - {@link sharpnessScore} — variance of the Laplacian over a grayscale buffer
19
+ * (the standard Pech-Pacheco focus measure). Scene-dependent in absolute
20
+ * terms, so the gate compares it RELATIVE to a rolling median (§5).
21
+ * - {@link meanLuminance} — mean Rec. 601 luma of an RGBA buffer. Near-zero ⇒
22
+ * black/empty frame; an absolute cutoff is safe because "black is black"
23
+ * regardless of scene texture (§5).
24
+ *
25
+ * @see GpsPlusSlamJs_Docs/docs/2026-06-24-1057-image-quality-gate-plan.md
26
+ * @see ./capture-motion-gate.ts — the motion gate this builds on (same shape:
27
+ * a shared config type + a small stateful window + a pure decision).
28
+ */
29
+ /** All valid {@link BlurMetricId} values, the default (VoL) first — for
30
+ * consumer-side validation of persisted configs. */
31
+ const BLUR_METRIC_IDS = ["variance-of-laplacian", "high-frequency-energy-ratio"];
32
+ /**
3
33
  * Default image-quality configuration. **Disabled by default** (plan §10): the
4
34
  * relative blur threshold is unvalidated, and a mis-tuned gate silently dropping
5
35
  * good frames for every consumer app is worse than the motion gate's low-risk
@@ -12,7 +42,8 @@ const DEFAULT_QUALITY_FILTER = {
12
42
  enabled: false,
13
43
  blurRelativeThreshold: .5,
14
44
  minMeanLuminance: 10,
15
- maxWaitMs: 4e3
45
+ maxWaitMs: 4e3,
46
+ blurMetric: "variance-of-laplacian"
16
47
  };
17
48
  /** Default number of recent (non-black) sharpness scores the gate keeps. */
18
49
  const DEFAULT_SHARPNESS_HISTORY_SIZE = 15;
@@ -93,12 +124,132 @@ function meanLuminance(rgba) {
93
124
  return sum / pixels;
94
125
  }
95
126
  /**
96
- * Lower-middle median (matches the project's other `medianOf` helpers, e.g.
97
- * `qr-pose-aggregation.ts`). Caller guarantees a non-empty array.
127
+ * Frequency-domain focus measure: the fraction of non-DC spectral energy at
128
+ * normalized radial frequency ≥ `cutoff` (default 0.3), computed by FFT over
129
+ * the centered largest power-of-two crop (needs ≥ 8×8, else returns 0).
130
+ * In [0, 1]; higher ⇒ sharper. Unlike {@link sharpnessScore} it is invariant
131
+ * to brightness shift AND contrast scale (it is a ratio). Ported from the
132
+ * investigation benchmark (2026-07-12 toggle plan) where it won the
133
+ * "sharp vs degraded" boundary (AUC 0.838 vs 0.750).
134
+ *
135
+ * Defensive contract identical to {@link sharpnessScore}: non-integer or
136
+ * < 3×3 dims, or a buffer shorter than `width·height`, return 0.
137
+ */
138
+ function highFrequencyEnergyRatio(gray, width, height, cutoff = .3) {
139
+ if (!hasFftCrop(gray, width, height)) return 0;
140
+ const pw = largestPow2AtMost(width);
141
+ const ph = largestPow2AtMost(height);
142
+ const offX = Math.floor((width - pw) / 2);
143
+ const offY = Math.floor((height - ph) / 2);
144
+ const re = new Float64Array(pw * ph);
145
+ const im = new Float64Array(pw * ph);
146
+ for (let y = 0; y < ph; y++) {
147
+ const srcRow = (y + offY) * width + offX;
148
+ for (let x = 0; x < pw; x++) re[y * pw + x] = gray[srcRow + x];
149
+ }
150
+ fft2dInPlace(re, im, pw, ph);
151
+ return highEnergyFraction(re, im, pw, ph, cutoff);
152
+ }
153
+ /** Same input guard as sharpnessScore, plus the FFT's ≥ 8×8 pow2-crop need. */
154
+ function hasFftCrop(gray, width, height) {
155
+ return Number.isInteger(width) && Number.isInteger(height) && width >= 8 && height >= 8 && gray.length >= width * height && largestPow2AtMost(width) >= 8 && largestPow2AtMost(height) >= 8;
156
+ }
157
+ /** Largest power of two ≤ n (n ≥ 1). */
158
+ function largestPow2AtMost(n) {
159
+ let p = 1;
160
+ while (p * 2 <= n) p *= 2;
161
+ return p;
162
+ }
163
+ /**
164
+ * In-place iterative radix-2 FFT (decimation-in-time). `re`/`im` length must
165
+ * be a power of two (guaranteed by the caller's crop).
166
+ */
167
+ function fftInPlace(re, im) {
168
+ const n = re.length;
169
+ for (let i = 1, j = 0; i < n; i++) {
170
+ let bit = n >> 1;
171
+ for (; j & bit; bit >>= 1) j ^= bit;
172
+ j ^= bit;
173
+ if (i < j) {
174
+ const tr = re[i];
175
+ re[i] = re[j];
176
+ re[j] = tr;
177
+ const ti = im[i];
178
+ im[i] = im[j];
179
+ im[j] = ti;
180
+ }
181
+ }
182
+ for (let len = 2; len <= n; len <<= 1) {
183
+ const ang = -2 * Math.PI / len;
184
+ const wRe = Math.cos(ang);
185
+ const wIm = Math.sin(ang);
186
+ for (let start = 0; start < n; start += len) {
187
+ let curRe = 1;
188
+ let curIm = 0;
189
+ for (let k = 0; k < len / 2; k++) {
190
+ const a = start + k;
191
+ const b = a + len / 2;
192
+ const vRe = re[b] * curRe - im[b] * curIm;
193
+ const vIm = re[b] * curIm + im[b] * curRe;
194
+ re[b] = re[a] - vRe;
195
+ im[b] = im[a] - vIm;
196
+ re[a] = re[a] + vRe;
197
+ im[a] = im[a] + vIm;
198
+ const nextRe = curRe * wRe - curIm * wIm;
199
+ curIm = curRe * wIm + curIm * wRe;
200
+ curRe = nextRe;
201
+ }
202
+ }
203
+ }
204
+ }
205
+ /** 2D FFT over a pw×ph buffer: rows in place, then columns via scratch. */
206
+ function fft2dInPlace(re, im, pw, ph) {
207
+ for (let y = 0; y < ph; y++) fftInPlace(re.subarray(y * pw, (y + 1) * pw), im.subarray(y * pw, (y + 1) * pw));
208
+ const colRe = new Float64Array(ph);
209
+ const colIm = new Float64Array(ph);
210
+ for (let x = 0; x < pw; x++) {
211
+ for (let y = 0; y < ph; y++) {
212
+ colRe[y] = re[y * pw + x];
213
+ colIm[y] = im[y * pw + x];
214
+ }
215
+ fftInPlace(colRe, colIm);
216
+ for (let y = 0; y < ph; y++) {
217
+ re[y * pw + x] = colRe[y];
218
+ im[y * pw + x] = colIm[y];
219
+ }
220
+ }
221
+ }
222
+ /**
223
+ * Fraction of non-DC spectral energy at normalized radial frequency ≥
224
+ * `cutoff` (radius normalized so the diagonal Nyquist bin is exactly 1).
225
+ * The DC bin carries brightness, not sharpness — excluded, which is what
226
+ * makes the ratio exposure-invariant.
227
+ */
228
+ function highEnergyFraction(re, im, pw, ph, cutoff) {
229
+ let total = 0;
230
+ let high = 0;
231
+ for (let ky = 0; ky < ph; ky++) {
232
+ const ny = (ky <= ph / 2 ? ky : ky - ph) / (ph / 2);
233
+ for (let kx = 0; kx < pw; kx++) {
234
+ if (kx === 0 && ky === 0) continue;
235
+ const nx = (kx <= pw / 2 ? kx : kx - pw) / (pw / 2);
236
+ const i = ky * pw + kx;
237
+ const energy = re[i] * re[i] + im[i] * im[i];
238
+ total += energy;
239
+ if (Math.hypot(nx, ny) / Math.SQRT2 >= cutoff) high += energy;
240
+ }
241
+ }
242
+ return total > 0 ? high / total : 0;
243
+ }
244
+ /**
245
+ * Resolve a {@link BlurMetricId} to its scoring function. `undefined` or an
246
+ * unknown id (e.g. from a persisted config written by a newer/older app
247
+ * version) resolves to {@link sharpnessScore} — the pre-toggle behavior.
248
+ * The (untestable) recorder worker calls this so the mapping stays here,
249
+ * where tests can pin it.
98
250
  */
99
- function medianOf(values) {
100
- const sorted = [...values].sort((a, b) => a - b);
101
- return sorted[Math.floor((sorted.length - 1) / 2)];
251
+ function blurMetricScorer(metric) {
252
+ return metric === "high-frequency-energy-ratio" ? highFrequencyEnergyRatio : sharpnessScore;
102
253
  }
103
254
  /**
104
255
  * The self-calibrating blur+blackness verdict, with the rolling sharpness
@@ -140,7 +291,7 @@ var ImageQualityGate = class {
140
291
  };
141
292
  let blurry = false;
142
293
  if (this.history.length >= this.minSamples) {
143
- if (sharpness < config.blurRelativeThreshold * medianOf(this.history)) blurry = true;
294
+ if (sharpness < config.blurRelativeThreshold * lowerMedian(this.history)) blurry = true;
144
295
  }
145
296
  this.history.push(sharpness);
146
297
  if (this.history.length > this.historySize) this.history.shift();
@@ -166,4 +317,4 @@ var ImageQualityGate = class {
166
317
  }
167
318
  };
168
319
  //#endregion
169
- export { DEFAULT_QUALITY_FILTER, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, ImageQualityGate, meanLuminance, rgbaToGrayscale, sharpnessScore };
320
+ export { BLUR_METRIC_IDS, DEFAULT_QUALITY_FILTER, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, ImageQualityGate, blurMetricScorer, highFrequencyEnergyRatio, meanLuminance, rgbaToGrayscale, sharpnessScore };
@@ -1,32 +1,34 @@
1
- import { r as bresenham3d, t as GridCell } from "../bresenham3d-DGc4nIb-.js";
2
- import { a as computeCaptureSize, i as computeAspectFitSize, n as CameraBlitCaptureConfig, r as DEFAULT_BLIT_CONFIG, t as CameraBlitCapture } from "../camera-blit-capture-BimSdyih.js";
3
- import { i as isFullySupported, n as CapabilitySupport, r as capabilityMessage, t as CapabilityMessageOptions } from "../capability-checker-BTTpygvZ.js";
4
- import { a as createCaptureFailureTracker, i as DEFAULT_CAPTURE_TRACKER_CONFIG, n as CaptureFailureTracker, r as CaptureFailureTrackerConfig, t as CAPTURE_FAILURE_WARNING } from "../capture-failure-tracker-_BVfhpxv.js";
5
- import { a as applyChromiumProjectionLayerWorkaround, i as ChromiumProjectionLayerWorkaroundResult, n as BASELAYER_WINDOW_MIN, o as needsBaseLayerPersistence, r as ChromeVersion, s as parseChromeVersion, t as BASELAYER_WINDOW_MAX } from "../chromium-camera-access-workaround-C6yJLXz9.js";
6
- import { n as createDepthGridLookup, t as DepthGridLookup } from "../depth-grid-lookup-D5atpNZ3.js";
7
- import { a as wrapXRDepthInfo, i as DepthSamplerConfig, n as DepthSampler, r as DepthSamplerCallbacks, t as DepthInfo } from "../depth-sampler-CwObAwEA.js";
8
- import { n as createDepthUnprojector, r as unprojectDepthPoint, t as DepthUnprojector } from "../depth-unprojection-DRdBU90S.js";
9
- import { a as QualityFilterConfig, c as meanLuminance, i as ImageQualityGate, l as rgbaToGrayscale, n as DEFAULT_SHARPNESS_HISTORY_SIZE, o as QualityRejectReason, r as DEFAULT_SHARPNESS_MIN_SAMPLES, s as QualityVerdict, t as DEFAULT_QUALITY_FILTER, u as sharpnessScore } from "../image-quality-BMx2ko9-.js";
10
- import { a as ImageCaptureCallbacks, c as MIN_VALID_IMAGE_BYTES, i as FrameQualityVerdict, n as CapturedImage, o as ImageCaptureConfig, r as DEFAULT_CAPTURE_CONFIG, s as ImageCaptureManager, t as CapturedFrame } from "../image-capture-Bp6Pd4Md.js";
11
- import { _ as solveQrPose, a as QrPoseSolution, c as SolveQrPoseInput, d as intrinsicsFromProjection, f as invertPose, g as signedQuadArea, h as reprojectionErrorPx, i as Pose, l as buildObjectPoints, m as qrInCameraFromOpenCv, n as OpenCvPnpResult, o as QuadValidation, p as projectViewPoint, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics, u as composePose, v as transformPoint, y as validateQuad } from "../qr-pose-y3vaEd6x.js";
12
- import { a as QrFrontEnd, c as createBarcodeDetectorFrontEnd, i as QrDetection, n as BarcodeDetectorLike, o as RgbaImage, r as DetectedBarcodeLike, s as ToImageBitmapSource, t as BarcodeDetectorFrontEnd } from "../qr-frontend-BPURlh3S.js";
1
+ import { n as DEFAULT_AR_CRASH_ISOLATION, r as validateArCrashIsolationOptions, t as ArCrashIsolationOptions } from "../ar-crash-isolation-DlXCGzMf.js";
2
+ import { r as bresenham3d, t as GridCell } from "../bresenham3d-D-t9i_b5.js";
3
+ import { a as computeCaptureSize, i as computeAspectFitSize, n as CameraBlitCaptureConfig, r as DEFAULT_BLIT_CONFIG, t as CameraBlitCapture } from "../camera-blit-capture-BlC-arRb.js";
4
+ import { i as isFullySupported, n as CapabilitySupport, r as capabilityMessage, t as CapabilityMessageOptions } from "../capability-checker-BZ3_x1YL.js";
5
+ import { a as createCaptureFailureTracker, i as DEFAULT_CAPTURE_TRACKER_CONFIG, n as CaptureFailureTracker, r as CaptureFailureTrackerConfig, t as CAPTURE_FAILURE_WARNING } from "../capture-failure-tracker-BAUKjtXU.js";
6
+ import { a as applyChromiumProjectionLayerWorkaround, i as ChromiumProjectionLayerWorkaroundResult, n as BASELAYER_WINDOW_MIN, o as needsBaseLayerPersistence, r as ChromeVersion, s as parseChromeVersion, t as BASELAYER_WINDOW_MAX } from "../chromium-camera-access-workaround-BHR4clTE.js";
7
+ import { n as createDepthGridLookup, t as DepthGridLookup } from "../depth-grid-lookup-CCuzlqUo.js";
8
+ import { a as wrapXRDepthInfo, i as DepthSamplerConfig, n as DepthSampler, r as DepthSamplerCallbacks, t as DepthInfo } from "../depth-sampler-CS2jAFw4.js";
9
+ import { n as createDepthUnprojector, r as unprojectDepthPoint, t as DepthUnprojector } from "../depth-unprojection-ET3Gwedf.js";
10
+ import { a as DEFAULT_SHARPNESS_MIN_SAMPLES, c as QualityRejectReason, d as highFrequencyEnergyRatio, f as meanLuminance, i as DEFAULT_SHARPNESS_HISTORY_SIZE, l as QualityVerdict, m as sharpnessScore, n as BlurMetricId, o as ImageQualityGate, p as rgbaToGrayscale, r as DEFAULT_QUALITY_FILTER, s as QualityFilterConfig, t as BLUR_METRIC_IDS, u as blurMetricScorer } from "../image-quality--HLuyJ2r.js";
11
+ import { a as ImageCaptureCallbacks, c as MIN_VALID_IMAGE_BYTES, i as FrameQualityVerdict, n as CapturedImage, o as ImageCaptureConfig, r as DEFAULT_CAPTURE_CONFIG, s as ImageCaptureManager, t as CapturedFrame } from "../image-capture-BevgKpoO.js";
12
+ import { _ as solveQrPose, a as QrPoseSolution, c as SolveQrPoseInput, d as intrinsicsFromProjection, f as invertPose, g as signedQuadArea, h as reprojectionErrorPx, i as Pose, l as buildObjectPoints, m as qrInCameraFromOpenCv, n as OpenCvPnpResult, o as QuadValidation, p as projectViewPoint, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics, u as composePose, v as transformPoint, y as validateQuad } from "../qr-pose-21fRDcFO.js";
13
+ import { a as QrFrontEnd, c as createBarcodeDetectorFrontEnd, i as QrDetection, n as BarcodeDetectorLike, o as RgbaImage, r as DetectedBarcodeLike, s as ToImageBitmapSource, t as BarcodeDetectorFrontEnd } from "../qr-frontend-QzKZSqB-.js";
13
14
  import { i as acquireCameraTexture, n as RendererLike, r as XRCameraLike, t as CameraTextureResult } from "../xr-camera-texture-q0eIDSRg.js";
14
- import { $ as stopImageCapture, B as setImageQualityAnalyzer, C as getImageCaptureFrameCount, D as initAR, H as setSessionEndCallback, I as setCameraFrameCallback, J as startCameraFrameCapture, K as setTrackingStore, L as setDepthCaptureCallback, Q as stopDepthCapture, R as setFrameCallback, S as getDepthSampleCount, T as getScene, U as setTrackingCallbacks, W as setTrackingLostCallback, X as startImageCapture, Y as startDepthCapture, Z as stopCameraFrameCapture, _ as getCamera, b as getCurrentArPose, f as endARSession, g as getArWorldGroup, i as CameraFrameCaptureConfig, o as SessionEndInfo, s as SessionFeatureOptions, w as getLiveCss3dManager, x as getDepthInfoFromFrame, y as getCameraFrameCount, z as setImageCaptureCallback } from "../webxr-session-BWCpGd-2.js";
15
- import { a as EnableGpsArState, i as EnableGpsArResult, n as EnableGpsArController, o as EnableGpsArStatus, r as EnableGpsArDeps, s as createEnableGpsArController, t as EnableGpsArConfig } from "../enable-gps-ar-BBtRO2FJ.js";
15
+ import { A as startCameraFrameCapture, D as rebindTrackingStore, F as stopImageCapture, M as startImageCapture, N as stopCameraFrameCapture, P as stopDepthCapture, S as initAR, _ as getDepthInfoFromFrame, a as SessionFeatureOptions, b as getScene, g as getCurrentArPose, h as getCameraFrameCount, i as SessionEndInfo, j as startDepthCapture, m as getCamera, n as CameraFrameCaptureConfig, p as getArWorldGroup, t as ArSessionCallbacks, u as endARSession, v as getDepthSampleCount, y as getImageCaptureFrameCount } from "../webxr-session-DefwObIu.js";
16
+ import { a as EnableGpsArState, i as EnableGpsArResult, n as EnableGpsArController, o as EnableGpsArStatus, r as EnableGpsArDeps, s as createEnableGpsArController, t as EnableGpsArConfig } from "../enable-gps-ar-D_xEHzh5.js";
16
17
  import { r as registerFrameUpdate, t as FrameUpdate } from "../frame-loop-7GBMBu68.js";
17
- import { c as QrSizeAccumulatorOptions, d as QrSizeStatus, f as createQrSizeAccumulator, i as QrSizeMeasurer, l as QrSizeEstimate, n as QrSizeDepthContext, o as createQrSizeMeasurer, p as estimateQrSizeFromDepth, r as QrSizeMeasurement, s as QrSizeAccumulator, t as ImageSize, u as QrSizeObservation } from "../qr-size-measurer-DxiMqRUw.js";
18
- import { t as createQrSizeDepthContext } from "../qr-size-depth-context-apAOmbrZ.js";
19
- import { a as createIncrementalQrPlacement, c as deriveSolvedQrPose, i as RawQrObservation, l as solveQrPoseFromObservation, n as DerivedQrPlacement, o as deriveQrPlacement, r as IncrementalQrPlacement, s as deriveQrSizeM, t as DeriveQrPoseDeps } from "../qr-derived-pose-BwNWn8oV.js";
20
- import { n as createQrDebugView, t as QrDebugView } from "../qr-debug-view-BJooqbiP.js";
21
- import { a as createQrDetectionController, i as RawObservationSink, n as QrDetectionControllerDeps, r as QrScanStatus, t as QrDetectionController } from "../qr-detection-controller-Bo4XfQTP.js";
22
- import { a as QrPoseStability, c as aggregateQrPose, i as DEFAULT_ROTATION_INLIER_ANGLE_DEG, l as averageRotation, n as AverageRotationOptions, o as QrPoseStabilityOptions, r as AverageRotationResult, s as QrPoseStabilityStatus, t as AggregateQrPoseResult, u as evaluateQrPoseStability } from "../qr-pose-aggregation-CypnmjA-.js";
23
- import { A as QrGpsVoteInput, C as QrLevel, D as Enu, E as parseQrLevel, M as localPlaneToEnu, N as offsetGeo, O as METERS_PER_DEG_LAT, S as FetchQrLevelOptions, T as fetchQrLevel, _ as QrTrackingController, a as checkQrPlausibility, b as createQrTrackingController, c as QrDetectionScheduler, d as createQrDetectionScheduler, f as CameraFrameSource, g as QrSolvePoseInput, h as QrDetectionEvent, i as QrPlausibilityVerdict, j as buildQrGpsVotes, k as QrGeoPose, l as QrDetectionSchedulerConfig, m as CameraFrameSourceConfig, n as QrPlausibility, o as DetectionScheduler, p as CameraFrameSourceCallbacks, r as QrPlausibilityOptions, s as DetectionSchedulerConfig, t as OccupancySurface, u as createDetectionScheduler, v as QrTrackingControllerConfig, w as QrLevelValidationError, x as FetchLike, y as QrTrackingStatus } from "../index-cCQWuYqy.js";
24
- import { a as homographyFromCorrespondences, c as rotationToRodrigues, i as PoseCandidate, l as solveLinear, n as Mat3, o as ippePoseCandidates, r as PlanarPnpSquare, s as nearestRotation3x3, t as Homography } from "../planar-pnp-D7bc_rLX.js";
25
- import { n as OccupancyGridOptions, t as OccupancyGrid } from "../occupancy-grid-BV7RhB7I.js";
26
- import { a as meshOccupiedCells, i as OccupancyMeshResult, r as MeshOccupiedCellsOptions, t as Aabb } from "../occupancy-mesher-C2ecWhNp.js";
27
- import { i as registerXrFrameUpdate, n as XrFrameUpdate, t as XrFrameContext } from "../xr-frame-loop-DX3JPpAU.js";
28
- import { a as getCameraFollower, c as getReplayState, d as updateOrbitTarget, i as getAlignmentLerper, l as initReplayScene, n as ReplaySceneState, o as getCameraMode, r as disposeReplayScene, t as CameraMode, u as toggleCameraMode } from "../replay-scene-zJ8SFDjE.js";
29
- import { t as SCENE_NODE } from "../scene-node-names-CGb-ylBd.js";
30
- import { t as WEBXR_TO_NUE } from "../webxr-nue-basis-CaCnYxuq.js";
31
- import { n as XR_ERROR_MESSAGE_UNKNOWN, r as getXrErrorMessage, t as XR_ERROR_MESSAGES } from "../xr-error-handler-uVGDu9IX.js";
32
- export { Aabb, AggregateQrPoseResult, AverageRotationOptions, AverageRotationResult, BASELAYER_WINDOW_MAX, BASELAYER_WINDOW_MIN, BarcodeDetectorFrontEnd, BarcodeDetectorLike, CAPTURE_FAILURE_WARNING, CameraBlitCapture, CameraBlitCaptureConfig, CameraFrameCaptureConfig, CameraFrameSource, CameraFrameSourceCallbacks, CameraFrameSourceConfig, CameraIntrinsics, CameraMode, CameraTextureResult, CapabilityMessageOptions, CapabilitySupport, CaptureFailureTracker, CaptureFailureTrackerConfig, CapturedFrame, CapturedImage, ChromeVersion, ChromiumProjectionLayerWorkaroundResult, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_QUALITY_FILTER, DEFAULT_ROTATION_INLIER_ANGLE_DEG, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, DepthGridLookup, DepthInfo, DepthSampler, DepthSamplerCallbacks, DepthSamplerConfig, DepthUnprojector, DeriveQrPoseDeps, DerivedQrPlacement, DetectedBarcodeLike, DetectionScheduler, DetectionSchedulerConfig, EnableGpsArConfig, EnableGpsArController, EnableGpsArDeps, EnableGpsArResult, EnableGpsArState, EnableGpsArStatus, Enu, FetchLike, FetchQrLevelOptions, FrameQualityVerdict, FrameUpdate, GridCell, Homography, ImageCaptureCallbacks, ImageCaptureConfig, ImageCaptureManager, ImageQualityGate, ImageSize, IncrementalQrPlacement, METERS_PER_DEG_LAT, MIN_VALID_IMAGE_BYTES, Mat3, MeshOccupiedCellsOptions, OccupancyGrid, OccupancyGridOptions, OccupancyMeshResult, OccupancySurface, OpenCvPnpResult, PlanarPnpSquare, Point2, Pose, PoseCandidate, QrDebugView, QrDetection, QrDetectionController, QrDetectionControllerDeps, QrDetectionEvent, QrDetectionScheduler, QrDetectionSchedulerConfig, QrFrontEnd, QrGeoPose, QrGpsVoteInput, QrLevel, QrLevelValidationError, QrPlausibility, QrPlausibilityOptions, QrPlausibilityVerdict, QrPoseSolution, QrPoseStability, QrPoseStabilityOptions, QrPoseStabilityStatus, QrScanStatus, QrSizeAccumulator, QrSizeAccumulatorOptions, QrSizeDepthContext, QrSizeEstimate, QrSizeMeasurement, QrSizeMeasurer, QrSizeObservation, QrSizeStatus, QrSolvePoseInput, QrTrackingController, QrTrackingControllerConfig, QrTrackingStatus, QuadValidation, QualityFilterConfig, QualityRejectReason, QualityVerdict, RawObservationSink, RawQrObservation, RendererLike, ReplaySceneState, RgbaImage, SCENE_NODE, SessionEndInfo, SessionFeatureOptions, SolvePnpSquare, SolveQrPoseInput, ToImageBitmapSource, WEBXR_TO_NUE, XRCameraLike, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, XrFrameContext, XrFrameUpdate, acquireCameraTexture, aggregateQrPose, applyChromiumProjectionLayerWorkaround, averageRotation, bresenham3d, buildObjectPoints, buildQrGpsVotes, capabilityMessage, checkQrPlausibility, composePose, computeAspectFitSize, computeCaptureSize, createBarcodeDetectorFrontEnd, createCaptureFailureTracker, createDepthGridLookup, createDepthUnprojector, createDetectionScheduler, createEnableGpsArController, createIncrementalQrPlacement, createQrDebugView, createQrDetectionController, createQrDetectionScheduler, createQrSizeAccumulator, createQrSizeDepthContext, createQrSizeMeasurer, createQrTrackingController, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, disposeReplayScene, endARSession, estimateQrSizeFromDepth, evaluateQrPoseStability, fetchQrLevel, getAlignmentLerper, getArWorldGroup, getCamera, getCameraFollower, getCameraFrameCount, getCameraMode, getCurrentArPose, getDepthInfoFromFrame, getDepthSampleCount, getImageCaptureFrameCount, getLiveCss3dManager, getReplayState, getScene, getXrErrorMessage, homographyFromCorrespondences, initAR, initReplayScene, intrinsicsFromProjection, invertPose, ippePoseCandidates, isFullySupported, localPlaneToEnu, meanLuminance, meshOccupiedCells, nearestRotation3x3, needsBaseLayerPersistence, offsetGeo, parseChromeVersion, parseQrLevel, projectViewPoint, qrInCameraFromOpenCv, registerFrameUpdate, registerXrFrameUpdate, reprojectionErrorPx, rgbaToGrayscale, rotationToRodrigues, setCameraFrameCallback, setDepthCaptureCallback, setFrameCallback, setImageCaptureCallback, setImageQualityAnalyzer, setSessionEndCallback, setTrackingCallbacks, setTrackingLostCallback, setTrackingStore, sharpnessScore, signedQuadArea, solveLinear, solveQrPose, solveQrPoseFromObservation, startCameraFrameCapture, startDepthCapture, startImageCapture, stopCameraFrameCapture, stopDepthCapture, stopImageCapture, toggleCameraMode, transformPoint, unprojectDepthPoint, updateOrbitTarget, validateQuad, wrapXRDepthInfo };
18
+ import { c as QrSizeAccumulatorOptions, d as QrSizeStatus, f as createQrSizeAccumulator, i as QrSizeMeasurer, l as QrSizeEstimate, n as QrSizeDepthContext, o as createQrSizeMeasurer, p as estimateQrSizeFromDepth, r as QrSizeMeasurement, s as QrSizeAccumulator, t as ImageSize, u as QrSizeObservation } from "../qr-size-measurer-rVFf4AdM.js";
19
+ import { t as createQrSizeDepthContext } from "../qr-size-depth-context-CMDv6T29.js";
20
+ import { a as createIncrementalQrPlacement, c as deriveSolvedQrPose, i as RawQrObservation, l as solveQrPoseFromObservation, n as DerivedQrPlacement, o as deriveQrPlacement, r as IncrementalQrPlacement, s as deriveQrSizeM, t as DeriveQrPoseDeps } from "../qr-derived-pose-DZPxZd9C.js";
21
+ import { n as createQrDebugView, t as QrDebugView } from "../qr-debug-view-CGlITU09.js";
22
+ import { a as createQrDetectionController, i as RawObservationSink, n as QrDetectionControllerDeps, r as QrScanStatus, t as QrDetectionController } from "../qr-detection-controller-C5NII-vs.js";
23
+ import { a as QrPoseStability, c as aggregateQrPose, i as DEFAULT_ROTATION_INLIER_ANGLE_DEG, l as averageRotation, n as AverageRotationOptions, o as QrPoseStabilityOptions, r as AverageRotationResult, s as QrPoseStabilityStatus, t as AggregateQrPoseResult, u as evaluateQrPoseStability } from "../qr-pose-aggregation-mABSN0AW.js";
24
+ import { C as parseQrLevel, D as buildQrGpsVotes, E as QrGpsVoteInput, O as localPlaneToEnu, S as fetchQrLevel, T as QrGeoPose, _ as createQrTrackingController, a as checkQrPlausibility, b as QrLevel, c as QrDetectionScheduler, d as createQrDetectionScheduler, f as QrDetectionEvent, g as QrTrackingStatus, h as QrTrackingControllerConfig, i as QrPlausibilityVerdict, k as offsetGeo, l as QrDetectionSchedulerConfig, m as QrTrackingController, n as QrPlausibility, o as DetectionScheduler, p as QrSolvePoseInput, r as QrPlausibilityOptions, s as DetectionSchedulerConfig, t as OccupancySurface, u as createDetectionScheduler, v as FetchLike, w as Enu, x as QrLevelValidationError, y as FetchQrLevelOptions } from "../index-BWVwd9Zw.js";
25
+ import { a as homographyFromCorrespondences, c as rotationToRodrigues, i as PoseCandidate, l as solveLinear, n as Mat3, o as ippePoseCandidates, r as PlanarPnpSquare, s as nearestRotation3x3, t as Homography } from "../planar-pnp-ByxwDEyM.js";
26
+ import { n as CameraFrameSourceCallbacks, r as CameraFrameSourceConfig, t as CameraFrameSource } from "../index-Dxb6ATNK.js";
27
+ import { n as OccupancyGridOptions, t as OccupancyGrid } from "../occupancy-grid-CYBdmMOo.js";
28
+ import { a as meshOccupiedCells, i as OccupancyMeshResult, r as MeshOccupiedCellsOptions, t as Aabb } from "../occupancy-mesher-B4Bv4BTk.js";
29
+ import { i as registerXrFrameUpdate, n as XrFrameUpdate, t as XrFrameContext } from "../xr-frame-loop-BiZvgqP7.js";
30
+ import { a as getCameraFollower, c as getReplayState, d as updateOrbitTarget, i as getAlignmentLerper, l as initReplayScene, n as ReplaySceneState, o as getCameraMode, r as disposeReplayScene, t as CameraMode, u as toggleCameraMode } from "../replay-scene-BJeO36YT.js";
31
+ import { t as SCENE_NODE } from "../scene-node-names-DWzhE7Ro.js";
32
+ import { t as WEBXR_TO_NUE } from "../webxr-nue-basis-C3vTqkE2.js";
33
+ import { n as XR_ERROR_MESSAGE_UNKNOWN, r as getXrErrorMessage, t as XR_ERROR_MESSAGES } from "../xr-error-handler-D9y5r8ok.js";
34
+ export { Aabb, AggregateQrPoseResult, ArCrashIsolationOptions, ArSessionCallbacks, AverageRotationOptions, AverageRotationResult, BASELAYER_WINDOW_MAX, BASELAYER_WINDOW_MIN, BLUR_METRIC_IDS, BarcodeDetectorFrontEnd, BarcodeDetectorLike, BlurMetricId, CAPTURE_FAILURE_WARNING, CameraBlitCapture, CameraBlitCaptureConfig, CameraFrameCaptureConfig, CameraFrameSource, CameraFrameSourceCallbacks, CameraFrameSourceConfig, CameraIntrinsics, CameraMode, CameraTextureResult, CapabilityMessageOptions, CapabilitySupport, CaptureFailureTracker, CaptureFailureTrackerConfig, CapturedFrame, CapturedImage, ChromeVersion, ChromiumProjectionLayerWorkaroundResult, DEFAULT_AR_CRASH_ISOLATION, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_QUALITY_FILTER, DEFAULT_ROTATION_INLIER_ANGLE_DEG, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, DepthGridLookup, DepthInfo, DepthSampler, DepthSamplerCallbacks, DepthSamplerConfig, DepthUnprojector, DeriveQrPoseDeps, DerivedQrPlacement, DetectedBarcodeLike, DetectionScheduler, DetectionSchedulerConfig, EnableGpsArConfig, EnableGpsArController, EnableGpsArDeps, EnableGpsArResult, EnableGpsArState, EnableGpsArStatus, Enu, FetchLike, FetchQrLevelOptions, FrameQualityVerdict, FrameUpdate, GridCell, Homography, ImageCaptureCallbacks, ImageCaptureConfig, ImageCaptureManager, ImageQualityGate, ImageSize, IncrementalQrPlacement, MIN_VALID_IMAGE_BYTES, Mat3, MeshOccupiedCellsOptions, OccupancyGrid, OccupancyGridOptions, OccupancyMeshResult, OccupancySurface, OpenCvPnpResult, PlanarPnpSquare, Point2, Pose, PoseCandidate, QrDebugView, QrDetection, QrDetectionController, QrDetectionControllerDeps, QrDetectionEvent, QrDetectionScheduler, QrDetectionSchedulerConfig, QrFrontEnd, QrGeoPose, QrGpsVoteInput, QrLevel, QrLevelValidationError, QrPlausibility, QrPlausibilityOptions, QrPlausibilityVerdict, QrPoseSolution, QrPoseStability, QrPoseStabilityOptions, QrPoseStabilityStatus, QrScanStatus, QrSizeAccumulator, QrSizeAccumulatorOptions, QrSizeDepthContext, QrSizeEstimate, QrSizeMeasurement, QrSizeMeasurer, QrSizeObservation, QrSizeStatus, QrSolvePoseInput, QrTrackingController, QrTrackingControllerConfig, QrTrackingStatus, QuadValidation, QualityFilterConfig, QualityRejectReason, QualityVerdict, RawObservationSink, RawQrObservation, RendererLike, ReplaySceneState, RgbaImage, SCENE_NODE, SessionEndInfo, SessionFeatureOptions, SolvePnpSquare, SolveQrPoseInput, ToImageBitmapSource, WEBXR_TO_NUE, XRCameraLike, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, XrFrameContext, XrFrameUpdate, acquireCameraTexture, aggregateQrPose, applyChromiumProjectionLayerWorkaround, averageRotation, blurMetricScorer, bresenham3d, buildObjectPoints, buildQrGpsVotes, capabilityMessage, checkQrPlausibility, composePose, computeAspectFitSize, computeCaptureSize, createBarcodeDetectorFrontEnd, createCaptureFailureTracker, createDepthGridLookup, createDepthUnprojector, createDetectionScheduler, createEnableGpsArController, createIncrementalQrPlacement, createQrDebugView, createQrDetectionController, createQrDetectionScheduler, createQrSizeAccumulator, createQrSizeDepthContext, createQrSizeMeasurer, createQrTrackingController, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, disposeReplayScene, endARSession, estimateQrSizeFromDepth, evaluateQrPoseStability, fetchQrLevel, getAlignmentLerper, getArWorldGroup, getCamera, getCameraFollower, getCameraFrameCount, getCameraMode, getCurrentArPose, getDepthInfoFromFrame, getDepthSampleCount, getImageCaptureFrameCount, getReplayState, getScene, getXrErrorMessage, highFrequencyEnergyRatio, homographyFromCorrespondences, initAR, initReplayScene, intrinsicsFromProjection, invertPose, ippePoseCandidates, isFullySupported, localPlaneToEnu, meanLuminance, meshOccupiedCells, nearestRotation3x3, needsBaseLayerPersistence, offsetGeo, parseChromeVersion, parseQrLevel, projectViewPoint, qrInCameraFromOpenCv, rebindTrackingStore, registerFrameUpdate, registerXrFrameUpdate, reprojectionErrorPx, rgbaToGrayscale, rotationToRodrigues, sharpnessScore, signedQuadArea, solveLinear, solveQrPose, solveQrPoseFromObservation, startCameraFrameCapture, startDepthCapture, startImageCapture, stopCameraFrameCapture, stopDepthCapture, stopImageCapture, toggleCameraMode, transformPoint, unprojectDepthPoint, updateOrbitTarget, validateArCrashIsolationOptions, validateQuad, wrapXRDepthInfo };
package/dist/ar/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_AR_CRASH_ISOLATION, validateArCrashIsolationOptions } from "./ar-crash-isolation.js";
1
2
  import { CameraBlitCapture, DEFAULT_BLIT_CONFIG, computeAspectFitSize, computeCaptureSize } from "./camera-blit-capture.js";
2
3
  import { capabilityMessage, isFullySupported } from "./capability-checker.js";
3
4
  import { BASELAYER_WINDOW_MAX, BASELAYER_WINDOW_MIN, applyChromiumProjectionLayerWorkaround, needsBaseLayerPersistence, parseChromeVersion } from "./chromium-camera-access-workaround.js";
@@ -5,28 +6,28 @@ import { CAPTURE_FAILURE_WARNING, DEFAULT_CAPTURE_TRACKER_CONFIG, createCaptureF
5
6
  import { DepthSampler, wrapXRDepthInfo } from "./depth-sampler.js";
6
7
  import { createDepthUnprojector, unprojectDepthPoint } from "./depth-unprojection.js";
7
8
  import { createDepthGridLookup } from "./depth-grid-lookup.js";
8
- import { n as createQrSizeAccumulator, r as estimateQrSizeFromDepth, t as createQrSizeMeasurer } from "../qr-size-measurer-DLb33geH.js";
9
- import { createQrSizeDepthContext } from "./qr-size-depth-context.js";
10
- import { buildObjectPoints, composePose, intrinsicsFromProjection, invertPose, projectViewPoint, qrInCameraFromOpenCv, reprojectionErrorPx, signedQuadArea, solveQrPose, transformPoint, validateQuad } from "./qr-pose.js";
11
- import { createIncrementalQrPlacement, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, solveQrPoseFromObservation } from "./qr-derived-pose.js";
9
+ import { n as createQrSizeAccumulator, r as estimateQrSizeFromDepth, t as createQrSizeMeasurer } from "../qr-size-measurer-zZB9S1va.js";
10
+ import { createQrSizeDepthContext } from "./qr/qr-size-depth-context.js";
11
+ import { buildObjectPoints, composePose, intrinsicsFromProjection, invertPose, projectViewPoint, qrInCameraFromOpenCv, reprojectionErrorPx, signedQuadArea, solveQrPose, transformPoint, validateQuad } from "./qr/qr-pose.js";
12
+ import { createIncrementalQrPlacement, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, solveQrPoseFromObservation } from "./qr/qr-derived-pose.js";
12
13
  import { WEBXR_TO_NUE } from "./webxr-nue-basis.js";
13
- import { createQrDebugView } from "./qr-debug-view.js";
14
- import { n as createDetectionScheduler, r as createQrDetectionScheduler, t as createQrDetectionController } from "../qr-detection-controller-B-tLVd-S.js";
15
- import { i as evaluateQrPoseStability, n as aggregateQrPose, r as averageRotation, t as DEFAULT_ROTATION_INLIER_ANGLE_DEG } from "../qr-pose-aggregation-DBiaLW0O.js";
16
- import { a as localPlaneToEnu, c as fetchQrLevel, i as buildQrGpsVotes, l as parseQrLevel, n as createQrTrackingController, o as offsetGeo, r as METERS_PER_DEG_LAT, s as QrLevelValidationError, t as checkQrPlausibility } from "../ar-BqCudtqE.js";
17
- import { BarcodeDetectorFrontEnd, createBarcodeDetectorFrontEnd } from "./qr-frontend.js";
18
- import { B as setTrackingLostCallback, C as initAR, F as setImageCaptureCallback, G as startDepthCapture, H as setTrackingStore, I as setImageQualityAnalyzer, J as stopDepthCapture, K as startImageCapture, M as setCameraFrameCallback, N as setDepthCaptureCallback, P as setFrameCallback, R as setSessionEndCallback, W as startCameraFrameCapture, X as CameraFrameSource, Y as stopImageCapture, _ as getDepthInfoFromFrame, b as getLiveCss3dManager, c as endARSession, f as getArWorldGroup, g as getCurrentArPose, h as getCameraFrameCount, p as getCamera, q as stopCameraFrameCapture, v as getDepthSampleCount, x as getScene, y as getImageCaptureFrameCount, z as setTrackingCallbacks } from "../webxr-session-BCP2XK7k.js";
19
- import { PlanarPnpSquare, homographyFromCorrespondences, ippePoseCandidates, nearestRotation3x3, rotationToRodrigues, solveLinear } from "./planar-pnp.js";
14
+ import { createQrDebugView } from "./qr/qr-debug-view.js";
15
+ import { n as createDetectionScheduler, r as createQrDetectionScheduler, t as createQrDetectionController } from "../qr-detection-controller-DXc1yHRf.js";
16
+ import { i as evaluateQrPoseStability, n as aggregateQrPose, r as averageRotation, t as DEFAULT_ROTATION_INLIER_ANGLE_DEG } from "../qr-pose-aggregation-Cp0Mtg_j.js";
17
+ import { a as offsetGeo, c as parseQrLevel, i as localPlaneToEnu, n as createQrTrackingController, o as QrLevelValidationError, r as buildQrGpsVotes, s as fetchQrLevel, t as checkQrPlausibility } from "../qr-CTp5xI83.js";
18
+ import { BarcodeDetectorFrontEnd, createBarcodeDetectorFrontEnd } from "./qr/qr-frontend.js";
19
+ import { PlanarPnpSquare, homographyFromCorrespondences, ippePoseCandidates, nearestRotation3x3, rotationToRodrigues, solveLinear } from "./qr/planar-pnp.js";
20
+ import { A as stopImageCapture, D as startImageCapture, E as startDepthCapture, O as stopCameraFrameCapture, S as rebindTrackingStore, T as startCameraFrameCapture, _ as initAR, a as endARSession, c as getArWorldGroup, d as getCurrentArPose, f as getDepthInfoFromFrame, h as getScene, j as CameraFrameSource, k as stopDepthCapture, l as getCamera, m as getImageCaptureFrameCount, p as getDepthSampleCount, u as getCameraFrameCount } from "../webxr-session-OyR3YbTq.js";
20
21
  import { bresenham3d } from "./bresenham3d.js";
21
22
  import { OccupancyGrid } from "./occupancy-grid.js";
22
23
  import { meshOccupiedCells } from "./occupancy-mesher.js";
23
24
  import { registerFrameUpdate } from "./frame-loop.js";
24
25
  import { registerXrFrameUpdate } from "./xr-frame-loop.js";
25
- import { n as ImageCaptureManager, r as MIN_VALID_IMAGE_BYTES, t as DEFAULT_CAPTURE_CONFIG } from "../image-capture-DVcuqMtX.js";
26
- import { DEFAULT_QUALITY_FILTER, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, ImageQualityGate, meanLuminance, rgbaToGrayscale, sharpnessScore } from "./image-quality.js";
26
+ import { n as ImageCaptureManager, r as MIN_VALID_IMAGE_BYTES, t as DEFAULT_CAPTURE_CONFIG } from "../image-capture-C4DwxC10.js";
27
+ import { BLUR_METRIC_IDS, DEFAULT_QUALITY_FILTER, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, ImageQualityGate, blurMetricScorer, highFrequencyEnergyRatio, meanLuminance, rgbaToGrayscale, sharpnessScore } from "./image-quality.js";
27
28
  import { acquireCameraTexture } from "./xr-camera-texture.js";
28
29
  import { SCENE_NODE } from "./scene-node-names.js";
29
30
  import { createEnableGpsArController } from "./enable-gps-ar.js";
30
31
  import { disposeReplayScene, getAlignmentLerper, getCameraFollower, getCameraMode, getReplayState, initReplayScene, toggleCameraMode, updateOrbitTarget } from "./replay-scene.js";
31
32
  import { XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, getXrErrorMessage } from "./xr-error-handler.js";
32
- export { BASELAYER_WINDOW_MAX, BASELAYER_WINDOW_MIN, BarcodeDetectorFrontEnd, CAPTURE_FAILURE_WARNING, CameraBlitCapture, CameraFrameSource, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_QUALITY_FILTER, DEFAULT_ROTATION_INLIER_ANGLE_DEG, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, DepthSampler, ImageCaptureManager, ImageQualityGate, METERS_PER_DEG_LAT, MIN_VALID_IMAGE_BYTES, OccupancyGrid, PlanarPnpSquare, QrLevelValidationError, SCENE_NODE, WEBXR_TO_NUE, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, acquireCameraTexture, aggregateQrPose, applyChromiumProjectionLayerWorkaround, averageRotation, bresenham3d, buildObjectPoints, buildQrGpsVotes, capabilityMessage, checkQrPlausibility, composePose, computeAspectFitSize, computeCaptureSize, createBarcodeDetectorFrontEnd, createCaptureFailureTracker, createDepthGridLookup, createDepthUnprojector, createDetectionScheduler, createEnableGpsArController, createIncrementalQrPlacement, createQrDebugView, createQrDetectionController, createQrDetectionScheduler, createQrSizeAccumulator, createQrSizeDepthContext, createQrSizeMeasurer, createQrTrackingController, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, disposeReplayScene, endARSession, estimateQrSizeFromDepth, evaluateQrPoseStability, fetchQrLevel, getAlignmentLerper, getArWorldGroup, getCamera, getCameraFollower, getCameraFrameCount, getCameraMode, getCurrentArPose, getDepthInfoFromFrame, getDepthSampleCount, getImageCaptureFrameCount, getLiveCss3dManager, getReplayState, getScene, getXrErrorMessage, homographyFromCorrespondences, initAR, initReplayScene, intrinsicsFromProjection, invertPose, ippePoseCandidates, isFullySupported, localPlaneToEnu, meanLuminance, meshOccupiedCells, nearestRotation3x3, needsBaseLayerPersistence, offsetGeo, parseChromeVersion, parseQrLevel, projectViewPoint, qrInCameraFromOpenCv, registerFrameUpdate, registerXrFrameUpdate, reprojectionErrorPx, rgbaToGrayscale, rotationToRodrigues, setCameraFrameCallback, setDepthCaptureCallback, setFrameCallback, setImageCaptureCallback, setImageQualityAnalyzer, setSessionEndCallback, setTrackingCallbacks, setTrackingLostCallback, setTrackingStore, sharpnessScore, signedQuadArea, solveLinear, solveQrPose, solveQrPoseFromObservation, startCameraFrameCapture, startDepthCapture, startImageCapture, stopCameraFrameCapture, stopDepthCapture, stopImageCapture, toggleCameraMode, transformPoint, unprojectDepthPoint, updateOrbitTarget, validateQuad, wrapXRDepthInfo };
33
+ export { BASELAYER_WINDOW_MAX, BASELAYER_WINDOW_MIN, BLUR_METRIC_IDS, BarcodeDetectorFrontEnd, CAPTURE_FAILURE_WARNING, CameraBlitCapture, CameraFrameSource, DEFAULT_AR_CRASH_ISOLATION, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_QUALITY_FILTER, DEFAULT_ROTATION_INLIER_ANGLE_DEG, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, DepthSampler, ImageCaptureManager, ImageQualityGate, MIN_VALID_IMAGE_BYTES, OccupancyGrid, PlanarPnpSquare, QrLevelValidationError, SCENE_NODE, WEBXR_TO_NUE, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, acquireCameraTexture, aggregateQrPose, applyChromiumProjectionLayerWorkaround, averageRotation, blurMetricScorer, bresenham3d, buildObjectPoints, buildQrGpsVotes, capabilityMessage, checkQrPlausibility, composePose, computeAspectFitSize, computeCaptureSize, createBarcodeDetectorFrontEnd, createCaptureFailureTracker, createDepthGridLookup, createDepthUnprojector, createDetectionScheduler, createEnableGpsArController, createIncrementalQrPlacement, createQrDebugView, createQrDetectionController, createQrDetectionScheduler, createQrSizeAccumulator, createQrSizeDepthContext, createQrSizeMeasurer, createQrTrackingController, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, disposeReplayScene, endARSession, estimateQrSizeFromDepth, evaluateQrPoseStability, fetchQrLevel, getAlignmentLerper, getArWorldGroup, getCamera, getCameraFollower, getCameraFrameCount, getCameraMode, getCurrentArPose, getDepthInfoFromFrame, getDepthSampleCount, getImageCaptureFrameCount, getReplayState, getScene, getXrErrorMessage, highFrequencyEnergyRatio, homographyFromCorrespondences, initAR, initReplayScene, intrinsicsFromProjection, invertPose, ippePoseCandidates, isFullySupported, localPlaneToEnu, meanLuminance, meshOccupiedCells, nearestRotation3x3, needsBaseLayerPersistence, offsetGeo, parseChromeVersion, parseQrLevel, projectViewPoint, qrInCameraFromOpenCv, rebindTrackingStore, registerFrameUpdate, registerXrFrameUpdate, reprojectionErrorPx, rgbaToGrayscale, rotationToRodrigues, sharpnessScore, signedQuadArea, solveLinear, solveQrPose, solveQrPoseFromObservation, startCameraFrameCapture, startDepthCapture, startImageCapture, stopCameraFrameCapture, stopDepthCapture, stopImageCapture, toggleCameraMode, transformPoint, unprojectDepthPoint, updateOrbitTarget, validateArCrashIsolationOptions, validateQuad, wrapXRDepthInfo };
@@ -1,5 +1,5 @@
1
- import { t as GridCell } from "../bresenham3d-DGc4nIb-.js";
2
- import { n as MeshMode } from "../occupancy-mesher-C2ecWhNp.js";
1
+ import { t as GridCell } from "../bresenham3d-D-t9i_b5.js";
2
+ import { n as MeshMode } from "../occupancy-mesher-B4Bv4BTk.js";
3
3
  import { Vector3 } from "gps-plus-slam-js";
4
4
 
5
5
  //#region ../src/ar/occlusion-mesh-worker.d.ts
@@ -1,4 +1,4 @@
1
- import { a as packCellKey } from "../cell-key-DIB4rOTV.js";
1
+ import { a as packCellKey } from "../cell-key-Bj-eYTLA.js";
2
2
  import { meshOccupiedCells } from "./occupancy-mesher.js";
3
3
  //#region ../src/ar/occlusion-mesh-worker.ts
4
4
  /** Only the surface-hugging modes read `getCellPoint`. */
@@ -1,2 +1,2 @@
1
- import { i as unpackCellKey, n as OccupancyGridOptions, r as cellKey, t as OccupancyGrid } from "../occupancy-grid-BV7RhB7I.js";
1
+ import { i as unpackCellKey, n as OccupancyGridOptions, r as cellKey, t as OccupancyGrid } from "../occupancy-grid-CYBdmMOo.js";
2
2
  export { OccupancyGrid, OccupancyGridOptions, cellKey, unpackCellKey };
@@ -1,6 +1,6 @@
1
1
  import { createDepthUnprojector } from "./depth-unprojection.js";
2
2
  import { bresenham3d } from "./bresenham3d.js";
3
- import { i as cellKey, o as unpackCellCoord, r as cellCoordsInKeyRange, s as unpackCellKey, t as CELL_KEY_LIMIT } from "../cell-key-DIB4rOTV.js";
3
+ import { i as cellKey, o as unpackCellCoord, r as cellCoordsInKeyRange, s as unpackCellKey, t as CELL_KEY_LIMIT } from "../cell-key-Bj-eYTLA.js";
4
4
  //#region ../src/ar/occupancy-grid.ts
5
5
  /**
6
6
  * Highest `minConfidence` a consumer can ask for (mirrors
@@ -39,7 +39,7 @@ var OccupancyGrid = class {
39
39
  * an already-settled cell (count `> MAX_RELEVANT_COUNT`) does NOT bump it, so a
40
40
  * consumer can cheaply skip a full re-derive (cube refresh / occluder re-mesh)
41
41
  * when the revision is unchanged — the dominant idle-time saving over a long
42
- * session (see `2026-06-30-occluder-tuning-followups.md`).
42
+ * session (see `2026-06-30-0829-occluder-tuning-followups.md`).
43
43
  */
44
44
  revision = 0;
45
45
  /**
@@ -1,2 +1,2 @@
1
- import { a as meshOccupiedCells, i as OccupancyMeshResult, n as MeshMode, r as MeshOccupiedCellsOptions, t as Aabb } from "../occupancy-mesher-C2ecWhNp.js";
1
+ import { a as meshOccupiedCells, i as OccupancyMeshResult, n as MeshMode, r as MeshOccupiedCellsOptions, t as Aabb } from "../occupancy-mesher-B4Bv4BTk.js";
2
2
  export { Aabb, MeshMode, MeshOccupiedCellsOptions, OccupancyMeshResult, meshOccupiedCells };
@@ -1,9 +1,8 @@
1
- import { a as packCellKey } from "../cell-key-DIB4rOTV.js";
1
+ import { a as packCellKey } from "../cell-key-Bj-eYTLA.js";
2
2
  //#region ../src/ar/occupancy-mesher.ts
3
- /** Resolve the effective mesher mode from the (possibly legacy) options. */
3
+ /** Resolve the effective mesher mode from the options. */
4
4
  function resolveMode(options) {
5
- if (options?.mode) return options.mode;
6
- return options?.greedy ? "greedy" : "per-face";
5
+ return options?.mode ?? "per-face";
7
6
  }
8
7
  /**
9
8
  * Right-handed cyclic axis assignment per face-normal axis `d`: `(d, u, v)`
@@ -350,7 +349,7 @@ function buildCulled(occupied, uniqueCells, cellSizeM, positions, indices) {
350
349
  * (locally indistinguishable from a thin floor's intentionally-flat edges).
351
350
  * 0.25 was rejected as too close to imperceptibly-non-zero; 1.0 discards the
352
351
  * measured centroid exactly where data is sparsest. See
353
- * 2026-07-01-followup-smooth-mesher-single-corner-degeneracy.md.
352
+ * 2026-07-01-1455-smooth-mesher-single-corner-degeneracy-followup.md.
354
353
  */
355
354
  const SINGLE_CORNER_NUDGE_K = .5;
356
355
  function buildSmooth(occupied, uniqueCells, cellSizeM, getCellPoint, positions, indices) {
@@ -0,0 +1,11 @@
1
+ import { _ as solveQrPose, a as QrPoseSolution, c as SolveQrPoseInput, d as intrinsicsFromProjection, f as invertPose, g as signedQuadArea, h as reprojectionErrorPx, i as Pose, l as buildObjectPoints, m as qrInCameraFromOpenCv, n as OpenCvPnpResult, o as QuadValidation, p as projectViewPoint, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics, u as composePose, v as transformPoint, y as validateQuad } from "../../qr-pose-21fRDcFO.js";
2
+ import { a as QrFrontEnd, c as createBarcodeDetectorFrontEnd, i as QrDetection, n as BarcodeDetectorLike, o as RgbaImage, r as DetectedBarcodeLike, s as ToImageBitmapSource, t as BarcodeDetectorFrontEnd } from "../../qr-frontend-QzKZSqB-.js";
3
+ import { c as QrSizeAccumulatorOptions, d as QrSizeStatus, f as createQrSizeAccumulator, i as QrSizeMeasurer, l as QrSizeEstimate, n as QrSizeDepthContext, o as createQrSizeMeasurer, p as estimateQrSizeFromDepth, r as QrSizeMeasurement, s as QrSizeAccumulator, t as ImageSize, u as QrSizeObservation } from "../../qr-size-measurer-rVFf4AdM.js";
4
+ import { t as createQrSizeDepthContext } from "../../qr-size-depth-context-CMDv6T29.js";
5
+ import { a as createIncrementalQrPlacement, c as deriveSolvedQrPose, i as RawQrObservation, l as solveQrPoseFromObservation, n as DerivedQrPlacement, o as deriveQrPlacement, r as IncrementalQrPlacement, s as deriveQrSizeM, t as DeriveQrPoseDeps } from "../../qr-derived-pose-DZPxZd9C.js";
6
+ import { n as createQrDebugView, t as QrDebugView } from "../../qr-debug-view-CGlITU09.js";
7
+ import { a as createQrDetectionController, i as RawObservationSink, n as QrDetectionControllerDeps, r as QrScanStatus, t as QrDetectionController } from "../../qr-detection-controller-C5NII-vs.js";
8
+ import { a as QrPoseStability, c as aggregateQrPose, i as DEFAULT_ROTATION_INLIER_ANGLE_DEG, l as averageRotation, n as AverageRotationOptions, o as QrPoseStabilityOptions, r as AverageRotationResult, s as QrPoseStabilityStatus, t as AggregateQrPoseResult, u as evaluateQrPoseStability } from "../../qr-pose-aggregation-mABSN0AW.js";
9
+ import { C as parseQrLevel, D as buildQrGpsVotes, E as QrGpsVoteInput, O as localPlaneToEnu, S as fetchQrLevel, T as QrGeoPose, _ as createQrTrackingController, a as checkQrPlausibility, b as QrLevel, c as QrDetectionScheduler, d as createQrDetectionScheduler, f as QrDetectionEvent, g as QrTrackingStatus, h as QrTrackingControllerConfig, i as QrPlausibilityVerdict, k as offsetGeo, l as QrDetectionSchedulerConfig, m as QrTrackingController, n as QrPlausibility, o as DetectionScheduler, p as QrSolvePoseInput, r as QrPlausibilityOptions, s as DetectionSchedulerConfig, t as OccupancySurface, u as createDetectionScheduler, v as FetchLike, w as Enu, x as QrLevelValidationError, y as FetchQrLevelOptions } from "../../index-BWVwd9Zw.js";
10
+ import { a as homographyFromCorrespondences, c as rotationToRodrigues, i as PoseCandidate, l as solveLinear, n as Mat3, o as ippePoseCandidates, r as PlanarPnpSquare, s as nearestRotation3x3, t as Homography } from "../../planar-pnp-ByxwDEyM.js";
11
+ export { AggregateQrPoseResult, AverageRotationOptions, AverageRotationResult, BarcodeDetectorFrontEnd, BarcodeDetectorLike, CameraIntrinsics, DEFAULT_ROTATION_INLIER_ANGLE_DEG, DeriveQrPoseDeps, DerivedQrPlacement, DetectedBarcodeLike, DetectionScheduler, DetectionSchedulerConfig, Enu, FetchLike, FetchQrLevelOptions, Homography, ImageSize, IncrementalQrPlacement, Mat3, OccupancySurface, OpenCvPnpResult, PlanarPnpSquare, Point2, Pose, PoseCandidate, QrDebugView, QrDetection, QrDetectionController, QrDetectionControllerDeps, QrDetectionEvent, QrDetectionScheduler, QrDetectionSchedulerConfig, QrFrontEnd, QrGeoPose, QrGpsVoteInput, QrLevel, QrLevelValidationError, QrPlausibility, QrPlausibilityOptions, QrPlausibilityVerdict, QrPoseSolution, QrPoseStability, QrPoseStabilityOptions, QrPoseStabilityStatus, QrScanStatus, QrSizeAccumulator, QrSizeAccumulatorOptions, QrSizeDepthContext, QrSizeEstimate, QrSizeMeasurement, QrSizeMeasurer, QrSizeObservation, QrSizeStatus, QrSolvePoseInput, QrTrackingController, QrTrackingControllerConfig, QrTrackingStatus, QuadValidation, RawObservationSink, RawQrObservation, RgbaImage, SolvePnpSquare, SolveQrPoseInput, ToImageBitmapSource, aggregateQrPose, averageRotation, buildObjectPoints, buildQrGpsVotes, checkQrPlausibility, composePose, createBarcodeDetectorFrontEnd, createDetectionScheduler, createIncrementalQrPlacement, createQrDebugView, createQrDetectionController, createQrDetectionScheduler, createQrSizeAccumulator, createQrSizeDepthContext, createQrSizeMeasurer, createQrTrackingController, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, estimateQrSizeFromDepth, evaluateQrPoseStability, fetchQrLevel, homographyFromCorrespondences, intrinsicsFromProjection, invertPose, ippePoseCandidates, localPlaneToEnu, nearestRotation3x3, offsetGeo, parseQrLevel, projectViewPoint, qrInCameraFromOpenCv, reprojectionErrorPx, rotationToRodrigues, signedQuadArea, solveLinear, solveQrPose, solveQrPoseFromObservation, transformPoint, validateQuad };
@@ -0,0 +1,11 @@
1
+ import { n as createQrSizeAccumulator, r as estimateQrSizeFromDepth, t as createQrSizeMeasurer } from "../../qr-size-measurer-zZB9S1va.js";
2
+ import { createQrSizeDepthContext } from "./qr-size-depth-context.js";
3
+ import { buildObjectPoints, composePose, intrinsicsFromProjection, invertPose, projectViewPoint, qrInCameraFromOpenCv, reprojectionErrorPx, signedQuadArea, solveQrPose, transformPoint, validateQuad } from "./qr-pose.js";
4
+ import { createIncrementalQrPlacement, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, solveQrPoseFromObservation } from "./qr-derived-pose.js";
5
+ import { createQrDebugView } from "./qr-debug-view.js";
6
+ import { n as createDetectionScheduler, r as createQrDetectionScheduler, t as createQrDetectionController } from "../../qr-detection-controller-DXc1yHRf.js";
7
+ import { i as evaluateQrPoseStability, n as aggregateQrPose, r as averageRotation, t as DEFAULT_ROTATION_INLIER_ANGLE_DEG } from "../../qr-pose-aggregation-Cp0Mtg_j.js";
8
+ import { a as offsetGeo, c as parseQrLevel, i as localPlaneToEnu, n as createQrTrackingController, o as QrLevelValidationError, r as buildQrGpsVotes, s as fetchQrLevel, t as checkQrPlausibility } from "../../qr-CTp5xI83.js";
9
+ import { BarcodeDetectorFrontEnd, createBarcodeDetectorFrontEnd } from "./qr-frontend.js";
10
+ import { PlanarPnpSquare, homographyFromCorrespondences, ippePoseCandidates, nearestRotation3x3, rotationToRodrigues, solveLinear } from "./planar-pnp.js";
11
+ export { BarcodeDetectorFrontEnd, DEFAULT_ROTATION_INLIER_ANGLE_DEG, PlanarPnpSquare, QrLevelValidationError, aggregateQrPose, averageRotation, buildObjectPoints, buildQrGpsVotes, checkQrPlausibility, composePose, createBarcodeDetectorFrontEnd, createDetectionScheduler, createIncrementalQrPlacement, createQrDebugView, createQrDetectionController, createQrDetectionScheduler, createQrSizeAccumulator, createQrSizeDepthContext, createQrSizeMeasurer, createQrTrackingController, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, estimateQrSizeFromDepth, evaluateQrPoseStability, fetchQrLevel, homographyFromCorrespondences, intrinsicsFromProjection, invertPose, ippePoseCandidates, localPlaneToEnu, nearestRotation3x3, offsetGeo, parseQrLevel, projectViewPoint, qrInCameraFromOpenCv, reprojectionErrorPx, rotationToRodrigues, signedQuadArea, solveLinear, solveQrPose, solveQrPoseFromObservation, transformPoint, validateQuad };
@@ -1,2 +1,2 @@
1
- import { a as homographyFromCorrespondences, c as rotationToRodrigues, i as PoseCandidate, l as solveLinear, n as Mat3, o as ippePoseCandidates, r as PlanarPnpSquare, s as nearestRotation3x3, t as Homography } from "../planar-pnp-D7bc_rLX.js";
1
+ import { a as homographyFromCorrespondences, c as rotationToRodrigues, i as PoseCandidate, l as solveLinear, n as Mat3, o as ippePoseCandidates, r as PlanarPnpSquare, s as nearestRotation3x3, t as Homography } from "../../planar-pnp-ByxwDEyM.js";
2
2
  export { Homography, Mat3, PlanarPnpSquare, PoseCandidate, homographyFromCorrespondences, ippePoseCandidates, nearestRotation3x3, rotationToRodrigues, solveLinear };
@@ -1,4 +1,4 @@
1
- //#region ../src/ar/planar-pnp.ts
1
+ //#region ../src/ar/qr/planar-pnp.ts
2
2
  const EPS = 1e-12;
3
3
  /**
4
4
  * Solve the dense square linear system `A·x = b` by Gaussian elimination with
@@ -0,0 +1,2 @@
1
+ import { n as createQrDebugView, t as QrDebugView } from "../../qr-debug-view-CGlITU09.js";
2
+ export { QrDebugView, createQrDebugView };
@@ -1,6 +1,6 @@
1
- import { WEBXR_TO_NUE } from "./webxr-nue-basis.js";
1
+ import { WEBXR_TO_NUE } from "../webxr-nue-basis.js";
2
2
  import { AxesHelper, BoxGeometry, Group, Mesh, MeshBasicMaterial } from "three";
3
- //#region ../src/ar/qr-debug-view.ts
3
+ //#region ../src/ar/qr/qr-debug-view.ts
4
4
  /**
5
5
  * QR debug view — the shared 3D "is it glued to the code?" overlay: a 3D axis at
6
6
  * the solved QR pose plus a semi-transparent cube sized to the QR so its front
@@ -1,2 +1,2 @@
1
- import { a as createIncrementalQrPlacement, c as deriveSolvedQrPose, i as RawQrObservation, l as solveQrPoseFromObservation, n as DerivedQrPlacement, o as deriveQrPlacement, r as IncrementalQrPlacement, s as deriveQrSizeM, t as DeriveQrPoseDeps } from "../qr-derived-pose-BwNWn8oV.js";
1
+ import { a as createIncrementalQrPlacement, c as deriveSolvedQrPose, i as RawQrObservation, l as solveQrPoseFromObservation, n as DerivedQrPlacement, o as deriveQrPlacement, r as IncrementalQrPlacement, s as deriveQrSizeM, t as DeriveQrPoseDeps } from "../../qr-derived-pose-DZPxZd9C.js";
2
2
  export { DeriveQrPoseDeps, DerivedQrPlacement, IncrementalQrPlacement, RawQrObservation, createIncrementalQrPlacement, deriveQrPlacement, deriveQrSizeM, deriveSolvedQrPose, solveQrPoseFromObservation };
@@ -1,6 +1,6 @@
1
- import { t as createQrSizeMeasurer } from "../qr-size-measurer-DLb33geH.js";
1
+ import { t as createQrSizeMeasurer } from "../../qr-size-measurer-zZB9S1va.js";
2
2
  import { intrinsicsFromProjection, solveQrPose } from "./qr-pose.js";
3
- //#region ../src/ar/qr-derived-pose.ts
3
+ //#region ../src/ar/qr/qr-derived-pose.ts
4
4
  /**
5
5
  * Replay a marker's observation history through a fresh size measurer (each
6
6
  * observation sized against its own as-of depth context) and return the running
@@ -1,2 +1,2 @@
1
- import { a as createQrDetectionController, i as RawObservationSink, n as QrDetectionControllerDeps, r as QrScanStatus, t as QrDetectionController } from "../qr-detection-controller-Bo4XfQTP.js";
1
+ import { a as createQrDetectionController, i as RawObservationSink, n as QrDetectionControllerDeps, r as QrScanStatus, t as QrDetectionController } from "../../qr-detection-controller-C5NII-vs.js";
2
2
  export { QrDetectionController, QrDetectionControllerDeps, QrScanStatus, RawObservationSink, createQrDetectionController };
@@ -0,0 +1,2 @@
1
+ import { t as createQrDetectionController } from "../../qr-detection-controller-DXc1yHRf.js";
2
+ export { createQrDetectionController };
@@ -1,2 +1,2 @@
1
- import { a as QrFrontEnd, c as createBarcodeDetectorFrontEnd, i as QrDetection, n as BarcodeDetectorLike, o as RgbaImage, r as DetectedBarcodeLike, s as ToImageBitmapSource, t as BarcodeDetectorFrontEnd } from "../qr-frontend-BPURlh3S.js";
1
+ import { a as QrFrontEnd, c as createBarcodeDetectorFrontEnd, i as QrDetection, n as BarcodeDetectorLike, o as RgbaImage, r as DetectedBarcodeLike, s as ToImageBitmapSource, t as BarcodeDetectorFrontEnd } from "../../qr-frontend-QzKZSqB-.js";
2
2
  export { BarcodeDetectorFrontEnd, BarcodeDetectorLike, DetectedBarcodeLike, QrDetection, QrFrontEnd, RgbaImage, ToImageBitmapSource, createBarcodeDetectorFrontEnd };
@@ -1,4 +1,4 @@
1
- //#region ../src/ar/qr-frontend.ts
1
+ //#region ../src/ar/qr/qr-frontend.ts
2
2
  const defaultToImageData = (image) => new ImageData(new Uint8ClampedArray(image.data), image.width, image.height);
3
3
  var BarcodeDetectorFrontEnd = class {
4
4
  kind = "barcode-detector";
@@ -1,2 +1,2 @@
1
- import { _ as solveQrPose, a as QrPoseSolution, c as SolveQrPoseInput, d as intrinsicsFromProjection, f as invertPose, g as signedQuadArea, h as reprojectionErrorPx, i as Pose, l as buildObjectPoints, m as qrInCameraFromOpenCv, n as OpenCvPnpResult, o as QuadValidation, p as projectViewPoint, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics, u as composePose, v as transformPoint, y as validateQuad } from "../qr-pose-y3vaEd6x.js";
1
+ import { _ as solveQrPose, a as QrPoseSolution, c as SolveQrPoseInput, d as intrinsicsFromProjection, f as invertPose, g as signedQuadArea, h as reprojectionErrorPx, i as Pose, l as buildObjectPoints, m as qrInCameraFromOpenCv, n as OpenCvPnpResult, o as QuadValidation, p as projectViewPoint, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics, u as composePose, v as transformPoint, y as validateQuad } from "../../qr-pose-21fRDcFO.js";
2
2
  export { CameraIntrinsics, OpenCvPnpResult, Point2, Pose, QrPoseSolution, QuadValidation, SolvePnpSquare, SolveQrPoseInput, buildObjectPoints, composePose, intrinsicsFromProjection, invertPose, projectViewPoint, qrInCameraFromOpenCv, reprojectionErrorPx, signedQuadArea, solveQrPose, transformPoint, validateQuad };
@@ -1,5 +1,5 @@
1
1
  import { quat, vec3 } from "gl-matrix";
2
- //#region ../src/ar/qr-pose.ts
2
+ //#region ../src/ar/qr/qr-pose.ts
3
3
  /**
4
4
  * QR pose math — Phase 1 of the QR-code detection & 3D-tracking plan.
5
5
  *
@@ -0,0 +1,3 @@
1
+ import { n as QrSizeDepthContext } from "../../qr-size-measurer-rVFf4AdM.js";
2
+ import { t as createQrSizeDepthContext } from "../../qr-size-depth-context-CMDv6T29.js";
3
+ export { QrSizeDepthContext, createQrSizeDepthContext };
@@ -1,6 +1,6 @@
1
- import { createDepthUnprojector } from "./depth-unprojection.js";
2
- import { createDepthGridLookup } from "./depth-grid-lookup.js";
3
- //#region ../src/ar/qr-size-depth-context.ts
1
+ import { createDepthUnprojector } from "../depth-unprojection.js";
2
+ import { createDepthGridLookup } from "../depth-grid-lookup.js";
3
+ //#region ../src/ar/qr/qr-size-depth-context.ts
4
4
  /**
5
5
  * `createQrSizeDepthContext` — build a {@link QrSizeDepthContext} (unprojector +
6
6
  * bilinear depth-grid lookup) from one {@link DepthSample}.
@@ -16,7 +16,7 @@ import { createDepthGridLookup } from "./depth-grid-lookup.js";
16
16
  * consumer composes whatever extra it needs on top (the demo adds `cameraPose` +
17
17
  * `projectionMatrix` for the PnP intrinsics).
18
18
  *
19
- * Deep-imported via `…/ar/qr-size-depth-context` (NOT the `…/ar` barrel) so the
19
+ * Deep-imported via `…/ar/qr/qr-size-depth-context` (NOT the `…/ar` barrel) so the
20
20
  * Recorder's partially-mocked wiring tests don't pull heavy transitive deps —
21
21
  * same rationale as `qr-depth-resolver` / `qr-debug-view`.
22
22
  *
@@ -1,2 +1,2 @@
1
- import { a as QrSizeMeasurerOptions, i as QrSizeMeasurer, n as QrSizeDepthContext, o as createQrSizeMeasurer, r as QrSizeMeasurement, t as ImageSize } from "../qr-size-measurer-DxiMqRUw.js";
1
+ import { a as QrSizeMeasurerOptions, i as QrSizeMeasurer, n as QrSizeDepthContext, o as createQrSizeMeasurer, r as QrSizeMeasurement, t as ImageSize } from "../../qr-size-measurer-rVFf4AdM.js";
2
2
  export { ImageSize, QrSizeDepthContext, QrSizeMeasurement, QrSizeMeasurer, QrSizeMeasurerOptions, createQrSizeMeasurer };
@@ -0,0 +1,2 @@
1
+ import { t as createQrSizeMeasurer } from "../../qr-size-measurer-zZB9S1va.js";
2
+ export { createQrSizeMeasurer };
@@ -1,2 +1,2 @@
1
- import { a as getCameraFollower, c as getReplayState, d as updateOrbitTarget, i as getAlignmentLerper, l as initReplayScene, n as ReplaySceneState, o as getCameraMode, r as disposeReplayScene, s as getCss3dManager, t as CameraMode, u as toggleCameraMode } from "../replay-scene-zJ8SFDjE.js";
1
+ import { a as getCameraFollower, c as getReplayState, d as updateOrbitTarget, i as getAlignmentLerper, l as initReplayScene, n as ReplaySceneState, o as getCameraMode, r as disposeReplayScene, s as getCss3dManager, t as CameraMode, u as toggleCameraMode } from "../replay-scene-BJeO36YT.js";
2
2
  export { CameraMode, ReplaySceneState, disposeReplayScene, getAlignmentLerper, getCameraFollower, getCameraMode, getCss3dManager, getReplayState, initReplayScene, toggleCameraMode, updateOrbitTarget };