gps-plus-slam-app-framework 1.11.0 → 1.14.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 +13 -14
- package/dist/{app-selectors-DG0ZqaeI.d.ts → app-selectors-DBUgwomp.d.ts} +1 -1
- package/dist/ar/ar-crash-isolation.d.ts +1 -1
- 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 +1 -1
- package/dist/ar/chromium-camera-access-workaround.d.ts +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-sampler.d.ts +3 -3
- package/dist/ar/depth-sampler.js +28 -1
- 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 +20 -5
- package/dist/ar/frame-loop.d.ts +1 -1
- package/dist/ar/hit-test-reticle-driver.d.ts +2 -0
- package/dist/ar/hit-test-reticle-driver.js +122 -0
- package/dist/ar/image-capture.d.ts +1 -1
- package/dist/ar/image-capture.js +1 -1
- package/dist/ar/image-quality.d.ts +1 -1
- package/dist/ar/index.d.ts +35 -34
- package/dist/ar/index.js +5 -4
- package/dist/ar/occlusion-mesh-worker.d.ts +2 -2
- package/dist/ar/occlusion-mesh-worker.js +6 -4
- package/dist/ar/occupancy-grid.d.ts +2 -2
- package/dist/ar/occupancy-grid.js +191 -11
- package/dist/ar/occupancy-mesher.d.ts +1 -1
- package/dist/ar/occupancy-mesher.js +1 -636
- package/dist/ar/qr/index.d.ts +10 -10
- package/dist/ar/qr/planar-pnp.d.ts +1 -1
- package/dist/ar/qr/qr-debug-view.d.ts +1 -1
- package/dist/ar/qr/qr-derived-pose.d.ts +1 -1
- package/dist/ar/qr/qr-detection-controller.d.ts +1 -1
- package/dist/ar/qr/qr-frontend.d.ts +1 -1
- package/dist/ar/qr/qr-pose.d.ts +1 -1
- package/dist/ar/qr/qr-size-depth-context.d.ts +2 -2
- package/dist/ar/qr/qr-size-measurer.d.ts +1 -1
- package/dist/ar/replay-scene.d.ts +1 -1
- package/dist/ar/replay-scene.js +1 -1
- 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 +3 -3
- package/dist/ar/webxr-session.js +1 -1
- package/dist/ar/xr-camera-texture.d.ts +1 -1
- package/dist/ar/xr-error-handler.d.ts +1 -1
- package/dist/ar/xr-frame-loop.d.ts +1 -1
- package/dist/{ar-world-group-alignment-BdS_h8Nf.d.ts → ar-world-group-alignment-Dn_UiRy1.d.ts} +1 -1
- package/dist/{cell-key-Bj-eYTLA.js → cell-key-D1b_Ix-p.js} +12 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/{create-slam-app-store-oK9bnqyI.js → create-slam-app-store-B62K8_Qr.js} +17 -4
- package/dist/{create-slam-app-store-DFm5K9Ob.d.ts → create-slam-app-store-sxb1-esK.d.ts} +34 -4
- package/dist/{depth-grid-lookup-CCuzlqUo.d.ts → depth-grid-lookup-PcJTdRLL.d.ts} +1 -1
- package/dist/{depth-sampler-CS2jAFw4.d.ts → depth-sampler-BcvuxgCS.d.ts} +29 -2
- package/dist/{depth-unprojection-ET3Gwedf.d.ts → depth-unprojection-DbGipFkA.d.ts} +1 -1
- package/dist/{enable-gps-ar-D_xEHzh5.d.ts → enable-gps-ar-xjz3jNqm.d.ts} +4 -4
- package/dist/{frame-conversions-CH7E2Iv_.d.ts → frame-conversions-CzPQDYpM.d.ts} +1 -1
- package/dist/{fused-path-DOKzVMiO.d.ts → fused-path-CBAttcVm.d.ts} +1 -1
- package/dist/geo/h3-proximity.d.ts +1 -1
- package/dist/geo/index.d.ts +1 -1
- package/dist/{gps-anchor-BaqyRsPC.d.ts → gps-anchor-Gv4NDwH4.d.ts} +1 -1
- package/dist/{gps-ar-pose-sampler-BuuUuK-D.d.ts → gps-ar-pose-sampler-DBEYDFY5.d.ts} +1 -1
- package/dist/{gps-event-coordinator-Cruoe5I-.d.ts → gps-event-coordinator-BAy56wYd.d.ts} +4 -4
- package/dist/{gps-event-markers-y2b2aVl6.d.ts → gps-event-markers-212h7j3D.d.ts} +4 -4
- package/dist/hit-test-reticle-driver-CfKiDgsa.d.ts +40 -0
- package/dist/{image-capture-BevgKpoO.d.ts → image-capture-BXmx1YvD.d.ts} +3 -3
- package/dist/{index-Dxb6ATNK.d.ts → index-DVmgFIgm.d.ts} +1 -1
- package/dist/{index-BWVwd9Zw.d.ts → index-DX9VC257.d.ts} +3 -3
- package/dist/{index-ClmnNJ6-.d.ts → index-qYJ5-SBC.d.ts} +1 -1
- package/dist/index.d.ts +89 -82
- package/dist/index.js +17 -10
- package/dist/{leaflet-map-overlay-CksetpTt.d.ts → leaflet-map-overlay-BkHmzvpD.d.ts} +1 -1
- package/dist/{map-data-D8cCqpOM.d.ts → map-data-BQXPtRz7.d.ts} +1 -1
- package/dist/{map-overlay-draw-Cy-klqoA.d.ts → map-overlay-draw-sTM3wug_.d.ts} +1 -1
- package/dist/{null-storage-backend-DXXuwG8T.d.ts → null-storage-backend-Dtn3TBfT.d.ts} +2 -2
- package/dist/{occlusion-mesh-BWe2PrVi.d.ts → occlusion-mesh-BY2aMej3.d.ts} +22 -4
- package/dist/occupancy-cubes-visualizer-soN0Sizd.d.ts +146 -0
- package/dist/{occupancy-grid-CYBdmMOo.d.ts → occupancy-grid-DKzIdCSZ.d.ts} +113 -3
- package/dist/{occupancy-mesher-B4Bv4BTk.d.ts → occupancy-mesher-Co80tOpl.d.ts} +22 -1
- package/dist/occupancy-mesher-DzNeJdQf.js +837 -0
- package/dist/{opfs-storage-backend-D1ZpeNEL.d.ts → opfs-storage-backend-CZ-ECudx.d.ts} +2 -2
- package/dist/perf-stats-overlay-BMEQrzx6.d.ts +68 -0
- package/dist/{persistence-middleware-Cun4aF5M.d.ts → persistence-middleware-Byo_Fs4n.d.ts} +1 -1
- package/dist/{planar-pnp-ByxwDEyM.d.ts → planar-pnp-CkcMN3o3.d.ts} +1 -1
- package/dist/pointer-picking-BATHHTlT.d.ts +41 -0
- package/dist/{qr-debug-view-CGlITU09.d.ts → qr-debug-view-BMjNVhV2.d.ts} +1 -1
- package/dist/{qr-derived-pose-DZPxZd9C.d.ts → qr-derived-pose-Dq7mPK2s.d.ts} +2 -2
- package/dist/{qr-detected-slice-mfyxD2-M.d.ts → qr-detected-slice-8t_laDR9.d.ts} +4 -4
- package/dist/{qr-detection-controller-C5NII-vs.d.ts → qr-detection-controller-Dh4Paymb.d.ts} +3 -3
- package/dist/{qr-frontend-QzKZSqB-.d.ts → qr-frontend-BnLlVjKu.d.ts} +1 -1
- package/dist/{qr-pose-aggregation-mABSN0AW.d.ts → qr-pose-aggregation-Bpv4uARJ.d.ts} +1 -1
- package/dist/{qr-size-depth-context-CMDv6T29.d.ts → qr-size-depth-context-Bzbx98nS.d.ts} +2 -2
- package/dist/{qr-size-measurer-rVFf4AdM.d.ts → qr-size-measurer-18_W3INY.d.ts} +3 -3
- package/dist/{recording-replayer-qT2EM1Qs.d.ts → recording-replayer-CpFiYczh.d.ts} +2 -2
- package/dist/{recording-slice-DXw5-UvO.d.ts → recording-slice-zMedT0ot.d.ts} +1 -1
- package/dist/{replay-engine-B1H_kLhK.d.ts → replay-engine-DI7uknkv.d.ts} +1 -1
- package/dist/{replay-scene-BJeO36YT.d.ts → replay-scene-D5qzY0_x.d.ts} +3 -3
- package/dist/sensors/absolute-orientation.d.ts +1 -1
- package/dist/sensors/gps-error-handler.d.ts +1 -1
- package/dist/sensors/gps.d.ts +1 -1
- package/dist/sensors/index.d.ts +4 -4
- package/dist/sensors/permission-checker.d.ts +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 -2
- package/dist/state/gps-event-coordinator.d.ts +2 -2
- package/dist/state/gps-event-coordinator.js +1 -1
- package/dist/state/index.d.ts +18 -18
- package/dist/state/index.js +3 -3
- package/dist/state/persistence-middleware.d.ts +1 -1
- package/dist/state/qr-detected-slice.d.ts +3 -3
- 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/replay-occupancy-subscriber.d.ts +51 -0
- package/dist/state/replay-occupancy-subscriber.js +85 -0
- package/dist/state/replay-session.d.ts +88 -0
- package/dist/state/replay-session.js +165 -0
- package/dist/state/store-subscribers.d.ts +2 -2
- package/dist/state/store-subscribers.js +1 -1
- package/dist/state/subscribe-to-selector.d.ts +1 -1
- package/dist/state/tracking-quality.d.ts +1 -1
- package/dist/state/tracking-slice.d.ts +1 -1
- package/dist/{state-CDF5LvsO.js → state-BECcnNRW.js} +1 -1
- package/dist/storage/file-system-utils.d.ts +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-export.d.ts +1 -1
- package/dist/storage/zip-reader.d.ts +1 -1
- package/dist/{storage-backend-BX7egQKi.d.ts → storage-backend-DCYbOvTw.d.ts} +1 -1
- package/dist/{store-subscribers-CWHToX6N.d.ts → store-subscribers-BenHBQhD.d.ts} +2 -2
- package/dist/{subscribe-to-selector-j-eOYybQ.d.ts → subscribe-to-selector-hitZwSj8.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/text-sprite-C6VcC2mo.d.ts +53 -0
- package/dist/{tracking-slice-BAbcZK-Y.d.ts → tracking-slice-D5LDL_y4.d.ts} +1 -1
- package/dist/types/ar-types.d.ts +1 -1
- package/dist/types/geo-types.d.ts +1 -1
- package/dist/types/index.d.ts +2 -2
- 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/index.d.ts +7 -7
- package/dist/utils/list-formatter.d.ts +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/visualization/accuracy-circles.d.ts +1 -1
- package/dist/visualization/alignment-lerper.d.ts +1 -1
- package/dist/visualization/ar-world-group-alignment.d.ts +1 -1
- package/dist/visualization/ar-world-group-alignment.js +1 -1
- 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-compass-cubes.d.ts +1 -1
- package/dist/visualization/gps-compass-cubes.js +6 -22
- package/dist/visualization/gps-event-markers.d.ts +1 -1
- package/dist/visualization/gps-event-markers.js +1 -1
- package/dist/visualization/hit-test-reticle.d.ts +1 -1
- package/dist/visualization/hit-test-reticle.js +3 -2
- package/dist/visualization/index.d.ts +25 -19
- package/dist/visualization/index.js +10 -4
- 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/occlusion-mesh.d.ts +1 -1
- package/dist/visualization/occlusion-mesh.js +26 -1
- package/dist/visualization/occupancy-cubes-visualizer.d.ts +2 -0
- package/dist/visualization/occupancy-cubes-visualizer.js +221 -0
- package/dist/visualization/perf-stats-overlay.d.ts +2 -0
- package/dist/visualization/perf-stats-overlay.js +85 -0
- package/dist/visualization/pointer-picking.d.ts +2 -0
- package/dist/visualization/pointer-picking.js +58 -0
- package/dist/visualization/text-sprite.d.ts +2 -0
- package/dist/visualization/text-sprite.js +105 -0
- package/dist/visualization/three-dispose.d.ts +1 -1
- package/dist/visualization/vis-colors.d.ts +1 -1
- package/dist/visualization/wayfinding-hud.d.ts +2 -0
- package/dist/visualization/wayfinding-hud.js +289 -0
- package/dist/visualization/wayfinding-placement.d.ts +2 -0
- package/dist/visualization/wayfinding-placement.js +157 -0
- package/dist/wayfinding-hud-DVun2b69.d.ts +82 -0
- package/dist/wayfinding-placement-dnHzfYlT.d.ts +97 -0
- package/dist/{webxr-session-OyR3YbTq.js → webxr-session-BBlgzrqY.js} +3 -3
- package/dist/{webxr-session-DefwObIu.d.ts → webxr-session-DurXRnl_.d.ts} +7 -7
- package/package.json +3 -3
- /package/dist/{absolute-orientation-Dj1One3y.d.ts → absolute-orientation-0WIsqJnu.d.ts} +0 -0
- /package/dist/{accuracy-circles-BHz7yVIL.d.ts → accuracy-circles-CFnKGfsD.d.ts} +0 -0
- /package/dist/{alignment-lerper-DAHicRON.d.ts → alignment-lerper-CK1TYLIL.d.ts} +0 -0
- /package/dist/{ar-crash-isolation-DlXCGzMf.d.ts → ar-crash-isolation-BSFw_beO.d.ts} +0 -0
- /package/dist/{ar-types-D6PYS4bc.d.ts → ar-types-BprL3nKv.d.ts} +0 -0
- /package/dist/{bresenham3d-D-t9i_b5.d.ts → bresenham3d-bt61R-Qa.d.ts} +0 -0
- /package/dist/{camera-blit-capture-BlC-arRb.d.ts → camera-blit-capture-CgNJ9grH.d.ts} +0 -0
- /package/dist/{camera-follower-CO_ibF2o.d.ts → camera-follower-OnnXsbHd.d.ts} +0 -0
- /package/dist/{capability-checker-BZ3_x1YL.d.ts → capability-checker-DrWimJ_t.d.ts} +0 -0
- /package/dist/{capture-failure-tracker-BAUKjtXU.d.ts → capture-failure-tracker-bUXJeMvQ.d.ts} +0 -0
- /package/dist/{capture-motion-gate-CPwLekNf.d.ts → capture-motion-gate-C60Qrilh.d.ts} +0 -0
- /package/dist/{chromium-camera-access-workaround-BHR4clTE.d.ts → chromium-camera-access-workaround-BRs6gkI4.d.ts} +0 -0
- /package/dist/{concurrency-DW0jQo3G.d.ts → concurrency-CMhbkxBk.d.ts} +0 -0
- /package/dist/{css3d-renderer-manager-CJjHtCMT.d.ts → css3d-renderer-manager-CE6xN7XM.d.ts} +0 -0
- /package/dist/{device-orientation-cache-j-kLP8he.js → device-orientation-cache-BjEaEAmh.js} +0 -0
- /package/dist/{failure-tracker-B7fzPfZo.d.ts → failure-tracker-BdaFulDA.d.ts} +0 -0
- /package/dist/{file-system-utils-BHI0rXr9.d.ts → file-system-utils-DE3BViuq.d.ts} +0 -0
- /package/dist/{format-file-size-Da8rZgfs.d.ts → format-file-size-B2CJdRqD.d.ts} +0 -0
- /package/dist/{frame-loop-7GBMBu68.d.ts → frame-loop-CUEIdlhS.d.ts} +0 -0
- /package/dist/{frustum-visibility-COPfzruF.d.ts → frustum-visibility-BTx1Sqfo.d.ts} +0 -0
- /package/dist/{geo-types-BfDK8kJu.d.ts → geo-types-DGe5UKgx.d.ts} +0 -0
- /package/dist/{gps-CnhYrJCa.d.ts → gps-CC0l9lCp.d.ts} +0 -0
- /package/dist/{gps-compass-cubes-CT3TWctJ.d.ts → gps-compass-cubes-QQJgpRXR.d.ts} +0 -0
- /package/dist/{gps-error-handler-DjVuLXve.d.ts → gps-error-handler-da4DCcs5.d.ts} +0 -0
- /package/dist/{h3-proximity-BaAulrnM.d.ts → h3-proximity-CAEk3osq.d.ts} +0 -0
- /package/dist/{hit-test-reticle-DhnCMOsc.d.ts → hit-test-reticle-DcOyqo3B.d.ts} +0 -0
- /package/dist/{image-capture-C4DwxC10.js → image-capture-Dn8uLIP2.js} +0 -0
- /package/dist/{image-quality--HLuyJ2r.d.ts → image-quality-G7_qT4aj.d.ts} +0 -0
- /package/dist/{index-CjxbDm8W.d.ts → index-T8Fxvzka.d.ts} +0 -0
- /package/dist/{index-Nr3qg4IH.d.ts → index-Y_RNWbQX.d.ts} +0 -0
- /package/dist/{leaflet-map-overlay-CTcTVmL1.js → leaflet-map-overlay-DjWfRT8a.js} +0 -0
- /package/dist/{lerp-utils-bwMwVCpU.d.ts → lerp-utils-B-ecvLq2.d.ts} +0 -0
- /package/dist/{list-formatter-1ttG18MQ.d.ts → list-formatter-C45u3Vgv.d.ts} +0 -0
- /package/dist/{logger-B4StJUDb.d.ts → logger-BQGNXi9W.d.ts} +0 -0
- /package/dist/{map-data-DkhsYDGM.js → map-data-vL8jb5Z9.js} +0 -0
- /package/dist/{opfs-storage-S_odkCk1.d.ts → opfs-storage-CrhVauNL.d.ts} +0 -0
- /package/dist/{permission-checker-B-VtjnBA.d.ts → permission-checker-BDrCOwQF.d.ts} +0 -0
- /package/dist/{qr-pose-21fRDcFO.d.ts → qr-pose-_dInl6di.d.ts} +0 -0
- /package/dist/{scene-node-names-DWzhE7Ro.d.ts → scene-node-names-Ct6ATrfM.d.ts} +0 -0
- /package/dist/{session-disposers-B7hUN90w.js → session-disposers-BJM5U62W.js} +0 -0
- /package/dist/{three-dispose-C3mnKQR5.d.ts → three-dispose-B5-XiECx.d.ts} +0 -0
- /package/dist/{vis-colors-CoSpbZEO.d.ts → vis-colors-16Pht13u.d.ts} +0 -0
- /package/dist/{webxr-nue-basis-C3vTqkE2.d.ts → webxr-nue-basis-B8ZEetVb.d.ts} +0 -0
- /package/dist/{xr-camera-texture-q0eIDSRg.d.ts → xr-camera-texture-BA4xiaQ4.d.ts} +0 -0
- /package/dist/{xr-error-handler-D9y5r8ok.d.ts → xr-error-handler-BeyxXCE_.d.ts} +0 -0
- /package/dist/{xr-frame-loop-BiZvgqP7.d.ts → xr-frame-loop-A1mGDFHI.d.ts} +0 -0
- /package/dist/{zip-coverage-embed-CyoX7XL7.d.ts → zip-coverage-embed-BC3O2-8b.d.ts} +0 -0
- /package/dist/{zip-export-CuBimX1J.d.ts → zip-export-Cfl_kNQ7.d.ts} +0 -0
- /package/dist/{zip-reader-BHc_b_iA.d.ts → zip-reader-DwkuvlGo.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as SessionMetadata } from "./opfs-storage-
|
|
2
|
-
import { n as StorageBackend, t as CreateSessionResult } from "./storage-backend-
|
|
1
|
+
import { n as SessionMetadata } from "./opfs-storage-CrhVauNL.js";
|
|
2
|
+
import { n as StorageBackend, t as CreateSessionResult } from "./storage-backend-DCYbOvTw.js";
|
|
3
3
|
|
|
4
4
|
//#region ../src/storage/opfs-storage-backend.d.ts
|
|
5
5
|
declare class OpfsStorageBackend implements StorageBackend {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
//#region ../src/visualization/perf-stats-overlay.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Stats.js performance overlay — an FPS / frame-ms / MB panel row that any
|
|
4
|
+
* consumer can mount over its scene (desktop) or WebXR dom-overlay (AR).
|
|
5
|
+
*
|
|
6
|
+
* Shared framework home for what was two near-identical app copies (the
|
|
7
|
+
* recorder's optional debug toggle and the physics demo's always-on harness).
|
|
8
|
+
* Whether the overlay is shown at all — always, or behind a toggle — is the
|
|
9
|
+
* caller's decision; this module only owns the panel mechanics.
|
|
10
|
+
*
|
|
11
|
+
* mrdoob's Stats.js (bundled with three as `three/addons/libs/stats.module.js`,
|
|
12
|
+
* no extra dependency) shows ONE panel at a time and cycles on tap — unusable
|
|
13
|
+
* at a glance mid-session, so this wrapper mounts one Stats instance per panel
|
|
14
|
+
* and lays them out in a flex row. The MB panel needs the Chrome-only
|
|
15
|
+
* `performance.memory`; it is omitted where unsupported.
|
|
16
|
+
*
|
|
17
|
+
* Read-only instrument: `pointer-events: none` so it never swallows a pointer
|
|
18
|
+
* meant for the scene or the HUD it shares the AR dom-overlay layer with.
|
|
19
|
+
* Callers own the per-frame cadence — call `update()` once per rendered frame
|
|
20
|
+
* (the rAF loop or the XR frame callback) — and must `dispose()` on session
|
|
21
|
+
* teardown so panels never stack across Enter-AR cycles.
|
|
22
|
+
*
|
|
23
|
+
* Both the Stats constructor AND the container factory are injectable: the real
|
|
24
|
+
* Stats builds a `<canvas>` 2D context and `document.createElement` needs a DOM,
|
|
25
|
+
* neither of which a node test environment provides — tests inject plain fakes,
|
|
26
|
+
* so this module is testable without jsdom.
|
|
27
|
+
*/
|
|
28
|
+
/** The subset of the Stats.js API this overlay drives (test-fakeable). */
|
|
29
|
+
interface PerfStatsInstance {
|
|
30
|
+
readonly dom: HTMLElement;
|
|
31
|
+
showPanel(id: number): void;
|
|
32
|
+
update(): void;
|
|
33
|
+
}
|
|
34
|
+
interface PerfStatsOverlayOptions {
|
|
35
|
+
/** Injected Stats constructor for tests. Default: real `three/addons` Stats. */
|
|
36
|
+
readonly statsFactory?: () => PerfStatsInstance;
|
|
37
|
+
/**
|
|
38
|
+
* Whether the MB panel's `performance.memory` source exists. Default: probed
|
|
39
|
+
* from the live `performance` object (Chrome-only API).
|
|
40
|
+
*/
|
|
41
|
+
readonly memorySupported?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Container factory. Default: `document.createElement('div')`. Inject in node
|
|
44
|
+
* unit tests (or any host without a DOM) so no jsdom is required.
|
|
45
|
+
*/
|
|
46
|
+
readonly createContainer?: () => HTMLElement;
|
|
47
|
+
}
|
|
48
|
+
interface PerfStatsOverlayHandle {
|
|
49
|
+
/** The mounted container element (removed again by `dispose`). */
|
|
50
|
+
readonly dom: HTMLElement;
|
|
51
|
+
/** Number of panels mounted (3, or 2 without `performance.memory`). */
|
|
52
|
+
readonly panelCount: number;
|
|
53
|
+
/** Advance all panels one frame. No-op after `dispose`. */
|
|
54
|
+
update(): void;
|
|
55
|
+
/** Remove the overlay from the DOM. Idempotent. */
|
|
56
|
+
dispose(): void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Mount the perf panels into `parent` and return the drive handle.
|
|
60
|
+
*
|
|
61
|
+
* @param parent - host element; in live AR this must be (inside) the WebXR
|
|
62
|
+
* dom-overlay root, or the panels cannot composite over the camera view.
|
|
63
|
+
* @throws TypeError when `parent` is not a DOM element (fail fast — a silent
|
|
64
|
+
* no-op overlay would hide the framerate it exists to show).
|
|
65
|
+
*/
|
|
66
|
+
declare function createPerfStatsOverlay(parent: HTMLElement, options?: PerfStatsOverlayOptions): PerfStatsOverlayHandle;
|
|
67
|
+
//#endregion
|
|
68
|
+
export { createPerfStatsOverlay as i, PerfStatsOverlayHandle as n, PerfStatsOverlayOptions as r, PerfStatsInstance as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as OpenCvPnpResult, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics } from "./qr-pose-
|
|
1
|
+
import { n as OpenCvPnpResult, r as Point2, s as SolvePnpSquare, t as CameraIntrinsics } from "./qr-pose-_dInl6di.js";
|
|
2
2
|
import { Vector3 } from "gps-plus-slam-js";
|
|
3
3
|
|
|
4
4
|
//#region ../src/ar/qr/planar-pnp.d.ts
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
|
|
3
|
+
//#region ../src/visualization/pointer-picking.d.ts
|
|
4
|
+
/** Normalized device coordinates, each component in [-1, 1]. */
|
|
5
|
+
interface Ndc {
|
|
6
|
+
readonly x: number;
|
|
7
|
+
readonly y: number;
|
|
8
|
+
}
|
|
9
|
+
/** The subset of `DOMRect` this module needs (so tests need not fake a full one). */
|
|
10
|
+
interface ElementRect {
|
|
11
|
+
readonly left: number;
|
|
12
|
+
readonly top: number;
|
|
13
|
+
readonly width: number;
|
|
14
|
+
readonly height: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Convert a pointer's client position to normalized device coordinates in
|
|
18
|
+
* [-1, 1], with +Y up (WebGL/Three convention — the inverse of screen Y).
|
|
19
|
+
*
|
|
20
|
+
* Degenerate (zero-size) rects map to the centre (0, 0) rather than dividing by
|
|
21
|
+
* zero, so a pre-layout pointer event can never produce `NaN`.
|
|
22
|
+
*/
|
|
23
|
+
declare function pointerToNdc(clientX: number, clientY: number, rect: ElementRect): Ndc;
|
|
24
|
+
/**
|
|
25
|
+
* The nearest ray/geometry intersection from `camera` through the pointer NDC,
|
|
26
|
+
* or `null` when the ray misses every target. Recurses into children, so passing
|
|
27
|
+
* a group (or a single mesh) both work.
|
|
28
|
+
*
|
|
29
|
+
* Pass a reused `raycaster` in a hot loop to avoid per-call allocation. The
|
|
30
|
+
* caller is responsible for the objects' and camera's world matrices being
|
|
31
|
+
* up to date (they are after a render; call `updateMatrixWorld()` otherwise).
|
|
32
|
+
*/
|
|
33
|
+
declare function raycastPointer(camera: THREE.Camera, ndc: Ndc, objects: readonly THREE.Object3D[], raycaster?: THREE.Raycaster): THREE.Intersection | null;
|
|
34
|
+
/**
|
|
35
|
+
* Convenience over {@link raycastPointer}: the world-space hit point, or `null`
|
|
36
|
+
* on a miss. This is the "click a real surface → world point" primitive a
|
|
37
|
+
* placement layer wants.
|
|
38
|
+
*/
|
|
39
|
+
declare function pickWorldPoint(camera: THREE.Camera, ndc: Ndc, objects: readonly THREE.Object3D[], raycaster?: THREE.Raycaster): THREE.Vector3 | null;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { raycastPointer as a, pointerToNdc as i, Ndc as n, pickWorldPoint as r, ElementRect as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as Pose, r as Point2, s as SolvePnpSquare } from "./qr-pose-
|
|
2
|
-
import { a as QrSizeMeasurerOptions, n as QrSizeDepthContext } from "./qr-size-measurer-
|
|
1
|
+
import { i as Pose, r as Point2, s as SolvePnpSquare } from "./qr-pose-_dInl6di.js";
|
|
2
|
+
import { a as QrSizeMeasurerOptions, n as QrSizeDepthContext } from "./qr-size-measurer-18_W3INY.js";
|
|
3
3
|
import { Matrix4 } from "gps-plus-slam-js";
|
|
4
4
|
|
|
5
5
|
//#region ../src/ar/qr/qr-derived-pose.d.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as Pose, r as Point2 } from "./qr-pose-
|
|
2
|
-
import { l as QrSizeEstimate } from "./qr-size-measurer-
|
|
3
|
-
import { i as RawQrObservation, n as DerivedQrPlacement, t as DeriveQrPoseDeps } from "./qr-derived-pose-
|
|
4
|
-
import { a as QrPoseStability, o as QrPoseStabilityOptions } from "./qr-pose-aggregation-
|
|
1
|
+
import { i as Pose, r as Point2 } from "./qr-pose-_dInl6di.js";
|
|
2
|
+
import { l as QrSizeEstimate } from "./qr-size-measurer-18_W3INY.js";
|
|
3
|
+
import { i as RawQrObservation, n as DerivedQrPlacement, t as DeriveQrPoseDeps } from "./qr-derived-pose-Dq7mPK2s.js";
|
|
4
|
+
import { a as QrPoseStability, o as QrPoseStabilityOptions } from "./qr-pose-aggregation-Bpv4uARJ.js";
|
|
5
5
|
import { Matrix4, Vector3 } from "gps-plus-slam-js";
|
|
6
6
|
import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
|
|
7
7
|
import * as _$redux from "redux";
|
package/dist/{qr-detection-controller-C5NII-vs.d.ts → qr-detection-controller-Dh4Paymb.d.ts}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as Pose } from "./qr-pose-
|
|
2
|
-
import { i as QrDetection, o as RgbaImage } from "./qr-frontend-
|
|
3
|
-
import { i as RawQrObservation } from "./qr-derived-pose-
|
|
1
|
+
import { i as Pose } from "./qr-pose-_dInl6di.js";
|
|
2
|
+
import { i as QrDetection, o as RgbaImage } from "./qr-frontend-BnLlVjKu.js";
|
|
3
|
+
import { i as RawQrObservation } from "./qr-derived-pose-Dq7mPK2s.js";
|
|
4
4
|
import { Matrix4 } from "gps-plus-slam-js";
|
|
5
5
|
|
|
6
6
|
//#region ../src/ar/qr/qr-detection-controller.d.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as DepthSample } from "./ar-types-
|
|
2
|
-
import { n as QrSizeDepthContext } from "./qr-size-measurer-
|
|
1
|
+
import { i as DepthSample } from "./ar-types-BprL3nKv.js";
|
|
2
|
+
import { n as QrSizeDepthContext } from "./qr-size-measurer-18_W3INY.js";
|
|
3
3
|
|
|
4
4
|
//#region ../src/ar/qr/qr-size-depth-context.d.ts
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as DepthPoint } from "./ar-types-
|
|
2
|
-
import { t as DepthUnprojector } from "./depth-unprojection-
|
|
3
|
-
import { r as Point2 } from "./qr-pose-
|
|
1
|
+
import { r as DepthPoint } from "./ar-types-BprL3nKv.js";
|
|
2
|
+
import { t as DepthUnprojector } from "./depth-unprojection-DbGipFkA.js";
|
|
3
|
+
import { r as Point2 } from "./qr-pose-_dInl6di.js";
|
|
4
4
|
import { Vector3 } from "gps-plus-slam-js";
|
|
5
5
|
|
|
6
6
|
//#region ../src/ar/qr/qr-size-from-depth.d.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as CombinedRootState } from "./create-slam-app-store-
|
|
2
|
-
import { i as RecordedAction } from "./zip-reader-
|
|
1
|
+
import { N as CombinedRootState } from "./create-slam-app-store-sxb1-esK.js";
|
|
2
|
+
import { i as RecordedAction } from "./zip-reader-DwkuvlGo.js";
|
|
3
3
|
|
|
4
4
|
//#region ../src/state/recording-replayer.d.ts
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as CameraFollower } from "./camera-follower-
|
|
2
|
-
import { t as AlignmentLerper } from "./alignment-lerper-
|
|
3
|
-
import { t as Css3dRendererManager } from "./css3d-renderer-manager-
|
|
1
|
+
import { t as CameraFollower } from "./camera-follower-OnnXsbHd.js";
|
|
2
|
+
import { t as AlignmentLerper } from "./alignment-lerper-CK1TYLIL.js";
|
|
3
|
+
import { t as Css3dRendererManager } from "./css3d-renderer-manager-CE6xN7XM.js";
|
|
4
4
|
import * as THREE from "three";
|
|
5
5
|
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
|
|
6
6
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as startAbsoluteOrientationWatch, i as isAbsoluteOrientationAvailable, n as AbsoluteOrientationStatus, o as stopAbsoluteOrientationWatch, r as getLatestAbsoluteOrientation, t as AbsoluteOrientationReading } from "../absolute-orientation-
|
|
1
|
+
import { a as startAbsoluteOrientationWatch, i as isAbsoluteOrientationAvailable, n as AbsoluteOrientationStatus, o as stopAbsoluteOrientationWatch, r as getLatestAbsoluteOrientation, t as AbsoluteOrientationReading } from "../absolute-orientation-0WIsqJnu.js";
|
|
2
2
|
export { AbsoluteOrientationReading, AbsoluteOrientationStatus, getLatestAbsoluteOrientation, isAbsoluteOrientationAvailable, startAbsoluteOrientationWatch, stopAbsoluteOrientationWatch };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getGpsErrorMessage, i as createGpsErrorHandler, n as GPS_ERROR_MESSAGES, r as GPS_ERROR_MESSAGE_UNKNOWN, t as GPS_ERROR_CODES } from "../gps-error-handler-
|
|
1
|
+
import { a as getGpsErrorMessage, i as createGpsErrorHandler, n as GPS_ERROR_MESSAGES, r as GPS_ERROR_MESSAGE_UNKNOWN, t as GPS_ERROR_CODES } from "../gps-error-handler-da4DCcs5.js";
|
|
2
2
|
export { GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, createGpsErrorHandler, getGpsErrorMessage };
|
package/dist/sensors/gps.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as startOrientationWatch, i as startGpsWatch, n as RawDeviceOrientation, o as stopGpsWatch, r as requestOrientationPermission, s as stopOrientationWatch, t as GpsPosition } from "../gps-
|
|
1
|
+
import { a as startOrientationWatch, i as startGpsWatch, n as RawDeviceOrientation, o as stopGpsWatch, r as requestOrientationPermission, s as stopOrientationWatch, t as GpsPosition } from "../gps-CC0l9lCp.js";
|
|
2
2
|
export { GpsPosition, RawDeviceOrientation, requestOrientationPermission, startGpsWatch, startOrientationWatch, stopGpsWatch, stopOrientationWatch };
|
package/dist/sensors/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as startOrientationWatch, i as startGpsWatch, n as RawDeviceOrientation, o as stopGpsWatch, r as requestOrientationPermission, s as stopOrientationWatch, t as GpsPosition } from "../gps-
|
|
2
|
-
import { a as checkCameraPermission, c as checkOrientationPermission, d as requestCameraPermission, f as requestGeolocationPermission, g as setFileSystemState, h as resetFileSystemState, i as checkAllPermissions, l as checkWebXRSupport, m as requestWebXRWithDepthPermission, n as PermissionStatus, o as checkFileSystemPermission, p as requestOrientationPermission$1, s as checkGeolocationPermission, t as PermissionCheckResult, u as requestAllPermissions } from "../permission-checker-
|
|
3
|
-
import { a as startAbsoluteOrientationWatch, i as isAbsoluteOrientationAvailable, n as AbsoluteOrientationStatus, o as stopAbsoluteOrientationWatch, r as getLatestAbsoluteOrientation, t as AbsoluteOrientationReading } from "../absolute-orientation-
|
|
4
|
-
import { a as getGpsErrorMessage, i as createGpsErrorHandler, n as GPS_ERROR_MESSAGES, r as GPS_ERROR_MESSAGE_UNKNOWN, t as GPS_ERROR_CODES } from "../gps-error-handler-
|
|
1
|
+
import { a as startOrientationWatch, i as startGpsWatch, n as RawDeviceOrientation, o as stopGpsWatch, r as requestOrientationPermission, s as stopOrientationWatch, t as GpsPosition } from "../gps-CC0l9lCp.js";
|
|
2
|
+
import { a as checkCameraPermission, c as checkOrientationPermission, d as requestCameraPermission, f as requestGeolocationPermission, g as setFileSystemState, h as resetFileSystemState, i as checkAllPermissions, l as checkWebXRSupport, m as requestWebXRWithDepthPermission, n as PermissionStatus, o as checkFileSystemPermission, p as requestOrientationPermission$1, s as checkGeolocationPermission, t as PermissionCheckResult, u as requestAllPermissions } from "../permission-checker-BDrCOwQF.js";
|
|
3
|
+
import { a as startAbsoluteOrientationWatch, i as isAbsoluteOrientationAvailable, n as AbsoluteOrientationStatus, o as stopAbsoluteOrientationWatch, r as getLatestAbsoluteOrientation, t as AbsoluteOrientationReading } from "../absolute-orientation-0WIsqJnu.js";
|
|
4
|
+
import { a as getGpsErrorMessage, i as createGpsErrorHandler, n as GPS_ERROR_MESSAGES, r as GPS_ERROR_MESSAGE_UNKNOWN, t as GPS_ERROR_CODES } from "../gps-error-handler-da4DCcs5.js";
|
|
5
5
|
export { type AbsoluteOrientationReading, type AbsoluteOrientationStatus, GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, type GpsPosition, type PermissionCheckResult, type PermissionStatus, type RawDeviceOrientation, checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkWebXRSupport, createGpsErrorHandler, getGpsErrorMessage, getLatestAbsoluteOrientation, isAbsoluteOrientationAvailable, requestAllPermissions, requestCameraPermission, requestOrientationPermission as requestDeviceOrientationPermission, requestGeolocationPermission, requestOrientationPermission$1 as requestOrientationPermission, requestWebXRWithDepthPermission, resetFileSystemState, setFileSystemState, startAbsoluteOrientationWatch, startGpsWatch, startOrientationWatch, stopAbsoluteOrientationWatch, stopGpsWatch, stopOrientationWatch };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as subscribePermissionChanges, a as checkCameraPermission, c as checkOrientationPermission, d as requestCameraPermission, f as requestGeolocationPermission, g as setFileSystemState, h as resetFileSystemState, i as checkAllPermissions, l as checkWebXRSupport, m as requestWebXRWithDepthPermission, n as PermissionStatus, o as checkFileSystemPermission, p as requestOrientationPermission, r as PermissionSubscription, s as checkGeolocationPermission, t as PermissionCheckResult, u as requestAllPermissions } from "../permission-checker-
|
|
1
|
+
import { _ as subscribePermissionChanges, a as checkCameraPermission, c as checkOrientationPermission, d as requestCameraPermission, f as requestGeolocationPermission, g as setFileSystemState, h as resetFileSystemState, i as checkAllPermissions, l as checkWebXRSupport, m as requestWebXRWithDepthPermission, n as PermissionStatus, o as checkFileSystemPermission, p as requestOrientationPermission, r as PermissionSubscription, s as checkGeolocationPermission, t as PermissionCheckResult, u as requestAllPermissions } from "../permission-checker-BDrCOwQF.js";
|
|
2
2
|
export { PermissionCheckResult, PermissionStatus, PermissionSubscription, checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkWebXRSupport, requestAllPermissions, requestCameraPermission, requestGeolocationPermission, requestOrientationPermission, requestWebXRWithDepthPermission, resetFileSystemState, setFileSystemState, subscribePermissionChanges };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-
|
|
1
|
+
import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-DBUgwomp.js";
|
|
2
2
|
export { selectAlignmentMatrix, selectFrameTilesInWebXR, selectGpsPositions, selectOdometryPositions, selectOdometryRotations, selectZeroReference };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { N as CombinedRootState } from "../create-slam-app-store-
|
|
1
|
+
import { N as CombinedRootState } from "../create-slam-app-store-sxb1-esK.js";
|
|
2
2
|
export { CombinedRootState };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SlamAppStoreOptions, i as SlamAppStore, n as SlamAppMiddleware, o as createSlamAppStore, r as SlamAppRootState, t as SlamAppCombinedState } from "../create-slam-app-store-
|
|
1
|
+
import { a as SlamAppStoreOptions, i as SlamAppStore, n as SlamAppMiddleware, o as createSlamAppStore, r as SlamAppRootState, t as SlamAppCombinedState } from "../create-slam-app-store-sxb1-esK.js";
|
|
2
2
|
export { SlamAppCombinedState, SlamAppMiddleware, SlamAppRootState, SlamAppStore, SlamAppStoreOptions, createSlamAppStore };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createSlamAppStore } from "../create-slam-app-store-
|
|
1
|
+
import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
|
|
2
2
|
export { createSlamAppStore };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as extractOdomPosition, l as extractOdomRotation, t as ARPose } from "../ar-types-
|
|
2
|
-
import { i as captureGpsAnchorSample, n as GpsAnchorSample, r as GpsAnchorSampleGpsPoint, t as CaptureGpsAnchorSampleOptions } from "../gps-ar-pose-sampler-
|
|
1
|
+
import { c as extractOdomPosition, l as extractOdomRotation, t as ARPose } from "../ar-types-BprL3nKv.js";
|
|
2
|
+
import { i as captureGpsAnchorSample, n as GpsAnchorSample, r as GpsAnchorSampleGpsPoint, t as CaptureGpsAnchorSampleOptions } from "../gps-ar-pose-sampler-DBEYDFY5.js";
|
|
3
3
|
export { ARPose, CaptureGpsAnchorSampleOptions, GpsAnchorSample, GpsAnchorSampleGpsPoint, captureGpsAnchorSample, extractOdomPosition, extractOdomRotation };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as extractOdomPosition, l as extractOdomRotation } from "../ar-types-
|
|
2
|
-
import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, s as toRawAbsoluteOrientation, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-
|
|
1
|
+
import { c as extractOdomPosition, l as extractOdomRotation } from "../ar-types-BprL3nKv.js";
|
|
2
|
+
import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, s as toRawAbsoluteOrientation, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-BAy56wYd.js";
|
|
3
3
|
export { RecordingCoordinatorConfig, buildRawGpsPoint, buildRecordGpsEventPayload, createGpsPositionHandler, eulerToQuaternion, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, resetCoordinatorState, toRawAbsoluteOrientation, updateDeviceOrientation };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger.js";
|
|
2
2
|
import { extractOdomPosition, extractOdomRotation } from "../types/ar-types.js";
|
|
3
|
-
import { n as resetDeviceOrientationCache, r as updateDeviceOrientation, t as getLastDeviceOrientation } from "../device-orientation-cache-
|
|
3
|
+
import { n as resetDeviceOrientationCache, r as updateDeviceOrientation, t as getLastDeviceOrientation } from "../device-orientation-cache-BjEaEAmh.js";
|
|
4
4
|
import { getLatestAbsoluteOrientation } from "../sensors/absolute-orientation.js";
|
|
5
5
|
import { eulerToQuaternion, getOdometryPositions, getZeroReference, recordGpsEvent, setZeroPos } from "gps-plus-slam-js";
|
|
6
6
|
//#region ../src/state/gps-event-coordinator.ts
|
package/dist/state/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, r as DepthPoint } from "../ar-types-
|
|
2
|
-
import { a as TrackingSliceState, c as poseLost, d as selectLastRestartedPayload, f as selectLastSensorOrientation, g as trackingReducer, h as selectTrackingPhase, i as TrackingPhase, l as poseReceived, m as selectLostFrameCount, n as PoseReceivedPayload, o as clearLastRestartedPayload, p as selectLastValidPose, r as ResetTransformData, s as originReset, t as DeviceOrientation, u as resetTracking } from "../tracking-slice-
|
|
3
|
-
import { d as QrSizeStatus, l as QrSizeEstimate } from "../qr-size-measurer-
|
|
4
|
-
import { a as QrPoseStability, o as QrPoseStabilityOptions, s as QrPoseStabilityStatus } from "../qr-pose-aggregation-
|
|
5
|
-
import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata$1, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "../recording-slice-
|
|
6
|
-
import { C as setQrMaxHistory, S as selectStableQrPose, _ as selectQrPoseStability, a as RootWithQrDetected, b as selectResolvedQrSizeM, c as medianQrPosition, d as recordQrDetection, f as recordQrSizeEstimate, g as selectQrMarkers, h as selectQrMarker, i as QrMarkerState, l as pruneQrDetections, m as selectLatestQrDetection, n as QrDetectedState, o as clearAllQrMarkers, p as selectDerivedQrPlacement, r as QrDetectionEntry, s as clearQrMarker, t as DEFAULT_QR_MAX_HISTORY, u as qrDetectedReducer, v as selectQrRawObservations, x as selectSolvedQrPose, y as selectQrSize } from "../qr-detected-slice-
|
|
7
|
-
import { n as SessionMetadata } from "../opfs-storage-
|
|
8
|
-
import { n as StorageBackend } from "../storage-backend-
|
|
9
|
-
import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, a as SlamAppStoreOptions, b as computeGpsVsFusedDivergence, g as TrackingQualityState, h as TrackingQualitySliceState, i as SlamAppStore, j as snapshotsTrimmed, k as selectTrackingQuality, m as TrackingQualityReport, n as SlamAppMiddleware, o as createSlamAppStore, p as TrackingQualityOptions, r as SlamAppRootState, s as AlignmentSnapshot, t as SlamAppCombinedState, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-
|
|
10
|
-
import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-
|
|
11
|
-
import { i as captureGpsAnchorSample, n as GpsAnchorSample, r as GpsAnchorSampleGpsPoint, t as CaptureGpsAnchorSampleOptions } from "../gps-ar-pose-sampler-
|
|
12
|
-
import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-
|
|
13
|
-
import { i as slicePrefixOf, n as PersistenceMiddlewareOptions, r as createPersistenceMiddleware } from "../persistence-middleware-
|
|
14
|
-
import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-
|
|
15
|
-
import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-
|
|
16
|
-
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-
|
|
17
|
-
import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-
|
|
18
|
-
import { a as RawGpsPoint, c as calcRelativeCoordsInMeters, d as OnboardingGuidance, f as OnboardingPhase, i as RawDeviceOrientation, l as recordGpsEvent, m as selectOnboardingGuidance, n as GpsPoint, o as RecordGpsEventPayload, p as computeOnboardingGuidance, r as LatLong, s as add2dImage, t as Add2dImagePayload, u as setZeroPos } from "../index-
|
|
1
|
+
import { c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, r as DepthPoint } from "../ar-types-BprL3nKv.js";
|
|
2
|
+
import { a as TrackingSliceState, c as poseLost, d as selectLastRestartedPayload, f as selectLastSensorOrientation, g as trackingReducer, h as selectTrackingPhase, i as TrackingPhase, l as poseReceived, m as selectLostFrameCount, n as PoseReceivedPayload, o as clearLastRestartedPayload, p as selectLastValidPose, r as ResetTransformData, s as originReset, t as DeviceOrientation, u as resetTracking } from "../tracking-slice-D5LDL_y4.js";
|
|
3
|
+
import { d as QrSizeStatus, l as QrSizeEstimate } from "../qr-size-measurer-18_W3INY.js";
|
|
4
|
+
import { a as QrPoseStability, o as QrPoseStabilityOptions, s as QrPoseStabilityStatus } from "../qr-pose-aggregation-Bpv4uARJ.js";
|
|
5
|
+
import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata$1, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "../recording-slice-zMedT0ot.js";
|
|
6
|
+
import { C as setQrMaxHistory, S as selectStableQrPose, _ as selectQrPoseStability, a as RootWithQrDetected, b as selectResolvedQrSizeM, c as medianQrPosition, d as recordQrDetection, f as recordQrSizeEstimate, g as selectQrMarkers, h as selectQrMarker, i as QrMarkerState, l as pruneQrDetections, m as selectLatestQrDetection, n as QrDetectedState, o as clearAllQrMarkers, p as selectDerivedQrPlacement, r as QrDetectionEntry, s as clearQrMarker, t as DEFAULT_QR_MAX_HISTORY, u as qrDetectedReducer, v as selectQrRawObservations, x as selectSolvedQrPose, y as selectQrSize } from "../qr-detected-slice-8t_laDR9.js";
|
|
7
|
+
import { n as SessionMetadata } from "../opfs-storage-CrhVauNL.js";
|
|
8
|
+
import { n as StorageBackend } from "../storage-backend-DCYbOvTw.js";
|
|
9
|
+
import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, a as SlamAppStoreOptions, b as computeGpsVsFusedDivergence, g as TrackingQualityState, h as TrackingQualitySliceState, i as SlamAppStore, j as snapshotsTrimmed, k as selectTrackingQuality, m as TrackingQualityReport, n as SlamAppMiddleware, o as createSlamAppStore, p as TrackingQualityOptions, r as SlamAppRootState, s as AlignmentSnapshot, t as SlamAppCombinedState, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-sxb1-esK.js";
|
|
10
|
+
import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-BAy56wYd.js";
|
|
11
|
+
import { i as captureGpsAnchorSample, n as GpsAnchorSample, r as GpsAnchorSampleGpsPoint, t as CaptureGpsAnchorSampleOptions } from "../gps-ar-pose-sampler-DBEYDFY5.js";
|
|
12
|
+
import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-CpFiYczh.js";
|
|
13
|
+
import { i as slicePrefixOf, n as PersistenceMiddlewareOptions, r as createPersistenceMiddleware } from "../persistence-middleware-Byo_Fs4n.js";
|
|
14
|
+
import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-DI7uknkv.js";
|
|
15
|
+
import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-hitZwSj8.js";
|
|
16
|
+
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-BenHBQhD.js";
|
|
17
|
+
import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-DBUgwomp.js";
|
|
18
|
+
import { a as RawGpsPoint, c as calcRelativeCoordsInMeters, d as OnboardingGuidance, f as OnboardingPhase, i as RawDeviceOrientation, l as recordGpsEvent, m as selectOnboardingGuidance, n as GpsPoint, o as RecordGpsEventPayload, p as computeOnboardingGuidance, r as LatLong, s as add2dImage, t as Add2dImagePayload, u as setZeroPos } from "../index-qYJ5-SBC.js";
|
|
19
19
|
export { Add2dImagePayload, AlignmentSnapshot, CaptureGpsAnchorSampleOptions, CompleteCallback, DEFAULT_MAX_DELAY_MS, DEFAULT_QR_MAX_HISTORY, DEFAULT_TRACKING_QUALITY_OPTIONS, DepthPoint, DepthSample, DeviceOrientation, ErrorCallback, GpsAnchorSample, GpsAnchorSampleGpsPoint, GpsPoint, LatLong, OnboardingGuidance, OnboardingPhase, SessionMetadata as OpfsSessionMetadata, PersistenceMiddlewareOptions, PoseReceivedPayload, ProgressCallback, QrDetectedState, QrDetectionEntry, QrMarkerState, QrPoseStability, QrPoseStabilityOptions, QrPoseStabilityStatus, QrSizeEstimate, QrSizeStatus, RawDeviceOrientation, RawGpsPoint, RecordGpsEventPayload, RecordingCoordinatorConfig, RecordingState, ReplayAction, ReplayEngine, ReplayRecordingOptions, ReplayState, ResetTransformData, RootWithQrDetected, SessionMetadata$1 as SessionMetadata, SlamAppCombinedState, SlamAppMiddleware, SlamAppRootState, SlamAppStore, SlamAppStoreOptions, StorageBackend, StoreSubscriberDeps, SubscribableStore, TrackingPhase, TrackingQualityOptions, TrackingQualityReport, TrackingQualitySliceState, TrackingQualityState, TrackingSliceState, add2dImage, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, captureGpsAnchorSample, clearAllQrMarkers, clearLastRestartedPayload, clearQrMarker, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeInterActionDelay, computeOnboardingGuidance, computeResidualConsensus, computeTrackingQualityReport, createGpsPositionHandler, createPersistenceMiddleware, createSlamAppStore, createTrackingQualityListenerMiddleware, degradedCountUpdated, endSession, eulerToQuaternion, extractActionTimestamp, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, matrixDelta, medianQrPosition, originReset, poseLost, poseReceived, pruneQrDetections, qrDetectedReducer, recordDepthSample, recordGpsEvent, recordQrDetection, recordQrSizeEstimate, recordWriteFailure, recordingReducer, replayRecording, reportUpdated, resetCoordinatorState, resetTracking, resetTrackingQuality, selectAlignmentMatrix, selectDerivedQrPlacement, selectFrameTilesInWebXR, selectGpsPositions, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLatestQrDetection, selectLostFrameCount, selectOdometryPositions, selectOdometryRotations, selectOnboardingGuidance, selectQrMarker, selectQrMarkers, selectQrPoseStability, selectQrRawObservations, selectQrSize, selectRecentAlignments, selectResolvedQrSizeM, selectSolvedQrPose, selectStableQrPose, selectTrackingPhase, selectTrackingQuality, selectZeroReference, setQrMaxHistory, setZeroPos, slicePrefixOf, snapshotPushed, snapshotsTrimmed, startSession, subscribeToSelector, trackingQualityReducer, trackingReducer, updateDeviceOrientation, wireStoreSubscribers };
|
package/dist/state/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extractOdomPosition, extractOdomRotation } from "../types/ar-types.js";
|
|
2
2
|
import { clearLastRestartedPayload, originReset, poseLost, poseReceived, resetTracking, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLostFrameCount, selectTrackingPhase, trackingReducer } from "./tracking-slice.js";
|
|
3
|
-
import { r as updateDeviceOrientation, t as getLastDeviceOrientation } from "../device-orientation-cache-
|
|
3
|
+
import { r as updateDeviceOrientation, t as getLastDeviceOrientation } from "../device-orientation-cache-BjEaEAmh.js";
|
|
4
4
|
import { endSession, recordDepthSample, recordWriteFailure, recordingReducer, startSession } from "./recording-slice.js";
|
|
5
5
|
import { DEFAULT_QR_MAX_HISTORY, clearAllQrMarkers, clearQrMarker, medianQrPosition, pruneQrDetections, qrDetectedReducer, recordQrDetection, recordQrSizeEstimate, selectDerivedQrPlacement, selectLatestQrDetection, selectQrMarker, selectQrMarkers, selectQrPoseStability, selectQrRawObservations, selectQrSize, selectResolvedQrSizeM, selectSolvedQrPose, selectStableQrPose, setQrMaxHistory } from "./qr-detected-slice.js";
|
|
6
6
|
import { buildRawGpsPoint, buildRecordGpsEventPayload, createGpsPositionHandler, eulerToQuaternion, resetCoordinatorState } from "./gps-event-coordinator.js";
|
|
@@ -8,10 +8,10 @@ import { captureGpsAnchorSample } from "./gps-ar-pose-sampler.js";
|
|
|
8
8
|
import { selectAlignmentMatrix, selectFrameTilesInWebXR, selectGpsPositions, selectOdometryPositions, selectOdometryRotations, selectZeroReference } from "./app-selectors.js";
|
|
9
9
|
import { DEFAULT_TRACKING_QUALITY_OPTIONS, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeResidualConsensus, computeTrackingQualityReport, createTrackingQualityListenerMiddleware, degradedCountUpdated, matrixDelta, reportUpdated, resetTrackingQuality, selectRecentAlignments, selectTrackingQuality, snapshotPushed, snapshotsTrimmed, trackingQualityReducer } from "./tracking-quality.js";
|
|
10
10
|
import { createPersistenceMiddleware, slicePrefixOf } from "./persistence-middleware.js";
|
|
11
|
-
import { t as createSlamAppStore } from "../create-slam-app-store-
|
|
11
|
+
import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
|
|
12
12
|
import { replayRecording } from "./recording-replayer.js";
|
|
13
13
|
import { DEFAULT_MAX_DELAY_MS, ReplayEngine, computeInterActionDelay, extractActionTimestamp } from "./replay-engine.js";
|
|
14
14
|
import { subscribeToSelector } from "./subscribe-to-selector.js";
|
|
15
15
|
import { wireStoreSubscribers } from "./store-subscribers.js";
|
|
16
|
-
import { a as computeOnboardingGuidance, i as setZeroPos, n as calcRelativeCoordsInMeters, o as selectOnboardingGuidance, r as recordGpsEvent, t as add2dImage } from "../state-
|
|
16
|
+
import { a as computeOnboardingGuidance, i as setZeroPos, n as calcRelativeCoordsInMeters, o as selectOnboardingGuidance, r as recordGpsEvent, t as add2dImage } from "../state-BECcnNRW.js";
|
|
17
17
|
export { DEFAULT_MAX_DELAY_MS, DEFAULT_QR_MAX_HISTORY, DEFAULT_TRACKING_QUALITY_OPTIONS, ReplayEngine, add2dImage, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, captureGpsAnchorSample, clearAllQrMarkers, clearLastRestartedPayload, clearQrMarker, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeInterActionDelay, computeOnboardingGuidance, computeResidualConsensus, computeTrackingQualityReport, createGpsPositionHandler, createPersistenceMiddleware, createSlamAppStore, createTrackingQualityListenerMiddleware, degradedCountUpdated, endSession, eulerToQuaternion, extractActionTimestamp, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, matrixDelta, medianQrPosition, originReset, poseLost, poseReceived, pruneQrDetections, qrDetectedReducer, recordDepthSample, recordGpsEvent, recordQrDetection, recordQrSizeEstimate, recordWriteFailure, recordingReducer, replayRecording, reportUpdated, resetCoordinatorState, resetTracking, resetTrackingQuality, selectAlignmentMatrix, selectDerivedQrPlacement, selectFrameTilesInWebXR, selectGpsPositions, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLatestQrDetection, selectLostFrameCount, selectOdometryPositions, selectOdometryRotations, selectOnboardingGuidance, selectQrMarker, selectQrMarkers, selectQrPoseStability, selectQrRawObservations, selectQrSize, selectRecentAlignments, selectResolvedQrSizeM, selectSolvedQrPose, selectStableQrPose, selectTrackingPhase, selectTrackingQuality, selectZeroReference, setQrMaxHistory, setZeroPos, slicePrefixOf, snapshotPushed, snapshotsTrimmed, startSession, subscribeToSelector, trackingQualityReducer, trackingReducer, updateDeviceOrientation, wireStoreSubscribers };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as slicePrefixOf, n as PersistenceMiddlewareOptions, r as createPersistenceMiddleware, t as PersistenceMiddleware } from "../persistence-middleware-
|
|
1
|
+
import { i as slicePrefixOf, n as PersistenceMiddlewareOptions, r as createPersistenceMiddleware, t as PersistenceMiddleware } from "../persistence-middleware-Byo_Fs4n.js";
|
|
2
2
|
export { PersistenceMiddleware, PersistenceMiddlewareOptions, createPersistenceMiddleware, slicePrefixOf };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as QrSizeStatus, l as QrSizeEstimate } from "../qr-size-measurer-
|
|
2
|
-
import { a as QrPoseStability, o as QrPoseStabilityOptions, s as QrPoseStabilityStatus } from "../qr-pose-aggregation-
|
|
3
|
-
import { C as setQrMaxHistory, S as selectStableQrPose, _ as selectQrPoseStability, a as RootWithQrDetected, b as selectResolvedQrSizeM, c as medianQrPosition, d as recordQrDetection, f as recordQrSizeEstimate, g as selectQrMarkers, h as selectQrMarker, i as QrMarkerState, l as pruneQrDetections, m as selectLatestQrDetection, n as QrDetectedState, o as clearAllQrMarkers, p as selectDerivedQrPlacement, r as QrDetectionEntry, s as clearQrMarker, t as DEFAULT_QR_MAX_HISTORY, u as qrDetectedReducer, v as selectQrRawObservations, x as selectSolvedQrPose, y as selectQrSize } from "../qr-detected-slice-
|
|
1
|
+
import { d as QrSizeStatus, l as QrSizeEstimate } from "../qr-size-measurer-18_W3INY.js";
|
|
2
|
+
import { a as QrPoseStability, o as QrPoseStabilityOptions, s as QrPoseStabilityStatus } from "../qr-pose-aggregation-Bpv4uARJ.js";
|
|
3
|
+
import { C as setQrMaxHistory, S as selectStableQrPose, _ as selectQrPoseStability, a as RootWithQrDetected, b as selectResolvedQrSizeM, c as medianQrPosition, d as recordQrDetection, f as recordQrSizeEstimate, g as selectQrMarkers, h as selectQrMarker, i as QrMarkerState, l as pruneQrDetections, m as selectLatestQrDetection, n as QrDetectedState, o as clearAllQrMarkers, p as selectDerivedQrPlacement, r as QrDetectionEntry, s as clearQrMarker, t as DEFAULT_QR_MAX_HISTORY, u as qrDetectedReducer, v as selectQrRawObservations, x as selectSolvedQrPose, y as selectQrSize } from "../qr-detected-slice-8t_laDR9.js";
|
|
4
4
|
export { DEFAULT_QR_MAX_HISTORY, QrDetectedState, QrDetectionEntry, QrMarkerState, QrPoseStability, QrPoseStabilityOptions, QrPoseStabilityStatus, QrSizeEstimate, QrSizeStatus, RootWithQrDetected, clearAllQrMarkers, clearQrMarker, medianQrPosition, pruneQrDetections, qrDetectedReducer, recordQrDetection, recordQrSizeEstimate, selectDerivedQrPlacement, selectLatestQrDetection, selectQrMarker, selectQrMarkers, selectQrPoseStability, selectQrRawObservations, selectQrSize, selectResolvedQrSizeM, selectSolvedQrPose, selectStableQrPose, setQrMaxHistory };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { N as CombinedRootState } from "../create-slam-app-store-
|
|
2
|
-
import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-
|
|
1
|
+
import { N as CombinedRootState } from "../create-slam-app-store-sxb1-esK.js";
|
|
2
|
+
import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-CpFiYczh.js";
|
|
3
3
|
export { CombinedRootState, ReplayRecordingOptions, replayRecording };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadActionsFromZip } from "../storage/zip-reader.js";
|
|
2
2
|
import { NullStorageBackend } from "../storage/null-storage-backend.js";
|
|
3
|
-
import { t as createSlamAppStore } from "../create-slam-app-store-
|
|
3
|
+
import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
|
|
4
4
|
//#region ../src/state/recording-replayer.ts
|
|
5
5
|
/**
|
|
6
6
|
* Recording Replayer
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "../recording-slice-
|
|
1
|
+
import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "../recording-slice-zMedT0ot.js";
|
|
2
2
|
export { RecordingState, SessionMetadata, endSession, recordDepthSample, recordWriteFailure, recordingReducer, startSession };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-
|
|
1
|
+
import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-DI7uknkv.js";
|
|
2
2
|
export { CompleteCallback, DEFAULT_MAX_DELAY_MS, ErrorCallback, ProgressCallback, ReplayAction, ReplayEngine, ReplayState, computeInterActionDelay, extractActionTimestamp };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { i as DepthSample } from "../ar-types-BprL3nKv.js";
|
|
2
|
+
import { i as ViewerPose } from "../occupancy-cubes-visualizer-soN0Sizd.js";
|
|
3
|
+
|
|
4
|
+
//#region ../src/state/replay-occupancy-subscriber.d.ts
|
|
5
|
+
/** The part of `OccupancyGrid` this subscriber feeds. */
|
|
6
|
+
interface OccupancyGridSink {
|
|
7
|
+
addSample(sample: DepthSample): number;
|
|
8
|
+
clear(): void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The minimal store shape this subscriber reads — satisfied by the framework's
|
|
12
|
+
* `SlamAppStore` and the RecorderApp's `RecorderStore` alike (both carry the
|
|
13
|
+
* framework recording slice). Kept structural so no concrete store type leaks
|
|
14
|
+
* into the framework replay composition.
|
|
15
|
+
*/
|
|
16
|
+
interface DepthSampleStore {
|
|
17
|
+
getState(): {
|
|
18
|
+
readonly recording: {
|
|
19
|
+
readonly latestDepthSample: DepthSample | null;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
subscribe(listener: () => void): () => void;
|
|
23
|
+
}
|
|
24
|
+
interface ReplayOccupancySubscriberOptions {
|
|
25
|
+
/** The single replay store whose `recording.latestDepthSample` is observed. */
|
|
26
|
+
readonly store: DepthSampleStore;
|
|
27
|
+
/** The grid each new sample is folded into. */
|
|
28
|
+
readonly grid: OccupancyGridSink;
|
|
29
|
+
/**
|
|
30
|
+
* Redraw the visualizers from the (now-updated) grid. Called on the leading
|
|
31
|
+
* edge of a quiet period and once on the trailing edge of a burst, with the
|
|
32
|
+
* newest sample's head pose (raw WebXR) so an over-cap cube refresh can pick
|
|
33
|
+
* the cells nearest the viewer (Issue B1). Errors are routed to `onError`.
|
|
34
|
+
*/
|
|
35
|
+
readonly onRefresh: (viewerPose?: ViewerPose) => void;
|
|
36
|
+
/** Minimum delay between two refreshes (ms). Defaults to 250. */
|
|
37
|
+
readonly refreshIntervalMs?: number;
|
|
38
|
+
/** Best-effort error sink for a throwing `addSample`/`onRefresh`. */
|
|
39
|
+
readonly onError?: (err: unknown) => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Attach the subscription. Returns a dispose function that detaches the store
|
|
43
|
+
* subscription and cancels any pending trailing refresh.
|
|
44
|
+
*
|
|
45
|
+
* Leading + trailing throttle: the first sample after a quiet period refreshes
|
|
46
|
+
* immediately; a burst coalesces into a single trailing refresh per interval so
|
|
47
|
+
* the final settled state is always rendered.
|
|
48
|
+
*/
|
|
49
|
+
declare function subscribeReplayOccupancy(options: ReplayOccupancySubscriberOptions): () => void;
|
|
50
|
+
//#endregion
|
|
51
|
+
export { DepthSampleStore, OccupancyGridSink, ReplayOccupancySubscriberOptions, subscribeReplayOccupancy };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
//#region ../src/state/replay-occupancy-subscriber.ts
|
|
2
|
+
/** Default minimum delay between two visualizer refreshes (ms). */
|
|
3
|
+
const DEFAULT_REFRESH_INTERVAL_MS = 250;
|
|
4
|
+
/**
|
|
5
|
+
* Attach the subscription. Returns a dispose function that detaches the store
|
|
6
|
+
* subscription and cancels any pending trailing refresh.
|
|
7
|
+
*
|
|
8
|
+
* Leading + trailing throttle: the first sample after a quiet period refreshes
|
|
9
|
+
* immediately; a burst coalesces into a single trailing refresh per interval so
|
|
10
|
+
* the final settled state is always rendered.
|
|
11
|
+
*/
|
|
12
|
+
function subscribeReplayOccupancy(options) {
|
|
13
|
+
const { store, grid, onRefresh, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, onError } = options;
|
|
14
|
+
let disposed = false;
|
|
15
|
+
let lastRefreshTime = -Infinity;
|
|
16
|
+
let pendingRefresh = null;
|
|
17
|
+
let lastViewerPose = null;
|
|
18
|
+
const reportError = (err) => {
|
|
19
|
+
try {
|
|
20
|
+
onError?.(err);
|
|
21
|
+
} catch {}
|
|
22
|
+
};
|
|
23
|
+
const cancelPendingRefresh = () => {
|
|
24
|
+
if (pendingRefresh !== null) {
|
|
25
|
+
clearTimeout(pendingRefresh);
|
|
26
|
+
pendingRefresh = null;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const refreshNow = () => {
|
|
30
|
+
lastRefreshTime = nowMs();
|
|
31
|
+
try {
|
|
32
|
+
onRefresh(lastViewerPose ?? void 0);
|
|
33
|
+
} catch (err) {
|
|
34
|
+
reportError(err);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const scheduleRefresh = () => {
|
|
38
|
+
if (pendingRefresh !== null) return;
|
|
39
|
+
const elapsed = nowMs() - lastRefreshTime;
|
|
40
|
+
if (elapsed >= refreshIntervalMs) {
|
|
41
|
+
refreshNow();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
pendingRefresh = setTimeout(() => {
|
|
45
|
+
pendingRefresh = null;
|
|
46
|
+
if (!disposed) refreshNow();
|
|
47
|
+
}, refreshIntervalMs - elapsed);
|
|
48
|
+
};
|
|
49
|
+
const handleSample = (sample) => {
|
|
50
|
+
try {
|
|
51
|
+
grid.addSample(sample);
|
|
52
|
+
} catch (err) {
|
|
53
|
+
reportError(err);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
lastViewerPose = {
|
|
57
|
+
cameraPos: sample.cameraPos,
|
|
58
|
+
cameraRot: sample.cameraRot
|
|
59
|
+
};
|
|
60
|
+
scheduleRefresh();
|
|
61
|
+
};
|
|
62
|
+
let lastSample = store.getState().recording.latestDepthSample;
|
|
63
|
+
if (lastSample) handleSample(lastSample);
|
|
64
|
+
const unsubscribe = store.subscribe(() => {
|
|
65
|
+
if (disposed) return;
|
|
66
|
+
const next = store.getState().recording.latestDepthSample;
|
|
67
|
+
if (next === lastSample) return;
|
|
68
|
+
lastSample = next;
|
|
69
|
+
if (next) handleSample(next);
|
|
70
|
+
});
|
|
71
|
+
return () => {
|
|
72
|
+
disposed = true;
|
|
73
|
+
cancelPendingRefresh();
|
|
74
|
+
unsubscribe();
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* `Date.now` indirection — replay throttling is wall-clock based. Isolated so a
|
|
79
|
+
* test can spy/stub it; production uses the real clock.
|
|
80
|
+
*/
|
|
81
|
+
function nowMs() {
|
|
82
|
+
return Date.now();
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { subscribeReplayOccupancy };
|