gps-plus-slam-app-framework 1.11.0 → 1.13.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-QM0ZpNA4.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-CvvfACfx.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-DFm5K9Ob.d.ts → create-slam-app-store-HNe1PBtx.d.ts} +26 -4
- package/dist/{create-slam-app-store-oK9bnqyI.js → create-slam-app-store-wYN7YkB5.js} +13 -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-BKwB4RyQ.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-qtZ2muFd.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-BKmVuchg.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-D-cbT0Fw.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-DxL3T1Id.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-BbRW35u5.d.ts} +2 -2
- package/dist/{subscribe-to-selector-j-eOYybQ.d.ts → subscribe-to-selector-B_lm_euO.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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { r as OccupancyGrid } from "../occupancy-grid-DKzIdCSZ.js";
|
|
2
|
+
import { i as SlamAppStore } from "../create-slam-app-store-HNe1PBtx.js";
|
|
3
|
+
import { a as ReplayAction, s as ReplayState } from "../replay-engine-D-cbT0Fw.js";
|
|
4
|
+
import { i as OcclusionMesh } from "../occlusion-mesh-BY2aMej3.js";
|
|
5
|
+
import { t as OccupancyCubesVisualizer } from "../occupancy-cubes-visualizer-soN0Sizd.js";
|
|
6
|
+
import * as THREE from "three";
|
|
7
|
+
|
|
8
|
+
//#region ../src/state/replay-session.d.ts
|
|
9
|
+
/** Occupancy-reconstruction options for a replay session. */
|
|
10
|
+
interface ReplayOccupancyConfig {
|
|
11
|
+
/** Build the occupancy grid + visualizers at all. Default `true`. */
|
|
12
|
+
readonly enabled?: boolean;
|
|
13
|
+
/** Voxel edge length in metres. Default 0.15. */
|
|
14
|
+
readonly cellSizeM?: number;
|
|
15
|
+
/** Minimum observations before a cell is drawn (noise filter). Default 1. */
|
|
16
|
+
readonly minObservations?: number;
|
|
17
|
+
/** Show the instanced debug cubes. Default `true`. */
|
|
18
|
+
readonly showCubes?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Build the depth-only occlusion mesh (detailed style). Default `true`. Its
|
|
21
|
+
* visible skin starts `off` (invisible depth-only); a consumer flips it via
|
|
22
|
+
* {@link ReplaySessionController.getOcclusionMesh}`.setDebugStyle(...)`.
|
|
23
|
+
*/
|
|
24
|
+
readonly showOcclusionMesh?: boolean;
|
|
25
|
+
/** Minimum delay between two visualizer refreshes (ms). Default 250. */
|
|
26
|
+
readonly refreshIntervalMs?: number;
|
|
27
|
+
}
|
|
28
|
+
interface StartReplaySessionOptions {
|
|
29
|
+
/** The already-loaded recorded action list to replay. */
|
|
30
|
+
readonly actions: ReplayAction[];
|
|
31
|
+
/** DOM element that receives the desktop replay canvas. */
|
|
32
|
+
readonly container: HTMLElement;
|
|
33
|
+
/**
|
|
34
|
+
* Store to replay into. Defaults to a fresh framework store with no
|
|
35
|
+
* persistence (`NullStorageBackend`). Inject one only to add app-specific
|
|
36
|
+
* slices; it MUST carry the framework recording slice.
|
|
37
|
+
*/
|
|
38
|
+
readonly store?: SlamAppStore;
|
|
39
|
+
/** Occupancy reconstruction config (see {@link ReplayOccupancyConfig}). */
|
|
40
|
+
readonly occupancy?: ReplayOccupancyConfig;
|
|
41
|
+
/** Called after each action dispatch: (current, total). */
|
|
42
|
+
readonly onProgress?: (current: number, total: number) => void;
|
|
43
|
+
/** Called when all actions have been dispatched. */
|
|
44
|
+
readonly onComplete?: () => void;
|
|
45
|
+
/** Called when a dispatch throws: (actionIndex, error). */
|
|
46
|
+
readonly onError?: (actionIndex: number, error: Error) => void;
|
|
47
|
+
}
|
|
48
|
+
/** Handles to the replay scene graph (for adding consumer content). */
|
|
49
|
+
interface ReplaySceneHandles {
|
|
50
|
+
readonly scene: THREE.Scene;
|
|
51
|
+
readonly arWorldGroup: THREE.Group;
|
|
52
|
+
readonly arpose: THREE.Object3D;
|
|
53
|
+
readonly camera: THREE.PerspectiveCamera;
|
|
54
|
+
readonly renderer: THREE.WebGLRenderer;
|
|
55
|
+
}
|
|
56
|
+
interface ReplaySessionController {
|
|
57
|
+
/** Start dispatching actions at the given speed factor (default 1). */
|
|
58
|
+
play(speedFactor?: number): Promise<void>;
|
|
59
|
+
/** Pause the replay. */
|
|
60
|
+
pause(): void;
|
|
61
|
+
/** Resume from where we paused. */
|
|
62
|
+
resume(): Promise<void>;
|
|
63
|
+
/** Change playback speed (takes effect on the next delay). */
|
|
64
|
+
setSpeed(factor: number): void;
|
|
65
|
+
/** Current engine state. */
|
|
66
|
+
getState(): ReplayState;
|
|
67
|
+
/** The replay store (same instance the subscribers observe). */
|
|
68
|
+
getStore(): SlamAppStore;
|
|
69
|
+
/** The replay scene graph handles. */
|
|
70
|
+
getScene(): ReplaySceneHandles;
|
|
71
|
+
/** The reconstructed occupancy grid, or `null` when occupancy is disabled. */
|
|
72
|
+
getOccupancyGrid(): OccupancyGrid | null;
|
|
73
|
+
/** The cube visualizer, or `null` when disabled/not built (for a live mesh-view toggle). */
|
|
74
|
+
getCubesVisualizer(): OccupancyCubesVisualizer | null;
|
|
75
|
+
/** The occlusion mesh, or `null` when disabled/not built. */
|
|
76
|
+
getOcclusionMesh(): OcclusionMesh | null;
|
|
77
|
+
/** Total number of loaded actions. */
|
|
78
|
+
getActionCount(): number;
|
|
79
|
+
/** Tear down engine, subscribers, visualizers and the scene. */
|
|
80
|
+
dispose(): void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Compose and start a desktop replay session. Synchronous — the caller drives
|
|
84
|
+
* playback via the returned controller.
|
|
85
|
+
*/
|
|
86
|
+
declare function startReplaySession(options: StartReplaySessionOptions): ReplaySessionController;
|
|
87
|
+
//#endregion
|
|
88
|
+
export { ReplayOccupancyConfig, ReplaySceneHandles, ReplaySessionController, StartReplaySessionOptions, startReplaySession };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { createLogger } from "../utils/logger.js";
|
|
2
|
+
import { b as nuePositionToWebXR, x as nueQuaternionToWebXR } from "../webxr-session-BBlgzrqY.js";
|
|
3
|
+
import { OccupancyGrid } from "../ar/occupancy-grid.js";
|
|
4
|
+
import { disposeReplayScene, getAlignmentLerper, initReplayScene, updateOrbitTarget } from "../ar/replay-scene.js";
|
|
5
|
+
import { NullStorageBackend } from "../storage/null-storage-backend.js";
|
|
6
|
+
import { t as createSlamAppStore } from "../create-slam-app-store-wYN7YkB5.js";
|
|
7
|
+
import { ReplayEngine } from "./replay-engine.js";
|
|
8
|
+
import { wireStoreSubscribers } from "./store-subscribers.js";
|
|
9
|
+
import { gpsEventVisualizer } from "../visualization/gps-event-markers.js";
|
|
10
|
+
import { OcclusionMesh } from "../visualization/occlusion-mesh.js";
|
|
11
|
+
import { OccupancyCubesVisualizer } from "../visualization/occupancy-cubes-visualizer.js";
|
|
12
|
+
import { subscribeReplayOccupancy } from "./replay-occupancy-subscriber.js";
|
|
13
|
+
import * as THREE from "three";
|
|
14
|
+
//#region ../src/state/replay-session.ts
|
|
15
|
+
/**
|
|
16
|
+
* Replay session — the framework-level composer that lets ANY consumer app
|
|
17
|
+
* replay a recorded session on the desktop (no phone, no WebXR) with live mesh
|
|
18
|
+
* reconstruction, in a handful of lines.
|
|
19
|
+
*
|
|
20
|
+
* It wires together the pieces that already exist so a consumer does not have to
|
|
21
|
+
* copy the RecorderApp's `replay/replay-mode.ts` orchestrator:
|
|
22
|
+
* - a store (a fresh framework store by default, or one the caller injects),
|
|
23
|
+
* - the non-WebXR desktop scene (`initReplayScene`),
|
|
24
|
+
* - the shared state→visuals bridge (`wireStoreSubscribers`: alignment lerp +
|
|
25
|
+
* GPS event markers + the recorded camera trajectory driving `arpose`),
|
|
26
|
+
* - the occupancy grid → cube visualizer + occlusion mesh path, fed by the
|
|
27
|
+
* replayed `recordDepthSample` stream (`subscribeReplayOccupancy`),
|
|
28
|
+
* - a {@link ReplayEngine} driving the recorded action list.
|
|
29
|
+
*
|
|
30
|
+
* The consumer supplies an already-loaded `RecordedAction[]` (the loader stays a
|
|
31
|
+
* consumer concern — the framework does not migrate old-era recordings). For a
|
|
32
|
+
* current-era zip, `loadActionsFromZip` (storage/zip-reader) turns it into the
|
|
33
|
+
* action list with zero recorder-side code.
|
|
34
|
+
*
|
|
35
|
+
* Recorder-specific visualizers (frame tiles, ref-point spheres/markers, stats
|
|
36
|
+
* overlay) are NOT wired here — the RecorderApp injects those into its own
|
|
37
|
+
* orchestrator. This composer ships only the generally-useful defaults every
|
|
38
|
+
* replay consumer wants.
|
|
39
|
+
*
|
|
40
|
+
* @see replay-session.ts.md for the full API and examples.
|
|
41
|
+
* @see 2026-07-15 replay-as-dev-harness Part A design.
|
|
42
|
+
*/
|
|
43
|
+
const log = createLogger("ReplaySession");
|
|
44
|
+
/**
|
|
45
|
+
* Compose and start a desktop replay session. Synchronous — the caller drives
|
|
46
|
+
* playback via the returned controller.
|
|
47
|
+
*/
|
|
48
|
+
function startReplaySession(options) {
|
|
49
|
+
const { actions, container } = options;
|
|
50
|
+
const occupancyConfig = options.occupancy ?? {};
|
|
51
|
+
const occupancyEnabled = occupancyConfig.enabled ?? true;
|
|
52
|
+
const store = options.store ?? createSlamAppStore({
|
|
53
|
+
storageBackend: new NullStorageBackend(),
|
|
54
|
+
enableDevChecks: false
|
|
55
|
+
});
|
|
56
|
+
const scene = initReplayScene(container);
|
|
57
|
+
log.info("Replay scene initialized");
|
|
58
|
+
gpsEventVisualizer.setSceneSource({
|
|
59
|
+
getScene: () => scene.scene,
|
|
60
|
+
getArWorldGroup: () => scene.arWorldGroup
|
|
61
|
+
});
|
|
62
|
+
const alignmentLerper = getAlignmentLerper();
|
|
63
|
+
const snapshotPos = new THREE.Vector3();
|
|
64
|
+
const unsubscribeStore = wireStoreSubscribers(store, {
|
|
65
|
+
applyAlignmentMatrix: (matrix) => alignmentLerper?.setTarget(matrix),
|
|
66
|
+
gpsEventVisualizer,
|
|
67
|
+
onNewOdomPose: (odomPosition, odomRotation) => {
|
|
68
|
+
const webxrPos = nuePositionToWebXR(odomPosition);
|
|
69
|
+
scene.arpose.position.fromArray(webxrPos);
|
|
70
|
+
const webxrRot = nueQuaternionToWebXR(odomRotation);
|
|
71
|
+
scene.arpose.quaternion.fromArray(webxrRot);
|
|
72
|
+
},
|
|
73
|
+
onAlignmentSnapshot: (nuePosition) => {
|
|
74
|
+
snapshotPos.fromArray(nuePosition);
|
|
75
|
+
updateOrbitTarget(snapshotPos);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
const occupancy = occupancyEnabled ? setupOccupancyReconstruction(store, scene.arWorldGroup, occupancyConfig) : null;
|
|
79
|
+
const engine = new ReplayEngine();
|
|
80
|
+
if (options.onProgress) engine.onProgress(options.onProgress);
|
|
81
|
+
if (options.onComplete) engine.onComplete(options.onComplete);
|
|
82
|
+
if (options.onError) engine.onError(options.onError);
|
|
83
|
+
let disposed = false;
|
|
84
|
+
return {
|
|
85
|
+
play(speedFactor = 1) {
|
|
86
|
+
if (disposed) return Promise.resolve();
|
|
87
|
+
return engine.play(actions, store, speedFactor);
|
|
88
|
+
},
|
|
89
|
+
pause() {
|
|
90
|
+
engine.pause();
|
|
91
|
+
},
|
|
92
|
+
resume() {
|
|
93
|
+
if (disposed) return Promise.resolve();
|
|
94
|
+
return engine.resume();
|
|
95
|
+
},
|
|
96
|
+
setSpeed(factor) {
|
|
97
|
+
engine.setSpeed(factor);
|
|
98
|
+
},
|
|
99
|
+
getState() {
|
|
100
|
+
return engine.getState();
|
|
101
|
+
},
|
|
102
|
+
getStore() {
|
|
103
|
+
return store;
|
|
104
|
+
},
|
|
105
|
+
getScene() {
|
|
106
|
+
return scene;
|
|
107
|
+
},
|
|
108
|
+
getOccupancyGrid() {
|
|
109
|
+
return occupancy?.grid ?? null;
|
|
110
|
+
},
|
|
111
|
+
getCubesVisualizer() {
|
|
112
|
+
return occupancy?.cubes ?? null;
|
|
113
|
+
},
|
|
114
|
+
getOcclusionMesh() {
|
|
115
|
+
return occupancy?.occlusionMesh ?? null;
|
|
116
|
+
},
|
|
117
|
+
getActionCount() {
|
|
118
|
+
return actions.length;
|
|
119
|
+
},
|
|
120
|
+
dispose() {
|
|
121
|
+
if (disposed) return;
|
|
122
|
+
disposed = true;
|
|
123
|
+
engine.dispose();
|
|
124
|
+
unsubscribeStore();
|
|
125
|
+
occupancy?.dispose();
|
|
126
|
+
gpsEventVisualizer.setSceneSource(null);
|
|
127
|
+
disposeReplayScene();
|
|
128
|
+
log.info("Replay session disposed");
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Build the occupancy grid, the (optional) cube visualizer + occlusion mesh, and
|
|
134
|
+
* the depth-sample subscription that refreshes them. Kept out of the main
|
|
135
|
+
* composer so its branches don't inflate that function's complexity.
|
|
136
|
+
*/
|
|
137
|
+
function setupOccupancyReconstruction(store, arWorldGroup, config) {
|
|
138
|
+
const cellSizeM = config.cellSizeM ?? .15;
|
|
139
|
+
const minObservations = config.minObservations ?? 1;
|
|
140
|
+
const grid = new OccupancyGrid({ cellSizeM });
|
|
141
|
+
const cubes = config.showCubes ?? true ? new OccupancyCubesVisualizer(arWorldGroup, { minObservations }) : null;
|
|
142
|
+
const occlusionMesh = config.showOcclusionMesh ?? true ? new OcclusionMesh(arWorldGroup) : null;
|
|
143
|
+
const unsubscribe = subscribeReplayOccupancy({
|
|
144
|
+
store,
|
|
145
|
+
grid,
|
|
146
|
+
refreshIntervalMs: config.refreshIntervalMs,
|
|
147
|
+
onRefresh: (viewerPose) => {
|
|
148
|
+
cubes?.refresh(grid, viewerPose);
|
|
149
|
+
occlusionMesh?.update(grid.getOccupiedCells(minObservations), cellSizeM, (cell) => grid.getCellPoint(cell));
|
|
150
|
+
},
|
|
151
|
+
onError: (err) => log.warn("Occupancy refresh failed during replay", err)
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
grid,
|
|
155
|
+
cubes,
|
|
156
|
+
occlusionMesh,
|
|
157
|
+
dispose() {
|
|
158
|
+
unsubscribe();
|
|
159
|
+
cubes?.dispose();
|
|
160
|
+
occlusionMesh?.dispose();
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//#endregion
|
|
165
|
+
export { startReplaySession };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SubscribableStore } from "../subscribe-to-selector-
|
|
2
|
-
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-
|
|
1
|
+
import { t as SubscribableStore } from "../subscribe-to-selector-B_lm_euO.js";
|
|
2
|
+
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-BbRW35u5.js";
|
|
3
3
|
export { StoreSubscriberDeps, SubscribableStore, wireStoreSubscribers };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger.js";
|
|
2
2
|
import { selectAlignmentMatrix, selectGpsPositions, selectOdometryPositions, selectOdometryRotations, selectZeroReference } from "./app-selectors.js";
|
|
3
|
-
import { t as buildMapData } from "../map-data-
|
|
3
|
+
import { t as buildMapData } from "../map-data-vL8jb5Z9.js";
|
|
4
4
|
import { subscribeToSelector } from "./subscribe-to-selector.js";
|
|
5
5
|
import { mat4, vec3 } from "gl-matrix";
|
|
6
6
|
import { calcGpsCoords } from "gps-plus-slam-js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-
|
|
1
|
+
import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-B_lm_euO.js";
|
|
2
2
|
export { SubscribableStore, subscribeToSelector };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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, b as computeGpsVsFusedDivergence, c as ConvergenceResult, d as GpsAccuracyResult, f as ResidualConsensusResult, g as TrackingQualityState, h as TrackingQualitySliceState, j as snapshotsTrimmed, k as selectTrackingQuality, l as CoverageResult, m as TrackingQualityReport, p as TrackingQualityOptions, s as AlignmentSnapshot, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-
|
|
1
|
+
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, b as computeGpsVsFusedDivergence, c as ConvergenceResult, d as GpsAccuracyResult, f as ResidualConsensusResult, g as TrackingQualityState, h as TrackingQualitySliceState, j as snapshotsTrimmed, k as selectTrackingQuality, l as CoverageResult, m as TrackingQualityReport, p as TrackingQualityOptions, s as AlignmentSnapshot, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-HNe1PBtx.js";
|
|
2
2
|
export { AlignmentSnapshot, ConvergenceResult, CoverageResult, DEFAULT_TRACKING_QUALITY_OPTIONS, GpsAccuracyResult, ResidualConsensusResult, TrackingQualityOptions, TrackingQualityReport, TrackingQualitySliceState, TrackingQualityState, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeResidualConsensus, computeTrackingQualityReport, createTrackingQualityListenerMiddleware, degradedCountUpdated, matrixDelta, reportUpdated, resetTrackingQuality, selectRecentAlignments, selectTrackingQuality, snapshotPushed, snapshotsTrimmed, trackingQualityReducer };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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";
|
|
2
2
|
export { DeviceOrientation, PoseReceivedPayload, ResetTransformData, TrackingPhase, TrackingSliceState, clearLastRestartedPayload, originReset, poseLost, poseReceived, resetTracking, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLostFrameCount, selectTrackingPhase, trackingReducer };
|
|
@@ -5,7 +5,7 @@ import "./state/gps-event-coordinator.js";
|
|
|
5
5
|
import "./state/app-selectors.js";
|
|
6
6
|
import { selectTrackingQuality } from "./state/tracking-quality.js";
|
|
7
7
|
import "./state/persistence-middleware.js";
|
|
8
|
-
import "./create-slam-app-store-
|
|
8
|
+
import "./create-slam-app-store-wYN7YkB5.js";
|
|
9
9
|
import "./state/recording-replayer.js";
|
|
10
10
|
import "./state/store-subscribers.js";
|
|
11
11
|
import { add2dImage, calcRelativeCoordsInMeters, recordGpsEvent as recordGpsEvent$1, setZeroPos as setZeroPos$1 } from "gps-plus-slam-js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as formatTimestamp, i as formatFrameFilename, n as SESSION_IMAGES_DIR, r as formatActionFilename, t as LEGACY_SESSION_IMAGES_DIR } from "../file-system-utils-
|
|
1
|
+
import { a as formatTimestamp, i as formatFrameFilename, n as SESSION_IMAGES_DIR, r as formatActionFilename, t as LEGACY_SESSION_IMAGES_DIR } from "../file-system-utils-DE3BViuq.js";
|
|
2
2
|
export { LEGACY_SESSION_IMAGES_DIR, SESSION_IMAGES_DIR, formatActionFilename, formatFrameFilename, formatTimestamp };
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, n as SessionMetadata, o as getSessionHandle, r as checkStorageQuota, s as getSessionsRootHandle, u as resetOpfsStorage } from "../opfs-storage-
|
|
2
|
-
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-
|
|
3
|
-
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, n as GpsPathCoord, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-
|
|
4
|
-
import { t as NullStorageBackend } from "../null-storage-backend-
|
|
5
|
-
import { t as OpfsStorageBackend } from "../opfs-storage-backend-
|
|
6
|
-
import { a as formatTimestamp, i as formatFrameFilename, r as formatActionFilename } from "../file-system-utils-
|
|
7
|
-
import { a as downloadZip, c as syncToExternalZip, i as ZipExportResult, n as ZipContributorAddFile, o as exportSessionAsZip, r as ZipExportContributor, s as exportSessionHandleAsZip, t as ExportSessionAsZipOptions } from "../zip-export-
|
|
8
|
-
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-
|
|
1
|
+
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, n as SessionMetadata, o as getSessionHandle, r as checkStorageQuota, s as getSessionsRootHandle, u as resetOpfsStorage } from "../opfs-storage-CrhVauNL.js";
|
|
2
|
+
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-DCYbOvTw.js";
|
|
3
|
+
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, n as GpsPathCoord, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-DwkuvlGo.js";
|
|
4
|
+
import { t as NullStorageBackend } from "../null-storage-backend-Dtn3TBfT.js";
|
|
5
|
+
import { t as OpfsStorageBackend } from "../opfs-storage-backend-CZ-ECudx.js";
|
|
6
|
+
import { a as formatTimestamp, i as formatFrameFilename, r as formatActionFilename } from "../file-system-utils-DE3BViuq.js";
|
|
7
|
+
import { a as downloadZip, c as syncToExternalZip, i as ZipExportResult, n as ZipContributorAddFile, o as exportSessionAsZip, r as ZipExportContributor, s as exportSessionHandleAsZip, t as ExportSessionAsZipOptions } from "../zip-export-Cfl_kNQ7.js";
|
|
8
|
+
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-BC3O2-8b.js";
|
|
9
9
|
export { type CreateSessionResult, type Entry, type ExportSessionAsZipOptions, type GpsPathCoord, MAX_ACTION_FILE_SIZE, NullStorageBackend, OpfsStorageBackend, type RecordedAction, type SessionMetadata, type StorageBackend, type ZipActionEntry, type ZipContributorAddFile, type ZipExportContributor, type ZipExportResult, type ZipSubdirEntry, checkStorageQuota, createSession, downloadZip, embedCoverageInSessionJson, exportSessionAsZip, exportSessionHandleAsZip, formatActionFilename, formatFrameFilename, formatTimestamp, getAppRootHandle, getSessionHandle, getSessionsRootHandle, initOpfsStorage, listSessions, loadActionsFromZip, loadEntriesFromSubdir, loadGpsPathFromBlob, loadSessionMetadataFromBlob, loadSessionMetadata as loadSessionMetadataFromZip, readZipEntries, resetOpfsStorage, resetSessionHandles, syncToExternalZip, writeSessionMetadata };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as NullStorageBackend } from "../null-storage-backend-
|
|
1
|
+
import { t as NullStorageBackend } from "../null-storage-backend-Dtn3TBfT.js";
|
|
2
2
|
export { NullStorageBackend };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as OpfsStorageBackend } from "../opfs-storage-backend-
|
|
1
|
+
import { t as OpfsStorageBackend } from "../opfs-storage-backend-CZ-ECudx.js";
|
|
2
2
|
export { OpfsStorageBackend };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, f as setSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, m as writeFrame, n as SessionMetadata, o as getSessionHandle, p as writeAction, r as checkStorageQuota, s as getSessionsRootHandle, t as CreateSessionResult, u as resetOpfsStorage } from "../opfs-storage-
|
|
1
|
+
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, f as setSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, m as writeFrame, n as SessionMetadata, o as getSessionHandle, p as writeAction, r as checkStorageQuota, s as getSessionsRootHandle, t as CreateSessionResult, u as resetOpfsStorage } from "../opfs-storage-CrhVauNL.js";
|
|
2
2
|
export { CreateSessionResult, SessionMetadata, checkStorageQuota, createSession, getAppRootHandle, getSessionHandle, getSessionsRootHandle, initOpfsStorage, listSessions, resetOpfsStorage, resetSessionHandles, setSessionHandles, writeAction, writeFrame, writeSessionMetadata };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-
|
|
1
|
+
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-DCYbOvTw.js";
|
|
2
2
|
export { CreateSessionResult, StorageBackend };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-
|
|
1
|
+
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-BC3O2-8b.js";
|
|
2
2
|
export { embedCoverageInSessionJson };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as downloadZip, c as syncToExternalZip, i as ZipExportResult, n as ZipContributorAddFile, o as exportSessionAsZip, r as ZipExportContributor, s as exportSessionHandleAsZip, t as ExportSessionAsZipOptions } from "../zip-export-
|
|
1
|
+
import { a as downloadZip, c as syncToExternalZip, i as ZipExportResult, n as ZipContributorAddFile, o as exportSessionAsZip, r as ZipExportContributor, s as exportSessionHandleAsZip, t as ExportSessionAsZipOptions } from "../zip-export-Cfl_kNQ7.js";
|
|
2
2
|
export { ExportSessionAsZipOptions, ZipContributorAddFile, ZipExportContributor, ZipExportResult, downloadZip, exportSessionAsZip, exportSessionHandleAsZip, syncToExternalZip };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, m as toZipReader, n as GpsPathCoord, o as ZipSource, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-
|
|
1
|
+
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, m as toZipReader, n as GpsPathCoord, o as ZipSource, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-DwkuvlGo.js";
|
|
2
2
|
export { Entry, GpsPathCoord, MAX_ACTION_FILE_SIZE, RecordedAction, ZipActionEntry, ZipSource, ZipSubdirEntry, loadActionsFromZip, loadEntriesFromSubdir, loadGpsPathFromBlob, loadSessionMetadata, loadSessionMetadataFromBlob, readZipEntries, toZipReader };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as MapData } from "./map-data-
|
|
2
|
-
import { t as SubscribableStore } from "./subscribe-to-selector-
|
|
1
|
+
import { t as MapData } from "./map-data-BQXPtRz7.js";
|
|
2
|
+
import { t as SubscribableStore } from "./subscribe-to-selector-B_lm_euO.js";
|
|
3
3
|
import { LatLong, Matrix4, Quaternion, Vector3 } from "gps-plus-slam-js";
|
|
4
4
|
|
|
5
5
|
//#region ../src/state/store-subscribers.d.ts
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
|
|
3
|
+
//#region ../src/visualization/text-sprite.d.ts
|
|
4
|
+
interface TextSpriteOptions {
|
|
5
|
+
/** Initial label text. Defaults to ''. */
|
|
6
|
+
text?: string;
|
|
7
|
+
/** Canvas backing-store width in px. Defaults to 64. */
|
|
8
|
+
canvasWidth?: number;
|
|
9
|
+
/** Canvas backing-store height in px. Defaults to 64. */
|
|
10
|
+
canvasHeight?: number;
|
|
11
|
+
/** CSS font shorthand used for the label. Defaults to 'bold 48px sans-serif'. */
|
|
12
|
+
font?: string;
|
|
13
|
+
/** Fill style for the text. Defaults to '#ffffff'. */
|
|
14
|
+
textColor?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Background painted behind the text on every redraw.
|
|
17
|
+
* 'none' keeps the canvas transparent; 'pill' draws a rounded
|
|
18
|
+
* semi-transparent black capsule for contrast against AR video.
|
|
19
|
+
*/
|
|
20
|
+
background?: 'none' | 'pill';
|
|
21
|
+
/** SpriteMaterial.depthWrite. Defaults to the three.js material default. */
|
|
22
|
+
depthWrite?: boolean;
|
|
23
|
+
/** SpriteMaterial.transparent. Defaults to the three.js material default. */
|
|
24
|
+
transparent?: boolean;
|
|
25
|
+
/** Use LinearFilter for min/mag (crisper animated text). Defaults to false. */
|
|
26
|
+
linearFilters?: boolean;
|
|
27
|
+
/** Sprite.renderOrder. Defaults to 0. */
|
|
28
|
+
renderOrder?: number;
|
|
29
|
+
/** Initial sprite scale. Defaults to the three.js sprite default (1,1,1). */
|
|
30
|
+
scale?: {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
z: number;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
interface TextSprite {
|
|
37
|
+
/** The renderable sprite — attach it to the scene graph yourself. */
|
|
38
|
+
readonly sprite: THREE.Sprite;
|
|
39
|
+
/** Redraw the label. No-op (no redraw, no texture upload) when unchanged. */
|
|
40
|
+
setText(text: string): void;
|
|
41
|
+
/** Dispose the sprite material and its canvas texture. */
|
|
42
|
+
dispose(): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a text sprite backed by an off-screen canvas texture.
|
|
46
|
+
*
|
|
47
|
+
* Tolerates a null 2D context (headless test environments without a canvas
|
|
48
|
+
* backend): the sprite is still created and setText()/dispose() stay safe;
|
|
49
|
+
* only the pixels are skipped.
|
|
50
|
+
*/
|
|
51
|
+
declare function createTextSprite(options?: TextSpriteOptions): TextSprite;
|
|
52
|
+
//#endregion
|
|
53
|
+
export { TextSpriteOptions as n, createTextSprite as r, TextSprite as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ARPose } from "./ar-types-
|
|
1
|
+
import { t as ARPose } from "./ar-types-BprL3nKv.js";
|
|
2
2
|
import { OdometryTrackingRestartedPayload, Quaternion, Vector3 } from "gps-plus-slam-js";
|
|
3
3
|
import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
|
|
4
4
|
import * as _$redux from "redux";
|
package/dist/types/ar-types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as RgbTuple, c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-
|
|
1
|
+
import { a as RgbTuple, c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-BprL3nKv.js";
|
|
2
2
|
export { ARPose, ArPoseTuples, DepthPoint, DepthSample, RgbTuple, WebXRQuaternion, WebXRVec3, extractOdomPosition, extractOdomRotation };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-
|
|
1
|
+
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-DGe5UKgx.js";
|
|
2
2
|
export { GpsCoord, RawGpsSample, RefPointMarker };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as RgbTuple, c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-
|
|
2
|
-
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-
|
|
1
|
+
import { a as RgbTuple, c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-BprL3nKv.js";
|
|
2
|
+
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-DGe5UKgx.js";
|
|
3
3
|
export { ARPose, ArPoseTuples, DepthPoint, DepthSample, GpsCoord, RawGpsSample, RefPointMarker, RgbTuple, WebXRQuaternion, WebXRVec3, extractOdomPosition, extractOdomRotation };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as mapWithConcurrencyLimit, t as forEachWithConcurrencyLimit } from "../concurrency-
|
|
1
|
+
import { n as mapWithConcurrencyLimit, t as forEachWithConcurrencyLimit } from "../concurrency-CMhbkxBk.js";
|
|
2
2
|
export { forEachWithConcurrencyLimit, mapWithConcurrencyLimit };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-
|
|
1
|
+
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-BdaFulDA.js";
|
|
2
2
|
export { FailureTracker, FailureTrackerConfig, createFailureTracker };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as formatFileSize } from "../format-file-size-
|
|
1
|
+
import { t as formatFileSize } from "../format-file-size-B2CJdRqD.js";
|
|
2
2
|
export { formatFileSize };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-
|
|
1
|
+
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-CBAttcVm.js";
|
|
2
2
|
export { FusedPathInput, computeFusedPath, fusedGpsFromOdom };
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as createLogger, c as setGlobalLogLevel, i as clearLogBuffer, l as subscribeToLogs, n as LogLevel, o as getGlobalLogLevel, r as Logger, s as getLogBuffer, t as LogEntry } from "../logger-
|
|
2
|
-
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-
|
|
3
|
-
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-
|
|
4
|
-
import { n as mapWithConcurrencyLimit } from "../concurrency-
|
|
5
|
-
import { t as geodesicAngleRad } from "../index-
|
|
6
|
-
import { t as formatFileSize } from "../format-file-size-
|
|
7
|
-
import { t as listFormatter } from "../list-formatter-
|
|
1
|
+
import { a as createLogger, c as setGlobalLogLevel, i as clearLogBuffer, l as subscribeToLogs, n as LogLevel, o as getGlobalLogLevel, r as Logger, s as getLogBuffer, t as LogEntry } from "../logger-BQGNXi9W.js";
|
|
2
|
+
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-CBAttcVm.js";
|
|
3
|
+
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-BdaFulDA.js";
|
|
4
|
+
import { n as mapWithConcurrencyLimit } from "../concurrency-CMhbkxBk.js";
|
|
5
|
+
import { t as geodesicAngleRad } from "../index-Y_RNWbQX.js";
|
|
6
|
+
import { t as formatFileSize } from "../format-file-size-B2CJdRqD.js";
|
|
7
|
+
import { t as listFormatter } from "../list-formatter-C45u3Vgv.js";
|
|
8
8
|
export { FailureTracker, FailureTrackerConfig, FusedPathInput, LogEntry, LogLevel, Logger, clearLogBuffer, computeFusedPath, createFailureTracker, createLogger, formatFileSize, fusedGpsFromOdom, geodesicAngleRad, getGlobalLogLevel, getLogBuffer, listFormatter, mapWithConcurrencyLimit, setGlobalLogLevel, subscribeToLogs };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as listFormatter } from "../list-formatter-
|
|
1
|
+
import { t as listFormatter } from "../list-formatter-C45u3Vgv.js";
|
|
2
2
|
export { listFormatter };
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as createLogger, c as setGlobalLogLevel, i as clearLogBuffer, l as subscribeToLogs, n as LogLevel, o as getGlobalLogLevel, r as Logger, s as getLogBuffer, t as LogEntry } from "../logger-
|
|
1
|
+
import { a as createLogger, c as setGlobalLogLevel, i as clearLogBuffer, l as subscribeToLogs, n as LogLevel, o as getGlobalLogLevel, r as Logger, s as getLogBuffer, t as LogEntry } from "../logger-BQGNXi9W.js";
|
|
2
2
|
export { LogEntry, LogLevel, Logger, clearLogBuffer, createLogger, getGlobalLogLevel, getLogBuffer, setGlobalLogLevel, subscribeToLogs };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as addAccuracyCircles, i as AccuracyCircleSample, n as ACCURACY_CIRCLE_STROKE_OPACITY, r as ACCURACY_CIRCLE_WEIGHT, t as ACCURACY_CIRCLE_FILL_OPACITY } from "../accuracy-circles-
|
|
1
|
+
import { a as addAccuracyCircles, i as AccuracyCircleSample, n as ACCURACY_CIRCLE_STROKE_OPACITY, r as ACCURACY_CIRCLE_WEIGHT, t as ACCURACY_CIRCLE_FILL_OPACITY } from "../accuracy-circles-CFnKGfsD.js";
|
|
2
2
|
export { ACCURACY_CIRCLE_FILL_OPACITY, ACCURACY_CIRCLE_STROKE_OPACITY, ACCURACY_CIRCLE_WEIGHT, AccuracyCircleSample, addAccuracyCircles };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createAlignmentLerper, t as AlignmentLerper } from "../alignment-lerper-
|
|
1
|
+
import { n as createAlignmentLerper, t as AlignmentLerper } from "../alignment-lerper-CK1TYLIL.js";
|
|
2
2
|
export { AlignmentLerper, createAlignmentLerper };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "../ar-world-group-alignment-
|
|
1
|
+
import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "../ar-world-group-alignment-CvvfACfx.js";
|
|
2
2
|
export { ArWorldGroupAlignmentHandle, ArWorldGroupAlignmentOptions, enableArWorldGroupAlignment };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { registerFrameUpdate } from "../ar/frame-loop.js";
|
|
2
|
-
import { t as registerSessionDisposer } from "../session-disposers-
|
|
2
|
+
import { t as registerSessionDisposer } from "../session-disposers-BJM5U62W.js";
|
|
3
3
|
import { createAlignmentLerper } from "./alignment-lerper.js";
|
|
4
4
|
import { selectAlignmentMatrix } from "../state/app-selectors.js";
|
|
5
5
|
import { subscribeToSelector } from "../state/subscribe-to-selector.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createCameraFollower, t as CameraFollower } from "../camera-follower-
|
|
1
|
+
import { n as createCameraFollower, t as CameraFollower } from "../camera-follower-OnnXsbHd.js";
|
|
2
2
|
export { CameraFollower, createCameraFollower };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createCss3dRendererManager, t as Css3dRendererManager } from "../css3d-renderer-manager-
|
|
1
|
+
import { n as createCss3dRendererManager, t as Css3dRendererManager } from "../css3d-renderer-manager-CE6xN7XM.js";
|
|
2
2
|
export { Css3dRendererManager, createCss3dRendererManager };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as worldNueToGps, t as nueToArLocal } from "../frame-conversions-
|
|
1
|
+
import { n as worldNueToGps, t as nueToArLocal } from "../frame-conversions-CzPQDYpM.js";
|
|
2
2
|
export { nueToArLocal, worldNueToGps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as isSphereInCameraFrustum, n as isObjectInCameraFrustum, r as isPointInCameraFrustum, t as buildCameraFrustum } from "../frustum-visibility-
|
|
1
|
+
import { i as isSphereInCameraFrustum, n as isObjectInCameraFrustum, r as isPointInCameraFrustum, t as buildCameraFrustum } from "../frustum-visibility-BTx1Sqfo.js";
|
|
2
2
|
export { buildCameraFrustum, isObjectInCameraFrustum, isPointInCameraFrustum, isSphereInCameraFrustum };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as GpsAnchorSamplePoint, i as GpsAnchorPhase, n as GpsAnchorMode, o as createGpsAnchor, r as GpsAnchorOptions, t as GpsAnchor } from "../gps-anchor-
|
|
1
|
+
import { a as GpsAnchorSamplePoint, i as GpsAnchorPhase, n as GpsAnchorMode, o as createGpsAnchor, r as GpsAnchorOptions, t as GpsAnchor } from "../gps-anchor-Gv4NDwH4.js";
|
|
2
2
|
export { GpsAnchor, GpsAnchorMode, GpsAnchorOptions, GpsAnchorPhase, GpsAnchorSamplePoint, createGpsAnchor };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as createGpsCompassCubes, n as COMPASS_CUBE_SIZE, r as GpsCompassCubes, t as COMPASS_CUBE_DISTANCE } from "../gps-compass-cubes-
|
|
1
|
+
import { i as createGpsCompassCubes, n as COMPASS_CUBE_SIZE, r as GpsCompassCubes, t as COMPASS_CUBE_DISTANCE } from "../gps-compass-cubes-QQJgpRXR.js";
|
|
2
2
|
export { COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, GpsCompassCubes, createGpsCompassCubes };
|