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.
- package/README.md +14 -14
- package/dist/{absolute-orientation-BAxc15J6.d.ts → absolute-orientation-Dj1One3y.d.ts} +1 -1
- package/dist/{accuracy-circles-DkWBkF5g.d.ts → accuracy-circles-BHz7yVIL.d.ts} +1 -1
- package/dist/{alignment-lerper-gD70k7Fq.d.ts → alignment-lerper-DAHicRON.d.ts} +0 -6
- package/dist/{app-selectors-BbAiCRUT.d.ts → app-selectors-DG0ZqaeI.d.ts} +23 -13
- package/dist/ar/ar-crash-isolation.d.ts +2 -0
- package/dist/ar/ar-crash-isolation.js +40 -0
- package/dist/ar/bresenham3d.d.ts +1 -1
- package/dist/ar/camera-blit-capture.d.ts +1 -1
- package/dist/ar/capability-checker.d.ts +1 -1
- package/dist/ar/capture-failure-tracker.d.ts +1 -1
- package/dist/ar/capture-motion-gate.d.ts +2 -0
- package/dist/{capture-motion-gate-_NdTSwKi.js → ar/capture-motion-gate.js} +25 -2
- package/dist/ar/chromium-camera-access-workaround.d.ts +1 -1
- package/dist/ar/chromium-camera-access-workaround.js +1 -1
- package/dist/ar/depth-grid-lookup.d.ts +1 -1
- package/dist/ar/depth-occluder.d.ts +1 -1
- package/dist/ar/depth-occluder.js +1 -1
- package/dist/ar/depth-sampler.d.ts +2 -2
- package/dist/ar/depth-sampler.js +16 -5
- package/dist/ar/depth-unprojection.d.ts +1 -1
- package/dist/ar/enable-gps-ar.d.ts +1 -1
- package/dist/ar/enable-gps-ar.js +2 -2
- package/dist/ar/image-capture.d.ts +1 -1
- package/dist/ar/image-capture.js +1 -1
- package/dist/ar/image-quality.d.ts +2 -2
- package/dist/ar/image-quality.js +159 -8
- package/dist/ar/index.d.ts +32 -30
- package/dist/ar/index.js +15 -14
- package/dist/ar/occlusion-mesh-worker.d.ts +2 -2
- package/dist/ar/occlusion-mesh-worker.js +1 -1
- package/dist/ar/occupancy-grid.d.ts +1 -1
- package/dist/ar/occupancy-grid.js +2 -2
- package/dist/ar/occupancy-mesher.d.ts +1 -1
- package/dist/ar/occupancy-mesher.js +4 -5
- package/dist/ar/qr/index.d.ts +11 -0
- package/dist/ar/qr/index.js +11 -0
- package/dist/ar/{planar-pnp.d.ts → qr/planar-pnp.d.ts} +1 -1
- package/dist/ar/{planar-pnp.js → qr/planar-pnp.js} +1 -1
- package/dist/ar/qr/qr-debug-view.d.ts +2 -0
- package/dist/ar/{qr-debug-view.js → qr/qr-debug-view.js} +2 -2
- package/dist/ar/{qr-derived-pose.d.ts → qr/qr-derived-pose.d.ts} +1 -1
- package/dist/ar/{qr-derived-pose.js → qr/qr-derived-pose.js} +2 -2
- package/dist/ar/{qr-detection-controller.d.ts → qr/qr-detection-controller.d.ts} +1 -1
- package/dist/ar/qr/qr-detection-controller.js +2 -0
- package/dist/ar/{qr-frontend.d.ts → qr/qr-frontend.d.ts} +1 -1
- package/dist/ar/{qr-frontend.js → qr/qr-frontend.js} +1 -1
- package/dist/ar/{qr-pose.d.ts → qr/qr-pose.d.ts} +1 -1
- package/dist/ar/{qr-pose.js → qr/qr-pose.js} +1 -1
- package/dist/ar/qr/qr-size-depth-context.d.ts +3 -0
- package/dist/ar/{qr-size-depth-context.js → qr/qr-size-depth-context.js} +4 -4
- package/dist/ar/{qr-size-measurer.d.ts → qr/qr-size-measurer.d.ts} +1 -1
- package/dist/ar/qr/qr-size-measurer.js +2 -0
- package/dist/ar/replay-scene.d.ts +1 -1
- package/dist/ar/replay-scene.js +15 -13
- package/dist/ar/scene-node-names.d.ts +1 -1
- package/dist/ar/webxr-nue-basis.d.ts +1 -1
- package/dist/ar/webxr-session.d.ts +4 -4
- package/dist/ar/webxr-session.js +2 -2
- package/dist/ar/xr-error-handler.d.ts +1 -1
- package/dist/ar/xr-frame-loop.d.ts +1 -1
- package/dist/ar/xr-frame-loop.js +1 -1
- package/dist/ar-crash-isolation-DlXCGzMf.d.ts +52 -0
- package/dist/{ar-types-Cc5yvBwn.d.ts → ar-types-D6PYS4bc.d.ts} +16 -1
- package/dist/{ar-world-group-alignment-Cfg0trC3.d.ts → ar-world-group-alignment-BdS_h8Nf.d.ts} +2 -2
- package/dist/{capability-checker-BTTpygvZ.d.ts → capability-checker-BZ3_x1YL.d.ts} +1 -1
- package/dist/capture-motion-gate-CPwLekNf.d.ts +120 -0
- package/dist/{chromium-camera-access-workaround-C6yJLXz9.d.ts → chromium-camera-access-workaround-BHR4clTE.d.ts} +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/{create-slam-app-store-D1QSMuKu.d.ts → create-slam-app-store-DFm5K9Ob.d.ts} +15 -6
- package/dist/{create-slam-app-store-DXiAnJwR.js → create-slam-app-store-oK9bnqyI.js} +10 -8
- package/dist/{depth-grid-lookup-D5atpNZ3.d.ts → depth-grid-lookup-CCuzlqUo.d.ts} +1 -1
- package/dist/{depth-sampler-CwObAwEA.d.ts → depth-sampler-CS2jAFw4.d.ts} +15 -5
- package/dist/{depth-unprojection-DRdBU90S.d.ts → depth-unprojection-ET3Gwedf.d.ts} +1 -1
- package/dist/device-orientation-cache-j-kLP8he.js +20 -0
- package/dist/{enable-gps-ar-BBtRO2FJ.d.ts → enable-gps-ar-D_xEHzh5.d.ts} +9 -4
- package/dist/{file-system-utils-DueXHxo9.d.ts → file-system-utils-BHI0rXr9.d.ts} +1 -1
- package/dist/{frame-conversions-DDcNHkTb.d.ts → frame-conversions-CH7E2Iv_.d.ts} +1 -1
- package/dist/{fused-path-C5pp0PJU.d.ts → fused-path-DOKzVMiO.d.ts} +1 -1
- package/dist/geo/h3-proximity.d.ts +1 -1
- package/dist/geo/h3-proximity.js +1 -1
- package/dist/geo/index.d.ts +1 -1
- package/dist/{geodesic-angle-BTldfFgs.js → geodesic-angle-CZ_Ow90I.js} +2 -2
- package/dist/{gps-CDKDQokE.d.ts → gps-CnhYrJCa.d.ts} +8 -1
- package/dist/{gps-anchor-CEjGqEVD.d.ts → gps-anchor-BaqyRsPC.d.ts} +14 -4
- package/dist/{gps-ar-pose-sampler-DEGNk2CI.d.ts → gps-ar-pose-sampler-BuuUuK-D.d.ts} +1 -1
- package/dist/{gps-event-coordinator-BWpgBrHq.d.ts → gps-event-coordinator-Cruoe5I-.d.ts} +16 -29
- package/dist/{gps-event-markers-Di2nBzx-.d.ts → gps-event-markers-y2b2aVl6.d.ts} +35 -1
- package/dist/{h3-proximity-D0GTHQmr.d.ts → h3-proximity-BaAulrnM.d.ts} +1 -1
- package/dist/{image-capture-Bp6Pd4Md.d.ts → image-capture-BevgKpoO.d.ts} +6 -6
- package/dist/{image-capture-DVcuqMtX.js → image-capture-C4DwxC10.js} +12 -10
- package/dist/{image-quality-BMx2ko9-.d.ts → image-quality--HLuyJ2r.d.ts} +44 -2
- package/dist/{index-cCQWuYqy.d.ts → index-BWVwd9Zw.d.ts} +10 -74
- package/dist/{index-B6iBnO_K.d.ts → index-ClmnNJ6-.d.ts} +1 -1
- package/dist/index-Dxb6ATNK.d.ts +64 -0
- package/dist/index.d.ts +79 -79
- package/dist/index.js +26 -24
- package/dist/{leaflet-map-overlay-CBWPvaX9.js → leaflet-map-overlay-CTcTVmL1.js} +1 -1
- package/dist/{leaflet-map-overlay-C8GS4cUy.d.ts → leaflet-map-overlay-CksetpTt.d.ts} +1 -1
- package/dist/{map-data-CUnTzRIC.d.ts → map-data-D8cCqpOM.d.ts} +3 -3
- package/dist/{map-data-1tF5gcYV.js → map-data-DkhsYDGM.js} +1 -1
- package/dist/{map-overlay-draw-6WJeq0Kg.d.ts → map-overlay-draw-Cy-klqoA.d.ts} +1 -1
- package/dist/median-DDBrZGP0.js +44 -0
- package/dist/{null-storage-backend-B1-jlpin.d.ts → null-storage-backend-DXXuwG8T.d.ts} +2 -2
- package/dist/{occlusion-mesh-kXCQ2FM1.d.ts → occlusion-mesh-BWe2PrVi.d.ts} +23 -12
- package/dist/{occupancy-grid-BV7RhB7I.d.ts → occupancy-grid-CYBdmMOo.d.ts} +3 -3
- package/dist/{occupancy-mesher-C2ecWhNp.d.ts → occupancy-mesher-B4Bv4BTk.d.ts} +4 -9
- package/dist/{opfs-storage-backend-D6Z03fML.d.ts → opfs-storage-backend-D1ZpeNEL.d.ts} +2 -2
- package/dist/{persistence-middleware-CG-t08X4.d.ts → persistence-middleware-Cun4aF5M.d.ts} +13 -3
- package/dist/{planar-pnp-D7bc_rLX.d.ts → planar-pnp-ByxwDEyM.d.ts} +2 -2
- package/dist/{ar-BqCudtqE.js → qr-CTp5xI83.js} +24 -34
- package/dist/{qr-debug-view-BJooqbiP.d.ts → qr-debug-view-CGlITU09.d.ts} +2 -2
- package/dist/{qr-derived-pose-BwNWn8oV.d.ts → qr-derived-pose-DZPxZd9C.d.ts} +3 -3
- package/dist/{qr-detected-slice-TzVb8bij.d.ts → qr-detected-slice-mfyxD2-M.d.ts} +9 -8
- package/dist/{qr-detection-controller-Bo4XfQTP.d.ts → qr-detection-controller-C5NII-vs.d.ts} +4 -4
- package/dist/{qr-detection-controller-B-tLVd-S.js → qr-detection-controller-DXc1yHRf.js} +3 -3
- package/dist/{qr-frontend-BPURlh3S.d.ts → qr-frontend-QzKZSqB-.d.ts} +2 -2
- package/dist/{qr-pose-y3vaEd6x.d.ts → qr-pose-21fRDcFO.d.ts} +1 -1
- package/dist/{qr-pose-aggregation-DBiaLW0O.js → qr-pose-aggregation-Cp0Mtg_j.js} +7 -12
- package/dist/{qr-pose-aggregation-CypnmjA-.d.ts → qr-pose-aggregation-mABSN0AW.d.ts} +2 -2
- package/dist/{qr-size-depth-context-apAOmbrZ.d.ts → qr-size-depth-context-CMDv6T29.d.ts} +3 -3
- package/dist/{qr-size-measurer-DxiMqRUw.d.ts → qr-size-measurer-rVFf4AdM.d.ts} +5 -5
- package/dist/{qr-size-measurer-DLb33geH.js → qr-size-measurer-zZB9S1va.js} +9 -15
- package/dist/{recording-replayer-BJ8Lf0QY.d.ts → recording-replayer-qT2EM1Qs.d.ts} +2 -2
- package/dist/{recording-slice-BW8SiLo1.d.ts → recording-slice-DXw5-UvO.d.ts} +10 -5
- package/dist/{replay-engine-DmCAc7WM.d.ts → replay-engine-B1H_kLhK.d.ts} +1 -1
- package/dist/{replay-scene-zJ8SFDjE.d.ts → replay-scene-BJeO36YT.d.ts} +12 -5
- package/dist/sensors/absolute-orientation.d.ts +1 -1
- package/dist/sensors/absolute-orientation.js +1 -1
- package/dist/sensors/gps-error-handler.d.ts +1 -1
- package/dist/sensors/gps.d.ts +1 -1
- package/dist/sensors/gps.js +10 -8
- package/dist/sensors/index.d.ts +3 -3
- package/dist/sensors/index.js +1 -1
- package/dist/sensors/permission-checker.js +71 -40
- package/dist/{session-disposers-BPrMplIC.js → session-disposers-B7hUN90w.js} +1 -1
- package/dist/state/app-selectors.d.ts +1 -1
- package/dist/state/combined-root-state.d.ts +1 -1
- package/dist/state/create-slam-app-store.d.ts +1 -1
- package/dist/state/create-slam-app-store.js +1 -1
- package/dist/state/gps-ar-pose-sampler.d.ts +2 -3
- package/dist/state/gps-ar-pose-sampler.js +1 -1
- package/dist/state/gps-event-coordinator.d.ts +2 -1
- package/dist/state/gps-event-coordinator.js +4 -46
- package/dist/state/index.d.ts +19 -20
- package/dist/state/index.js +6 -5
- package/dist/state/persistence-middleware.d.ts +2 -2
- package/dist/state/persistence-middleware.js +24 -15
- package/dist/state/qr-detected-slice.d.ts +3 -3
- package/dist/state/qr-detected-slice.js +11 -15
- package/dist/state/recording-replayer.d.ts +2 -2
- package/dist/state/recording-replayer.js +1 -1
- package/dist/state/recording-slice.d.ts +1 -1
- package/dist/state/replay-engine.d.ts +1 -1
- package/dist/state/store-subscribers.d.ts +2 -2
- package/dist/state/store-subscribers.js +23 -6
- package/dist/state/subscribe-to-selector.d.ts +1 -1
- package/dist/state/tracking-quality.d.ts +1 -1
- package/dist/state/tracking-quality.js +14 -11
- package/dist/state/tracking-slice.d.ts +1 -1
- package/dist/{state-BeKvn4B-.js → state-CDF5LvsO.js} +2 -4
- package/dist/storage/file-system-utils.d.ts +1 -1
- package/dist/storage/file-system-utils.js +1 -1
- package/dist/storage/index.d.ts +8 -8
- package/dist/storage/null-storage-backend.d.ts +1 -1
- package/dist/storage/opfs-storage-backend.d.ts +1 -1
- package/dist/storage/opfs-storage.d.ts +1 -1
- package/dist/storage/storage-backend.d.ts +1 -1
- package/dist/storage/zip-coverage-embed.d.ts +1 -1
- package/dist/storage/zip-coverage-embed.js +1 -1
- package/dist/storage/zip-export.d.ts +1 -1
- package/dist/storage/zip-export.js +10 -4
- package/dist/storage/zip-reader.d.ts +1 -1
- package/dist/{storage-backend-sEtmM4yW.d.ts → storage-backend-BX7egQKi.d.ts} +1 -1
- package/dist/{store-subscribers-DJUErW-o.d.ts → store-subscribers-CWHToX6N.d.ts} +2 -2
- package/dist/{subscribe-to-selector-dQV8SpsO.d.ts → subscribe-to-selector-j-eOYybQ.d.ts} +1 -1
- package/dist/test-utils/browser-mocks.d.ts +1 -1
- package/dist/test-utils/zip-round-trip-helpers.d.ts +1 -1
- package/dist/{tracking-slice-DMkHlbny.d.ts → tracking-slice-BAbcZK-Y.d.ts} +3 -2
- package/dist/types/ar-types.d.ts +2 -2
- package/dist/types/ar-types.js +31 -1
- package/dist/types/geo-types.d.ts +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.js +2 -1
- package/dist/utils/concurrency.d.ts +1 -1
- package/dist/utils/failure-tracker.d.ts +1 -1
- package/dist/utils/format-file-size.d.ts +1 -1
- package/dist/utils/fused-path.d.ts +1 -1
- package/dist/utils/fused-path.js +1 -1
- package/dist/utils/index.d.ts +7 -7
- package/dist/utils/index.js +1 -1
- package/dist/utils/list-formatter.d.ts +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +30 -20
- package/dist/visualization/accuracy-circles.d.ts +1 -1
- package/dist/visualization/accuracy-circles.js +1 -1
- package/dist/visualization/alignment-lerper.d.ts +1 -1
- package/dist/visualization/alignment-lerper.js +20 -5
- package/dist/visualization/ar-world-group-alignment.d.ts +1 -1
- package/dist/visualization/ar-world-group-alignment.js +2 -2
- package/dist/visualization/camera-follower.d.ts +1 -1
- package/dist/visualization/css3d-renderer-manager.d.ts +1 -1
- package/dist/visualization/frame-conversions.d.ts +1 -1
- package/dist/visualization/frustum-visibility.d.ts +1 -1
- package/dist/visualization/gps-anchor.d.ts +1 -1
- package/dist/visualization/gps-anchor.js +44 -19
- package/dist/visualization/gps-compass-cubes.d.ts +1 -1
- package/dist/visualization/gps-event-markers.d.ts +2 -2
- package/dist/visualization/gps-event-markers.js +27 -6
- package/dist/visualization/hit-test-reticle.d.ts +1 -1
- package/dist/visualization/index.d.ts +19 -20
- package/dist/visualization/index.js +4 -5
- package/dist/visualization/leaflet-map-overlay.d.ts +1 -1
- package/dist/visualization/leaflet-map-overlay.js +1 -1
- package/dist/visualization/lerp-utils.d.ts +1 -1
- package/dist/visualization/map-data.d.ts +1 -1
- package/dist/visualization/map-data.js +1 -1
- package/dist/visualization/map-overlay-draw.d.ts +1 -1
- package/dist/visualization/occluder-mesh-driver.d.ts +2 -2
- package/dist/visualization/occluder-mesh-driver.js +1 -1
- package/dist/visualization/occlusion-mesh.d.ts +2 -2
- package/dist/visualization/occlusion-mesh.js +29 -14
- package/dist/visualization/three-dispose.d.ts +1 -1
- package/dist/visualization/vis-colors.d.ts +1 -1
- package/dist/{webxr-session-BWCpGd-2.d.ts → webxr-session-DefwObIu.d.ts} +143 -193
- package/dist/{webxr-session-BCP2XK7k.js → webxr-session-OyR3YbTq.js} +154 -284
- package/dist/{xr-frame-loop-DX3JPpAU.d.ts → xr-frame-loop-BiZvgqP7.d.ts} +1 -1
- package/dist/{zip-coverage-embed-ncVbaZAz.d.ts → zip-coverage-embed-CyoX7XL7.d.ts} +1 -1
- package/package.json +5 -3
- package/dist/ar/qr-debug-view.d.ts +0 -2
- package/dist/ar/qr-detection-controller.js +0 -2
- package/dist/ar/qr-size-depth-context.d.ts +0 -3
- package/dist/ar/qr-size-measurer.js +0 -2
- package/dist/capture-motion-gate-BGoAMkmf.d.ts +0 -24
- package/dist/map-overlay-BCQgvIgU.d.ts +0 -153
- package/dist/recording-options-DYKWVI93.d.ts +0 -693
- package/dist/state/recording-options.d.ts +0 -2
- package/dist/state/recording-options.js +0 -591
- package/dist/visualization/map-overlay.d.ts +0 -2
- package/dist/visualization/map-overlay.js +0 -241
- /package/dist/{bresenham3d-DGc4nIb-.d.ts → bresenham3d-D-t9i_b5.d.ts} +0 -0
- /package/dist/{camera-blit-capture-BimSdyih.d.ts → camera-blit-capture-BlC-arRb.d.ts} +0 -0
- /package/dist/{camera-follower-DfBm2J5i.d.ts → camera-follower-CO_ibF2o.d.ts} +0 -0
- /package/dist/{capture-failure-tracker-_BVfhpxv.d.ts → capture-failure-tracker-BAUKjtXU.d.ts} +0 -0
- /package/dist/{cell-key-DIB4rOTV.js → cell-key-Bj-eYTLA.js} +0 -0
- /package/dist/{concurrency-DPeGBH0X.d.ts → concurrency-DW0jQo3G.d.ts} +0 -0
- /package/dist/{css3d-renderer-manager-CPpVtvgs.d.ts → css3d-renderer-manager-CJjHtCMT.d.ts} +0 -0
- /package/dist/{failure-tracker-CeKf5HIc.d.ts → failure-tracker-B7fzPfZo.d.ts} +0 -0
- /package/dist/{format-file-size-DxN-EBLc.d.ts → format-file-size-Da8rZgfs.d.ts} +0 -0
- /package/dist/{frustum-visibility-CokkgS_i.d.ts → frustum-visibility-COPfzruF.d.ts} +0 -0
- /package/dist/{geo-types-DrGVu8nS.d.ts → geo-types-BfDK8kJu.d.ts} +0 -0
- /package/dist/{gps-compass-cubes-1mooS3BS.d.ts → gps-compass-cubes-CT3TWctJ.d.ts} +0 -0
- /package/dist/{gps-error-handler-C34GQuTu.d.ts → gps-error-handler-DjVuLXve.d.ts} +0 -0
- /package/dist/{hit-test-reticle-CaQbrhbk.d.ts → hit-test-reticle-DhnCMOsc.d.ts} +0 -0
- /package/dist/{index-DXPVzOpP.d.ts → index-CjxbDm8W.d.ts} +0 -0
- /package/dist/{index-D74JTX4I.d.ts → index-Nr3qg4IH.d.ts} +0 -0
- /package/dist/{lerp-utils-Qs8OhumS.d.ts → lerp-utils-bwMwVCpU.d.ts} +0 -0
- /package/dist/{list-formatter-DLFDnS70.d.ts → list-formatter-1ttG18MQ.d.ts} +0 -0
- /package/dist/{logger-CqTd5Kpk.d.ts → logger-B4StJUDb.d.ts} +0 -0
- /package/dist/{opfs-storage-CTkxvxN4.d.ts → opfs-storage-S_odkCk1.d.ts} +0 -0
- /package/dist/{scene-node-names-CGb-ylBd.d.ts → scene-node-names-DWzhE7Ro.d.ts} +0 -0
- /package/dist/{three-dispose-BMOAmPhb.d.ts → three-dispose-C3mnKQR5.d.ts} +0 -0
- /package/dist/{vis-colors-C7HI0u9_.d.ts → vis-colors-CoSpbZEO.d.ts} +0 -0
- /package/dist/{webxr-nue-basis-CaCnYxuq.d.ts → webxr-nue-basis-C3vTqkE2.d.ts} +0 -0
- /package/dist/{xr-error-handler-uVGDu9IX.d.ts → xr-error-handler-D9y5r8ok.d.ts} +0 -0
- /package/dist/{zip-export-CtiUnAlJ.d.ts → zip-export-CuBimX1J.d.ts} +0 -0
- /package/dist/{zip-reader-BzENzMH6.d.ts → zip-reader-BHc_b_iA.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -262,19 +262,19 @@ that guard's `APP_OVERLAY_CONTRACTS` list.
|
|
|
262
262
|
|
|
263
263
|
WebXR session lifecycle, Three.js renderer setup, image/depth capture, replay scene management.
|
|
264
264
|
|
|
265
|
-
| Export
|
|
266
|
-
|
|
|
267
|
-
| `initAR(container, isolation?, features?)`
|
|
268
|
-
| `endARSession()`
|
|
269
|
-
| `createEnableGpsArController()`
|
|
270
|
-
| `registerXrFrameUpdate(cb)`
|
|
271
|
-
| `isFullySupported(s)` / `capabilityMessage(s)`
|
|
272
|
-
| `startImageCapture()` / `stopImageCapture()`
|
|
273
|
-
| `ImageCaptureManager`
|
|
274
|
-
| `DepthSampler`
|
|
275
|
-
| `CameraBlitCapture`
|
|
276
|
-
| `initReplayScene(container)`
|
|
277
|
-
| `applyChromiumProjectionLayerWorkaround`
|
|
265
|
+
| Export | Description |
|
|
266
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
267
|
+
| `initAR(container, isolation?, features?, callbacks?)` | Start a WebXR AR session with Three.js rendering. `features.requestHitTest` opts the session into the WebXR `hit-test` feature. `callbacks` (`ArSessionCallbacks`) carries ALL per-session host callbacks — `imageCapture`, `tracking` (store + callbacks together), `depth`, `cameraFrame`, `onFrame`, `onSessionEnd` — replacing the former pre-init setter exports; re-pass it with each session (cleared at session end). `rebindTrackingStore(store)` remains for the one mid-session need (swapping the tracking store per recording) |
|
|
268
|
+
| `endARSession()` | End the active XR session |
|
|
269
|
+
| `createEnableGpsArController()` | Headless "Enable GPS AR" orchestration (support check + permission bundling + sensor watches + `initAR`) with observable state; the app renders its own button over it |
|
|
270
|
+
| `registerXrFrameUpdate(cb)` | Per-frame access to the live `XRFrame` + reference space + session (valid only synchronously inside the callback). Enables app-side hit-test / other WebXR features |
|
|
271
|
+
| `isFullySupported(s)` / `capabilityMessage(s)` | WebXR + geolocation capability gating + a user-facing message |
|
|
272
|
+
| `startImageCapture()` / `stopImageCapture()` | Toggle camera frame capture |
|
|
273
|
+
| `ImageCaptureManager` | Configurable camera frame capture pipeline |
|
|
274
|
+
| `DepthSampler` | Depth buffer sampling with configurable grids |
|
|
275
|
+
| `CameraBlitCapture` | GPU blit-based camera capture |
|
|
276
|
+
| `initReplayScene(container)` | Create a 3D replay scene with orbit/FPS controls |
|
|
277
|
+
| `applyChromiumProjectionLayerWorkaround` | Chromium camera-access tab-crash workaround. Always deletes projection-layer hooks (forces `XRWebGLLayer`; required on every affected build incl. Chrome 150) and additionally persists `baseLayer` only on the affected Chrome window (148.0.7778.12 up to 149.0.7821) |
|
|
278
278
|
|
|
279
279
|
### `sensors/` — GPS & Permissions
|
|
280
280
|
|
|
@@ -341,7 +341,6 @@ H3-based proximity matching for GPS-anchored points (renamed from `ref-points/`
|
|
|
341
341
|
| Export | Description |
|
|
342
342
|
| ------------------------------ | ------------------------------------------------------ |
|
|
343
343
|
| `LeafletMapOverlay` | 2D Leaflet map integrated via CSS3D into a 3D scene. |
|
|
344
|
-
| `MapOverlay` | Tile-based 3D map overlay (no Leaflet dependency). |
|
|
345
344
|
| `GpsEventVisualizer` | Three.js spheres for GPS event positions. |
|
|
346
345
|
| `createAlignmentLerper()` | Smooth alignment matrix interpolation. |
|
|
347
346
|
| `createCameraFollower()` | Camera that tracks a moving target. |
|
|
@@ -392,6 +391,7 @@ pnpm run build # build with tsdown
|
|
|
392
391
|
```
|
|
393
392
|
src/
|
|
394
393
|
├── ar/ # WebXR session, capture, replay scene
|
|
394
|
+
│ └── qr/ # QR detection, pose (planar PnP), size-from-depth, GPS vote
|
|
395
395
|
├── sensors/ # GPS, orientation, permissions
|
|
396
396
|
├── state/ # createSlamAppStore, recording, replay, persistence middleware
|
|
397
397
|
├── storage/ # OPFS, ZIP export/import, StorageBackend
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* AbsoluteOrientationSensor capture (Generic Sensor API).
|
|
4
4
|
*
|
|
5
5
|
* Phase 1 of the AbsoluteOrientationSensor plan
|
|
6
|
-
* (GpsPlusSlamJs_Docs/docs/2026-06-25-absolute-orientation-sensor-plan.md §5.1):
|
|
6
|
+
* (GpsPlusSlamJs_Docs/docs/2026-06-25-0543-absolute-orientation-sensor-plan.md §5.1):
|
|
7
7
|
* passive instrumentation that fuses accelerometer + gyroscope + magnetometer
|
|
8
8
|
* into an Earth-referenced (ENU) quaternion, captured per GPS event as an
|
|
9
9
|
* independent north reference. No production behaviour change.
|
|
@@ -16,7 +16,7 @@ import L from "leaflet";
|
|
|
16
16
|
* @deprecated Stroke-only since 2026-06-28 (Finding 1) — accuracy circles no
|
|
17
17
|
* longer render a fill, so this opacity is unused. Retained as an exported
|
|
18
18
|
* constant only to preserve the published API surface; do not pass it to
|
|
19
|
-
* `L.circle`. See `2026-06-28-map-rings-transparency-and-view-direction-user-feedback.md`.
|
|
19
|
+
* `L.circle`. See `2026-06-28-1822-map-rings-transparency-and-view-direction-user-feedback.md`.
|
|
20
20
|
*/
|
|
21
21
|
declare const ACCURACY_CIRCLE_FILL_OPACITY = 0.12;
|
|
22
22
|
declare const ACCURACY_CIRCLE_STROKE_OPACITY = 0.5;
|
|
@@ -18,12 +18,6 @@ interface AlignmentLerper {
|
|
|
18
18
|
/** Lifecycle cleanup (no-op — lerper does not own arWorldGroup). */
|
|
19
19
|
dispose(): void;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Create an AlignmentLerper that drives arWorldGroup.matrix smoothly.
|
|
23
|
-
*
|
|
24
|
-
* @param arWorldGroup The group whose matrix is interpolated.
|
|
25
|
-
* @param lerpRate Lerp speed multiplier (default 8).
|
|
26
|
-
*/
|
|
27
21
|
declare function createAlignmentLerper(arWorldGroup: THREE.Object3D, lerpRate?: number): AlignmentLerper;
|
|
28
22
|
//#endregion
|
|
29
23
|
export { createAlignmentLerper as n, AlignmentLerper as t };
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import { N as CombinedRootState
|
|
1
|
+
import { N as CombinedRootState } from "./create-slam-app-store-DFm5K9Ob.js";
|
|
2
2
|
import * as _$gps_plus_slam_js0 from "gps-plus-slam-js";
|
|
3
3
|
import { ArImageCapture, GpsPoint, LatLong, Matrix4, Quaternion, Vector3 } from "gps-plus-slam-js";
|
|
4
4
|
import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
|
|
5
5
|
|
|
6
6
|
//#region ../src/state/app-selectors.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Minimal root these selectors read (quality-review G-2). Typed as a Pick of
|
|
9
|
+
* the `gpsData` slice ONLY, so ANY consumer store that mounts the library's
|
|
10
|
+
* gpsData reducer is structurally assignable — the former full
|
|
11
|
+
* `CombinedRootState` parameter forced `as unknown as` casts (MinimalExample),
|
|
12
|
+
* a `sel()` helper (AnchorStarter), or a re-declared root type (RecorderApp)
|
|
13
|
+
* in every consumer, and a renamed slice would have compiled and failed at
|
|
14
|
+
* runtime.
|
|
15
|
+
*/
|
|
16
|
+
type RootWithGpsData = Pick<CombinedRootState, 'gpsData'>;
|
|
7
17
|
/** Alignment matrix (4×4), or null if not yet computed. */
|
|
8
|
-
declare const selectAlignmentMatrix: ((state:
|
|
18
|
+
declare const selectAlignmentMatrix: ((state: RootWithGpsData) => Matrix4 | null) & {
|
|
9
19
|
clearCache: () => void;
|
|
10
20
|
resultsCount: () => number;
|
|
11
21
|
resetResultsCount: () => void;
|
|
@@ -17,7 +27,7 @@ declare const selectAlignmentMatrix: ((state: SlamAppRootState & {}) => Matrix4
|
|
|
17
27
|
resetResultsCount: () => void;
|
|
18
28
|
};
|
|
19
29
|
lastResult: () => Matrix4 | null;
|
|
20
|
-
dependencies: [(state:
|
|
30
|
+
dependencies: [(state: RootWithGpsData) => _$gps_plus_slam_js0.GpsModel | null];
|
|
21
31
|
recomputations: () => number;
|
|
22
32
|
resetRecomputations: () => void;
|
|
23
33
|
dependencyRecomputations: () => number;
|
|
@@ -27,7 +37,7 @@ declare const selectAlignmentMatrix: ((state: SlamAppRootState & {}) => Matrix4
|
|
|
27
37
|
argsMemoize: typeof _$_reduxjs_toolkit0.weakMapMemoize;
|
|
28
38
|
};
|
|
29
39
|
/** Recorded GPS positions with metadata. */
|
|
30
|
-
declare const selectGpsPositions: ((state:
|
|
40
|
+
declare const selectGpsPositions: ((state: RootWithGpsData) => readonly GpsPoint[]) & {
|
|
31
41
|
clearCache: () => void;
|
|
32
42
|
resultsCount: () => number;
|
|
33
43
|
resetResultsCount: () => void;
|
|
@@ -39,7 +49,7 @@ declare const selectGpsPositions: ((state: SlamAppRootState & {}) => readonly Gp
|
|
|
39
49
|
resetResultsCount: () => void;
|
|
40
50
|
};
|
|
41
51
|
lastResult: () => readonly GpsPoint[];
|
|
42
|
-
dependencies: [(state:
|
|
52
|
+
dependencies: [(state: RootWithGpsData) => _$gps_plus_slam_js0.GpsModel | null];
|
|
43
53
|
recomputations: () => number;
|
|
44
54
|
resetRecomputations: () => void;
|
|
45
55
|
dependencyRecomputations: () => number;
|
|
@@ -49,7 +59,7 @@ declare const selectGpsPositions: ((state: SlamAppRootState & {}) => readonly Gp
|
|
|
49
59
|
argsMemoize: typeof _$_reduxjs_toolkit0.weakMapMemoize;
|
|
50
60
|
};
|
|
51
61
|
/** Recorded odometry positions (AR-local space). */
|
|
52
|
-
declare const selectOdometryPositions: ((state:
|
|
62
|
+
declare const selectOdometryPositions: ((state: RootWithGpsData) => readonly Vector3[]) & {
|
|
53
63
|
clearCache: () => void;
|
|
54
64
|
resultsCount: () => number;
|
|
55
65
|
resetResultsCount: () => void;
|
|
@@ -61,7 +71,7 @@ declare const selectOdometryPositions: ((state: SlamAppRootState & {}) => readon
|
|
|
61
71
|
resetResultsCount: () => void;
|
|
62
72
|
};
|
|
63
73
|
lastResult: () => readonly Vector3[];
|
|
64
|
-
dependencies: [(state:
|
|
74
|
+
dependencies: [(state: RootWithGpsData) => _$gps_plus_slam_js0.GpsModel | null];
|
|
65
75
|
recomputations: () => number;
|
|
66
76
|
resetRecomputations: () => void;
|
|
67
77
|
dependencyRecomputations: () => number;
|
|
@@ -71,7 +81,7 @@ declare const selectOdometryPositions: ((state: SlamAppRootState & {}) => readon
|
|
|
71
81
|
argsMemoize: typeof _$_reduxjs_toolkit0.weakMapMemoize;
|
|
72
82
|
};
|
|
73
83
|
/** Recorded odometry rotations (AR-local space). */
|
|
74
|
-
declare const selectOdometryRotations: ((state:
|
|
84
|
+
declare const selectOdometryRotations: ((state: RootWithGpsData) => readonly Quaternion[]) & {
|
|
75
85
|
clearCache: () => void;
|
|
76
86
|
resultsCount: () => number;
|
|
77
87
|
resetResultsCount: () => void;
|
|
@@ -83,7 +93,7 @@ declare const selectOdometryRotations: ((state: SlamAppRootState & {}) => readon
|
|
|
83
93
|
resetResultsCount: () => void;
|
|
84
94
|
};
|
|
85
95
|
lastResult: () => readonly Quaternion[];
|
|
86
|
-
dependencies: [(state:
|
|
96
|
+
dependencies: [(state: RootWithGpsData) => _$gps_plus_slam_js0.GpsModel | null];
|
|
87
97
|
recomputations: () => number;
|
|
88
98
|
resetRecomputations: () => void;
|
|
89
99
|
dependencyRecomputations: () => number;
|
|
@@ -93,7 +103,7 @@ declare const selectOdometryRotations: ((state: SlamAppRootState & {}) => readon
|
|
|
93
103
|
argsMemoize: typeof _$_reduxjs_toolkit0.weakMapMemoize;
|
|
94
104
|
};
|
|
95
105
|
/** GPS zero reference (origin for coordinate conversion), or null. */
|
|
96
|
-
declare const selectZeroReference: ((state:
|
|
106
|
+
declare const selectZeroReference: ((state: RootWithGpsData) => LatLong | null) & {
|
|
97
107
|
clearCache: () => void;
|
|
98
108
|
resultsCount: () => number;
|
|
99
109
|
resetResultsCount: () => void;
|
|
@@ -105,7 +115,7 @@ declare const selectZeroReference: ((state: SlamAppRootState & {}) => LatLong |
|
|
|
105
115
|
resetResultsCount: () => void;
|
|
106
116
|
};
|
|
107
117
|
lastResult: () => LatLong | null;
|
|
108
|
-
dependencies: [(state:
|
|
118
|
+
dependencies: [(state: RootWithGpsData) => _$gps_plus_slam_js0.GpsModel | null];
|
|
109
119
|
recomputations: () => number;
|
|
110
120
|
resetRecomputations: () => void;
|
|
111
121
|
dependencyRecomputations: () => number;
|
|
@@ -114,7 +124,7 @@ declare const selectZeroReference: ((state: SlamAppRootState & {}) => LatLong |
|
|
|
114
124
|
memoize: typeof _$_reduxjs_toolkit0.weakMapMemoize;
|
|
115
125
|
argsMemoize: typeof _$_reduxjs_toolkit0.weakMapMemoize;
|
|
116
126
|
};
|
|
117
|
-
declare const selectFrameTilesInWebXR: ((state:
|
|
127
|
+
declare const selectFrameTilesInWebXR: ((state: RootWithGpsData) => readonly ArImageCapture[]) & {
|
|
118
128
|
clearCache: () => void;
|
|
119
129
|
resultsCount: () => number;
|
|
120
130
|
resetResultsCount: () => void;
|
|
@@ -126,7 +136,7 @@ declare const selectFrameTilesInWebXR: ((state: SlamAppRootState & {}) => readon
|
|
|
126
136
|
resetResultsCount: () => void;
|
|
127
137
|
};
|
|
128
138
|
lastResult: () => readonly ArImageCapture[];
|
|
129
|
-
dependencies: [(state:
|
|
139
|
+
dependencies: [(state: RootWithGpsData) => ArImageCapture[] | undefined];
|
|
130
140
|
recomputations: () => number;
|
|
131
141
|
resetRecomputations: () => void;
|
|
132
142
|
dependencyRecomputations: () => number;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region ../src/ar/ar-crash-isolation.ts
|
|
2
|
+
/** Default AR-crash-isolation flags (all features enabled). */
|
|
3
|
+
const DEFAULT_AR_CRASH_ISOLATION = {
|
|
4
|
+
enableDomOverlay: true,
|
|
5
|
+
enableCameraAccess: true,
|
|
6
|
+
enableDepthSensingFeature: true,
|
|
7
|
+
enableCss3dRenderer: true,
|
|
8
|
+
enableCameraTextureAcquisition: true,
|
|
9
|
+
applyChromiumProjectionLayerWorkaround: true
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Boolean-or-default (quality-review C-1): persisted/external values are
|
|
13
|
+
* untrusted, so anything that is not a real boolean falls back to the
|
|
14
|
+
* default. Local copy of the recorder catalog's helper — the validator must
|
|
15
|
+
* stay dependency-free so the framework owns the whole group.
|
|
16
|
+
*/
|
|
17
|
+
function boolOr(value, fallback) {
|
|
18
|
+
return typeof value === "boolean" ? value : fallback;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate and normalize AR crash isolation flags.
|
|
22
|
+
* Missing or invalid values fall back to defaults. The container itself is as
|
|
23
|
+
* untrusted as its fields (persisted blobs may lack the key entirely or hold
|
|
24
|
+
* `null`), so a nullish container yields the full defaults instead of
|
|
25
|
+
* throwing.
|
|
26
|
+
*/
|
|
27
|
+
function validateArCrashIsolationOptions(rawOptions) {
|
|
28
|
+
const options = rawOptions ?? {};
|
|
29
|
+
const defaults = DEFAULT_AR_CRASH_ISOLATION;
|
|
30
|
+
return {
|
|
31
|
+
enableDomOverlay: boolOr(options.enableDomOverlay, defaults.enableDomOverlay),
|
|
32
|
+
enableCameraAccess: boolOr(options.enableCameraAccess, defaults.enableCameraAccess),
|
|
33
|
+
enableDepthSensingFeature: boolOr(options.enableDepthSensingFeature, defaults.enableDepthSensingFeature),
|
|
34
|
+
enableCss3dRenderer: boolOr(options.enableCss3dRenderer, defaults.enableCss3dRenderer),
|
|
35
|
+
enableCameraTextureAcquisition: boolOr(options.enableCameraTextureAcquisition, defaults.enableCameraTextureAcquisition),
|
|
36
|
+
applyChromiumProjectionLayerWorkaround: boolOr(options.applyChromiumProjectionLayerWorkaround, defaults.applyChromiumProjectionLayerWorkaround)
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { DEFAULT_AR_CRASH_ISOLATION, validateArCrashIsolationOptions };
|
package/dist/ar/bresenham3d.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as MAX_TRACE_STEPS, r as bresenham3d, t as GridCell } from "../bresenham3d-
|
|
1
|
+
import { n as MAX_TRACE_STEPS, r as bresenham3d, t as GridCell } from "../bresenham3d-D-t9i_b5.js";
|
|
2
2
|
export { GridCell, MAX_TRACE_STEPS, bresenham3d };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as computeCaptureSize, i as computeAspectFitSize, n as CameraBlitCaptureConfig, r as DEFAULT_BLIT_CONFIG, t as CameraBlitCapture } from "../camera-blit-capture-
|
|
1
|
+
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";
|
|
2
2
|
export { CameraBlitCapture, CameraBlitCaptureConfig, DEFAULT_BLIT_CONFIG, computeAspectFitSize, computeCaptureSize };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as isFullySupported, n as CapabilitySupport, r as capabilityMessage, t as CapabilityMessageOptions } from "../capability-checker-
|
|
1
|
+
import { i as isFullySupported, n as CapabilitySupport, r as capabilityMessage, t as CapabilityMessageOptions } from "../capability-checker-BZ3_x1YL.js";
|
|
2
2
|
export { CapabilityMessageOptions, CapabilitySupport, capabilityMessage, isFullySupported };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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";
|
|
2
2
|
export { CAPTURE_FAILURE_WARNING, CaptureFailureTracker, CaptureFailureTrackerConfig, DEFAULT_CAPTURE_TRACKER_CONFIG, createCaptureFailureTracker };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as MotionWindow, i as MotionFilterConfig, n as DEFAULT_MOTION_FILTER, o as decideCapture, r as DEFAULT_MOTION_WINDOW_SIZE, t as CaptureDecisionInput } from "../capture-motion-gate-CPwLekNf.js";
|
|
2
|
+
export { CaptureDecisionInput, DEFAULT_MOTION_FILTER, DEFAULT_MOTION_WINDOW_SIZE, MotionFilterConfig, MotionWindow, decideCapture };
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//#region ../src/ar/capture-motion-gate.ts
|
|
2
|
+
/**
|
|
3
|
+
* Capture motion gate — the policy that decides whether a *due* capture should
|
|
4
|
+
* fire on the current frame or be deferred until the device settles.
|
|
5
|
+
*
|
|
6
|
+
* Two cohesive pieces, both pure/deterministic and unit-testable in isolation
|
|
7
|
+
* from `ImageCaptureManager`:
|
|
8
|
+
* - {@link decideCapture} — the stateless capture-vs-defer decision over the
|
|
9
|
+
* windowed motion maxima, the thresholds, and the time since the capture
|
|
10
|
+
* became due (the never-calm safety fallback).
|
|
11
|
+
* - {@link MotionWindow} — a tiny fixed-size ring of recent per-frame
|
|
12
|
+
* velocities with glitch rejection, so the decision judges "max over the
|
|
13
|
+
* last N frames" rather than one lucky-calm sample.
|
|
14
|
+
*
|
|
15
|
+
* The window size and glitch ceilings are INTERNAL constants, deliberately not
|
|
16
|
+
* user-facing config: the user-facing surface is only enabled / maxAngular /
|
|
17
|
+
* maxLinear / maxWaitMs (plan §5.1). Keeping the stateful policy here (not in a
|
|
18
|
+
* speculative framework-wide service) matches the plan's §4.1 scope note.
|
|
19
|
+
*
|
|
20
|
+
* @see GpsPlusSlamJs_Docs/docs/2026-06-23-2105-blurry-frame-motion-gating-plan.md §4.2-4.4
|
|
21
|
+
*/
|
|
22
|
+
/** Default number of recent frames the gate judges motion over (~50 ms @ 60fps). */
|
|
23
|
+
const DEFAULT_MOTION_WINDOW_SIZE = 3;
|
|
1
24
|
/**
|
|
2
25
|
* Angular velocity (rad/s) above which a sample is treated as a tracking glitch
|
|
3
26
|
* (e.g. relocalization teleport), not real motion. A genuine hand/device turn
|
|
@@ -27,7 +50,7 @@ const LINEAR_GLITCH_CEILING_M_S = 20;
|
|
|
27
50
|
* — demoting the (weak-at-scanning-distance) linear signal to a gross-motion
|
|
28
51
|
* safety net and letting the well-behaved angular gate be the primary blur
|
|
29
52
|
* selector. See
|
|
30
|
-
* `GpsPlusSlamJs_Docs/docs/2026-07-02-image-capture-rate-motion-gate-finding.md`.
|
|
53
|
+
* `GpsPlusSlamJs_Docs/docs/2026-07-02-0117-image-capture-rate-motion-gate-finding.md`.
|
|
31
54
|
*
|
|
32
55
|
* `maxAngularVelocity` remains a PLACEHOLDER pending on-device field tuning
|
|
33
56
|
* (plan §7). `maxWaitMs` of 4000 ms is 2× the default 2000 ms image interval.
|
|
@@ -103,4 +126,4 @@ var MotionWindow = class {
|
|
|
103
126
|
}
|
|
104
127
|
};
|
|
105
128
|
//#endregion
|
|
106
|
-
export {
|
|
129
|
+
export { DEFAULT_MOTION_FILTER, DEFAULT_MOTION_WINDOW_SIZE, MotionWindow, decideCapture };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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";
|
|
2
2
|
export { BASELAYER_WINDOW_MAX, BASELAYER_WINDOW_MIN, ChromeVersion, ChromiumProjectionLayerWorkaroundResult, applyChromiumProjectionLayerWorkaround, needsBaseLayerPersistence, parseChromeVersion };
|
|
@@ -11,7 +11,7 @@ import { createLogger } from "../utils/logger.js";
|
|
|
11
11
|
* added — i.e. it is not specific to this app's session setup. See:
|
|
12
12
|
*
|
|
13
13
|
* - GpsPlusSlamJs_Docs/docs/2026-04-22-camera-access-reproducer-plan.md
|
|
14
|
-
* - GpsPlusSlamJs_Docs/docs/2026-06-04-camera-access-crash-regression-chrome-148.md
|
|
14
|
+
* - GpsPlusSlamJs_Docs/docs/2026-06-04-0458-camera-access-crash-regression-chrome-148.md
|
|
15
15
|
* - https://github.com/mrdoob/three.js/issues/33404
|
|
16
16
|
* - https://issues.chromium.org/issues/507508099 (root-cause, marked Fixed)
|
|
17
17
|
*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createDepthGridLookup, t as DepthGridLookup } from "../depth-grid-lookup-
|
|
1
|
+
import { n as createDepthGridLookup, t as DepthGridLookup } from "../depth-grid-lookup-CCuzlqUo.js";
|
|
2
2
|
export { DepthGridLookup, createDepthGridLookup };
|
|
@@ -10,7 +10,7 @@ import * as THREE from "three";
|
|
|
10
10
|
* occludes per-pixel against the surface currently in view (sharp, registration-
|
|
11
11
|
* free, no memory). They **compose** — both depth-only under `arWorldGroup`, the
|
|
12
12
|
* live occluder wins where this frame has depth, the mesh fills out-of-view / depth
|
|
13
|
-
* holes (2026-06-14-webxr-depth-occlusion-plan.md §5).
|
|
13
|
+
* holes (2026-06-14-0009-webxr-depth-occlusion-plan.md §5).
|
|
14
14
|
*
|
|
15
15
|
* **Two layers, two confidence levels:**
|
|
16
16
|
* - The **pure occlusion math** (this file's exported functions) is the CI-tested
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as DepthSample } from "../ar-types-
|
|
2
|
-
import { a as wrapXRDepthInfo, i as DepthSamplerConfig, n as DepthSampler, r as DepthSamplerCallbacks, t as DepthInfo } from "../depth-sampler-
|
|
1
|
+
import { i as DepthSample } from "../ar-types-D6PYS4bc.js";
|
|
2
|
+
import { a as wrapXRDepthInfo, i as DepthSamplerConfig, n as DepthSampler, r as DepthSamplerCallbacks, t as DepthInfo } from "../depth-sampler-CS2jAFw4.js";
|
|
3
3
|
export { DepthInfo, DepthSample, DepthSampler, DepthSamplerCallbacks, DepthSamplerConfig, wrapXRDepthInfo };
|
package/dist/ar/depth-sampler.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { extractOdomPosition } from "../
|
|
1
|
+
import { extractOdomPosition } from "../types/ar-types.js";
|
|
2
2
|
//#region ../src/ar/depth-sampler.ts
|
|
3
3
|
/**
|
|
4
4
|
* Defensively copy a 16-element column-major matrix into a plain serializable
|
|
@@ -127,19 +127,30 @@ var DepthSampler = class {
|
|
|
127
127
|
if (typeof config.rgb === "boolean") this.config.rgb = config.rgb;
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
|
-
* Called each frame with depth
|
|
130
|
+
* Called each frame with a LAZY depth provider (quality-review E-4: the
|
|
131
|
+
* caller used to acquire + wrap the depth info every frame while this
|
|
132
|
+
* method threw ~59 of 60 acquisitions away at the interval check — the
|
|
133
|
+
* provider is now invoked only when a sample is due).
|
|
134
|
+
*
|
|
135
|
+
* Unavailability detection is preserved by construction:
|
|
136
|
+
* `lastSampleTime` only advances when a sample is EMITTED, so while depth
|
|
137
|
+
* is unavailable the sampler stays "due" and probes the provider every
|
|
138
|
+
* frame — exactly the cadence the old per-frame acquisition gave
|
|
139
|
+
* `checkDepthUnavailability` (Field Test Readiness Issue #8).
|
|
131
140
|
*
|
|
132
141
|
* @param timestamp - Current frame timestamp in milliseconds
|
|
133
|
-
* @param
|
|
142
|
+
* @param acquireDepthInfo - Returns the frame's depth info, or null if
|
|
143
|
+
* unavailable. Only invoked when a sample is due.
|
|
134
144
|
*/
|
|
135
|
-
onFrame(timestamp,
|
|
145
|
+
onFrame(timestamp, acquireDepthInfo) {
|
|
136
146
|
if (!this.running) return;
|
|
147
|
+
if (timestamp - this.lastSampleTime < this.config.intervalMs) return;
|
|
148
|
+
const depthInfo = acquireDepthInfo();
|
|
137
149
|
if (!depthInfo) {
|
|
138
150
|
this.checkDepthUnavailability();
|
|
139
151
|
return;
|
|
140
152
|
}
|
|
141
153
|
this.depthReceived = true;
|
|
142
|
-
if (timestamp - this.lastSampleTime < this.config.intervalMs) return;
|
|
143
154
|
const pose = this.callbacks.getCurrentPose();
|
|
144
155
|
if (!pose) return;
|
|
145
156
|
const points = this.sampleGrid(depthInfo, this.acquireRgbLookupSafely());
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createDepthUnprojector, r as unprojectDepthPoint, t as DepthUnprojector } from "../depth-unprojection-
|
|
1
|
+
import { n as createDepthUnprojector, r as unprojectDepthPoint, t as DepthUnprojector } from "../depth-unprojection-ET3Gwedf.js";
|
|
2
2
|
export { DepthUnprojector, createDepthUnprojector, unprojectDepthPoint };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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";
|
|
2
2
|
export { EnableGpsArConfig, EnableGpsArController, EnableGpsArDeps, EnableGpsArResult, EnableGpsArState, EnableGpsArStatus, createEnableGpsArController };
|
package/dist/ar/enable-gps-ar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger.js";
|
|
2
|
-
import {
|
|
2
|
+
import { _ as initAR, a as endARSession, v as isWebXRSupported } from "../webxr-session-OyR3YbTq.js";
|
|
3
3
|
import { requestGeolocationPermission, requestOrientationPermission, requestWebXRWithDepthPermission } from "../sensors/permission-checker.js";
|
|
4
4
|
import { startGpsWatch, startOrientationWatch, stopGpsWatch, stopOrientationWatch } from "../sensors/gps.js";
|
|
5
5
|
//#region ../src/ar/enable-gps-ar.ts
|
|
@@ -78,7 +78,7 @@ function createEnableGpsArController(deps = {}) {
|
|
|
78
78
|
try {
|
|
79
79
|
const permissionError = await requestPermissions(config);
|
|
80
80
|
if (permissionError !== null) return fail(permissionError);
|
|
81
|
-
await resolved.initAR(config.container, config.isolationOptions, { requestHitTest: config.requestHitTest });
|
|
81
|
+
await resolved.initAR(config.container, config.isolationOptions, { requestHitTest: config.requestHitTest }, config.callbacks);
|
|
82
82
|
sessionStarted = true;
|
|
83
83
|
if (config.onGpsPosition) {
|
|
84
84
|
resolved.startGpsWatch(config.onGpsPosition);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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";
|
|
2
2
|
export { CapturedFrame, CapturedImage, DEFAULT_CAPTURE_CONFIG, FrameQualityVerdict, ImageCaptureCallbacks, ImageCaptureConfig, ImageCaptureManager, MIN_VALID_IMAGE_BYTES };
|
package/dist/ar/image-capture.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as ImageCaptureManager, r as MIN_VALID_IMAGE_BYTES, t as DEFAULT_CAPTURE_CONFIG } from "../image-capture-
|
|
1
|
+
import { n as ImageCaptureManager, r as MIN_VALID_IMAGE_BYTES, t as DEFAULT_CAPTURE_CONFIG } from "../image-capture-C4DwxC10.js";
|
|
2
2
|
export { DEFAULT_CAPTURE_CONFIG, ImageCaptureManager, MIN_VALID_IMAGE_BYTES };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { DEFAULT_QUALITY_FILTER, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, ImageQualityGate, QualityFilterConfig, QualityRejectReason, QualityVerdict, meanLuminance, rgbaToGrayscale, sharpnessScore };
|
|
1
|
+
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";
|
|
2
|
+
export { BLUR_METRIC_IDS, BlurMetricId, DEFAULT_QUALITY_FILTER, DEFAULT_SHARPNESS_HISTORY_SIZE, DEFAULT_SHARPNESS_MIN_SAMPLES, ImageQualityGate, QualityFilterConfig, QualityRejectReason, QualityVerdict, blurMetricScorer, highFrequencyEnergyRatio, meanLuminance, rgbaToGrayscale, sharpnessScore };
|