gps-plus-slam-app-framework 1.0.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/LICENSE +201 -0
- package/README.md +222 -0
- package/dist/alignment-lerper-D9BeDwZX.d.ts +29 -0
- package/dist/app-selectors-DyMzxCEC.d.ts +140 -0
- package/dist/ar/camera-blit-capture.d.ts +2 -0
- package/dist/ar/camera-blit-capture.js +253 -0
- package/dist/ar/capture-failure-tracker.d.ts +2 -0
- package/dist/ar/capture-failure-tracker.js +45 -0
- package/dist/ar/chromium-camera-access-workaround.d.ts +2 -0
- package/dist/ar/chromium-camera-access-workaround.js +32 -0
- package/dist/ar/depth-sampler.d.ts +3 -0
- package/dist/ar/depth-sampler.js +147 -0
- package/dist/ar/image-capture.d.ts +2 -0
- package/dist/ar/image-capture.js +152 -0
- package/dist/ar/index.d.ts +12 -0
- package/dist/ar/index.js +12 -0
- package/dist/ar/replay-scene.d.ts +2 -0
- package/dist/ar/replay-scene.js +325 -0
- package/dist/ar/scene-node-names.d.ts +2 -0
- package/dist/ar/scene-node-names.js +16 -0
- package/dist/ar/tracking-state.d.ts +2 -0
- package/dist/ar/tracking-state.js +164 -0
- package/dist/ar/webxr-session.d.ts +4 -0
- package/dist/ar/webxr-session.js +890 -0
- package/dist/ar/xr-camera-texture.d.ts +2 -0
- package/dist/ar/xr-camera-texture.js +39 -0
- package/dist/ar/xr-error-handler.d.ts +2 -0
- package/dist/ar/xr-error-handler.js +37 -0
- package/dist/ar-types-B-ORgk6Z.d.ts +82 -0
- package/dist/camera-blit-capture-DHuyrrxr.d.ts +108 -0
- package/dist/camera-follower-BMqPddxx.d.ts +29 -0
- package/dist/capture-failure-tracker-2Q6oI2uQ.d.ts +52 -0
- package/dist/chromium-camera-access-workaround-CU5zSKNr.d.ts +61 -0
- package/dist/community-license-key-ChZLCJyO.d.ts +21 -0
- package/dist/concurrency-p6gB30fT.d.ts +24 -0
- package/dist/css3d-renderer-manager-rgLMVAvd.d.ts +23 -0
- package/dist/depth-sampler-BNCtnEoP.d.ts +108 -0
- package/dist/failure-tracker-1sQ_Cgyw.d.ts +49 -0
- package/dist/file-system-BsQgYCU3.d.ts +128 -0
- package/dist/file-system-utils-5cWO8Xyv.d.ts +24 -0
- package/dist/format-file-size-onGq0k1Q.d.ts +24 -0
- package/dist/fused-path-DtqCSqJh.d.ts +25 -0
- package/dist/geo-types-Xx-LVcnw.d.ts +29 -0
- package/dist/gps-Ddzr2KlX.d.ts +54 -0
- package/dist/gps-compass-cubes-C-6JEnpR.d.ts +22 -0
- package/dist/gps-error-handler-VPuNOuf8.d.ts +40 -0
- package/dist/gps-event-markers-DpEy2qRd.d.ts +67 -0
- package/dist/h3-ref-point-CFhayNSZ.d.ts +59 -0
- package/dist/image-capture-2pKjYUS6.d.ts +130 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.js +61 -0
- package/dist/leaflet-map-overlay-CvfQXTye.d.ts +114 -0
- package/dist/lerp-utils-87NWjUOD.d.ts +20 -0
- package/dist/licensing/community-license-key.d.ts +2 -0
- package/dist/licensing/community-license-key.js +21 -0
- package/dist/licensing/index.d.ts +2 -0
- package/dist/licensing/index.js +2 -0
- package/dist/list-formatter-DKQQVLcl.d.ts +14 -0
- package/dist/logger-B81iwxx0.d.ts +74 -0
- package/dist/map-overlay-DuiZuCTx.d.ts +153 -0
- package/dist/null-storage-backend-CsWvQwN8.d.ts +11 -0
- package/dist/opfs-storage-ChOzF_Wp.d.ts +181 -0
- package/dist/opfs-storage-backend-CVcmfJHN.d.ts +11 -0
- package/dist/permission-checker-jO2ziCWC.d.ts +146 -0
- package/dist/persistence-middleware-DrptY02i.d.ts +31 -0
- package/dist/recorder-slice-fcwAXrsh.d.ts +35 -0
- package/dist/recording-coordinator-DzflP07_.d.ts +81 -0
- package/dist/recording-options-BYUFX8iU.d.ts +166 -0
- package/dist/recording-replayer-oOzPITrd.d.ts +32 -0
- package/dist/ref-point-importer-B_wn5ABk.d.ts +62 -0
- package/dist/ref-point-loader-Pt1smgHS.d.ts +117 -0
- package/dist/ref-points/h3-ref-point.d.ts +2 -0
- package/dist/ref-points/h3-ref-point.js +74 -0
- package/dist/ref-points/index.d.ts +2 -0
- package/dist/ref-points/index.js +2 -0
- package/dist/ref-points-slice-tC-Wd6XJ.d.ts +48 -0
- package/dist/reference-points-CFWy8_wj.d.ts +68 -0
- package/dist/replay-engine-DuX316ae.d.ts +103 -0
- package/dist/replay-scene-DtUm6bsr.d.ts +109 -0
- package/dist/routing-slice-BlHTM8eh.d.ts +23 -0
- package/dist/scene-node-names-DPsaE2z3.d.ts +14 -0
- package/dist/sensors/gps-error-handler.d.ts +2 -0
- package/dist/sensors/gps-error-handler.js +53 -0
- package/dist/sensors/gps.d.ts +2 -0
- package/dist/sensors/gps.js +93 -0
- package/dist/sensors/index.d.ts +4 -0
- package/dist/sensors/index.js +4 -0
- package/dist/sensors/permission-checker.d.ts +2 -0
- package/dist/sensors/permission-checker.js +397 -0
- package/dist/state/app-selectors.d.ts +2 -0
- package/dist/state/app-selectors.js +35 -0
- package/dist/state/index.d.ts +17 -0
- package/dist/state/index.js +13 -0
- package/dist/state/persistence-middleware.d.ts +2 -0
- package/dist/state/persistence-middleware.js +71 -0
- package/dist/state/recorder-slice.d.ts +2 -0
- package/dist/state/recorder-slice.js +47 -0
- package/dist/state/recording-coordinator.d.ts +2 -0
- package/dist/state/recording-coordinator.js +150 -0
- package/dist/state/recording-options.d.ts +2 -0
- package/dist/state/recording-options.js +192 -0
- package/dist/state/recording-replayer.d.ts +2 -0
- package/dist/state/recording-replayer.js +39 -0
- package/dist/state/ref-points-slice.d.ts +2 -0
- package/dist/state/ref-points-slice.js +44 -0
- package/dist/state/replay-engine.d.ts +2 -0
- package/dist/state/replay-engine.js +230 -0
- package/dist/state/routing-slice.d.ts +2 -0
- package/dist/state/routing-slice.js +13 -0
- package/dist/state/store-subscribers.d.ts +3 -0
- package/dist/state/store-subscribers.js +97 -0
- package/dist/state/store.d.ts +9 -0
- package/dist/state/store.js +71 -0
- package/dist/state/subscribe-to-selector.d.ts +2 -0
- package/dist/state/subscribe-to-selector.js +26 -0
- package/dist/storage/file-system-utils.d.ts +2 -0
- package/dist/storage/file-system-utils.js +31 -0
- package/dist/storage/file-system.d.ts +2 -0
- package/dist/storage/file-system.js +229 -0
- package/dist/storage/index.d.ts +11 -0
- package/dist/storage/index.js +10 -0
- package/dist/storage/null-storage-backend.d.ts +2 -0
- package/dist/storage/null-storage-backend.js +8 -0
- package/dist/storage/opfs-storage-backend.d.ts +2 -0
- package/dist/storage/opfs-storage-backend.js +15 -0
- package/dist/storage/opfs-storage.d.ts +2 -0
- package/dist/storage/opfs-storage.js +242 -0
- package/dist/storage/ref-point-importer.d.ts +2 -0
- package/dist/storage/ref-point-importer.js +163 -0
- package/dist/storage/ref-point-loader.d.ts +2 -0
- package/dist/storage/ref-point-loader.js +248 -0
- package/dist/storage/ref-point-recovery.d.ts +28 -0
- package/dist/storage/ref-point-recovery.js +159 -0
- package/dist/storage/storage-backend.d.ts +2 -0
- package/dist/storage/storage-backend.js +1 -0
- package/dist/storage/zip-export.d.ts +2 -0
- package/dist/storage/zip-export.js +214 -0
- package/dist/storage/zip-reader.d.ts +2 -0
- package/dist/storage/zip-reader.js +190 -0
- package/dist/storage-backend-BcEItnFr.d.ts +20 -0
- package/dist/store-C7PKOj8S.d.ts +96 -0
- package/dist/store-subscribers-CuoIzB5T.d.ts +77 -0
- package/dist/subscribe-to-selector-UTZ0KkAc.d.ts +26 -0
- package/dist/test-utils/browser-mocks.d.ts +294 -0
- package/dist/test-utils/browser-mocks.js +568 -0
- package/dist/test-utils/zip-round-trip-helpers.d.ts +60 -0
- package/dist/test-utils/zip-round-trip-helpers.js +207 -0
- package/dist/three-dispose-CCBHjE_a.d.ts +30 -0
- package/dist/tracking-state-B9QfuZCg.d.ts +101 -0
- package/dist/types/ar-types.d.ts +2 -0
- package/dist/types/ar-types.js +1 -0
- package/dist/types/geo-types.d.ts +2 -0
- package/dist/types/geo-types.js +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +1 -0
- package/dist/utils/concurrency.d.ts +2 -0
- package/dist/utils/concurrency.js +40 -0
- package/dist/utils/failure-tracker.d.ts +2 -0
- package/dist/utils/failure-tracker.js +48 -0
- package/dist/utils/format-file-size.d.ts +2 -0
- package/dist/utils/format-file-size.js +41 -0
- package/dist/utils/fused-path.d.ts +2 -0
- package/dist/utils/fused-path.js +44 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/list-formatter.d.ts +2 -0
- package/dist/utils/list-formatter.js +17 -0
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.js +226 -0
- package/dist/vis-colors-Qi2vlRGt.d.ts +63 -0
- package/dist/visualization/alignment-lerper.d.ts +2 -0
- package/dist/visualization/alignment-lerper.js +68 -0
- package/dist/visualization/camera-follower.d.ts +2 -0
- package/dist/visualization/camera-follower.js +51 -0
- package/dist/visualization/css3d-renderer-manager.d.ts +2 -0
- package/dist/visualization/css3d-renderer-manager.js +41 -0
- package/dist/visualization/gps-compass-cubes.d.ts +2 -0
- package/dist/visualization/gps-compass-cubes.js +129 -0
- package/dist/visualization/gps-event-markers.d.ts +2 -0
- package/dist/visualization/gps-event-markers.js +159 -0
- package/dist/visualization/index.d.ts +12 -0
- package/dist/visualization/index.js +12 -0
- package/dist/visualization/leaflet-map-overlay.d.ts +2 -0
- package/dist/visualization/leaflet-map-overlay.js +313 -0
- package/dist/visualization/lerp-utils.d.ts +2 -0
- package/dist/visualization/lerp-utils.js +22 -0
- package/dist/visualization/map-overlay.d.ts +2 -0
- package/dist/visualization/map-overlay.js +241 -0
- package/dist/visualization/reference-points.d.ts +2 -0
- package/dist/visualization/reference-points.js +160 -0
- package/dist/visualization/three-dispose.d.ts +2 -0
- package/dist/visualization/three-dispose.js +55 -0
- package/dist/visualization/vis-colors.d.ts +2 -0
- package/dist/visualization/vis-colors.js +74 -0
- package/dist/webxr-session-COlSrXdL.d.ts +316 -0
- package/dist/xr-camera-texture-BbukNE79.d.ts +53 -0
- package/dist/xr-error-handler-DTHfmvrl.d.ts +24 -0
- package/dist/zip-export-Rtpi75JJ.d.ts +87 -0
- package/dist/zip-reader-D7pkpX8K.d.ts +97 -0
- package/package.json +104 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { i as computeCaptureSize, n as CameraBlitCaptureConfig, r as DEFAULT_BLIT_CONFIG, t as CameraBlitCapture } from "./camera-blit-capture-DHuyrrxr.js";
|
|
2
|
+
import { a as createCaptureFailureTracker, i as DEFAULT_CAPTURE_TRACKER_CONFIG, n as CaptureFailureTracker, r as CaptureFailureTrackerConfig, t as CAPTURE_FAILURE_WARNING } from "./capture-failure-tracker-2Q6oI2uQ.js";
|
|
3
|
+
import { n as applyChromiumProjectionLayerWorkaround, t as ChromiumProjectionLayerWorkaroundResult } from "./chromium-camera-access-workaround-CU5zSKNr.js";
|
|
4
|
+
import { a as WebXRQuaternion, i as DepthSample, n as ArPoseTuples, o as WebXRVec3, r as DepthPoint, t as ARPose } from "./ar-types-B-ORgk6Z.js";
|
|
5
|
+
import { i as DepthSamplerConfig, n as DepthSampler, r as DepthSamplerCallbacks, t as DepthInfo } from "./depth-sampler-BNCtnEoP.js";
|
|
6
|
+
import { a as ImageCaptureManager, i as ImageCaptureConfig, n as DEFAULT_CAPTURE_CONFIG, o as MIN_VALID_IMAGE_BYTES, r as ImageCaptureCallbacks, t as CapturedImage } from "./image-capture-2pKjYUS6.js";
|
|
7
|
+
import { n as createCameraFollower, t as CameraFollower } from "./camera-follower-BMqPddxx.js";
|
|
8
|
+
import { n as createAlignmentLerper, t as AlignmentLerper } from "./alignment-lerper-D9BeDwZX.js";
|
|
9
|
+
import { n as createCss3dRendererManager, t as Css3dRendererManager } from "./css3d-renderer-manager-rgLMVAvd.js";
|
|
10
|
+
import { a as getCameraFollower, c as getReplayState, d as updateOrbitTarget, i as getAlignmentLerper, l as initReplayScene, n as ReplaySceneState, o as getCameraMode, r as disposeReplayScene, t as CameraMode, u as toggleCameraMode } from "./replay-scene-DtUm6bsr.js";
|
|
11
|
+
import { t as SCENE_NODE } from "./scene-node-names-DPsaE2z3.js";
|
|
12
|
+
import { a as TrackingStateManager, i as TrackingStateCallbacks, r as TrackingState, t as DeviceOrientation } from "./tracking-state-B9QfuZCg.js";
|
|
13
|
+
import { _ as validateRecordingOptions, a as IMAGE_CONSTRAINTS, c as RecordingOptionsInput, d as loadRecordingOptions, f as resetRecordingOptions, g as validateImageOptions, h as validateDepthOptions, i as DepthCaptureOptions, l as STORAGE_KEY, n as DEFAULT_RECORDING_OPTIONS, o as ImageCaptureOptions, p as saveRecordingOptions, r as DEPTH_CONSTRAINTS, s as RecordingOptions, u as cloneRecordingOptions } from "./recording-options-BYUFX8iU.js";
|
|
14
|
+
import { i as acquireCameraTexture, n as RendererLike, r as XRCameraLike, t as CameraTextureResult } from "./xr-camera-texture-BbukNE79.js";
|
|
15
|
+
import { A as setTrackingLostCallback, D as setImageCaptureCallback, E as setFrameCallback, F as stopDepthCapture, I as stopImageCapture, N as startDepthCapture, P as startImageCapture, T as setDepthCaptureCallback, d as getDepthSampleCount, f as getImageCaptureFrameCount, g as initAR, i as endARSession, k as setTrackingCallbacks, p as getLiveCss3dManager } from "./webxr-session-COlSrXdL.js";
|
|
16
|
+
import { n as XR_ERROR_MESSAGE_UNKNOWN, r as getXrErrorMessage, t as XR_ERROR_MESSAGES } from "./xr-error-handler-DTHfmvrl.js";
|
|
17
|
+
import { a as startOrientationWatch, i as startGpsWatch, n as RawDeviceOrientation, o as stopGpsWatch, r as requestOrientationPermission, s as stopOrientationWatch, t as GpsPosition } from "./gps-Ddzr2KlX.js";
|
|
18
|
+
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-VPuNOuf8.js";
|
|
19
|
+
import { a as checkFileSystemPermission, c as checkWebXRSupport, d as requestGeolocationPermission, f as requestOrientationPermission$1, h as setFileSystemState, i as checkCameraPermission, l as requestAllPermissions, m as resetFileSystemState, n as PermissionStatus, o as checkGeolocationPermission, p as requestWebXRWithDepthPermission, r as checkAllPermissions, s as checkOrientationPermission, t as PermissionCheckResult, u as requestCameraPermission } from "./permission-checker-jO2ziCWC.js";
|
|
20
|
+
import { a as gpsToH3, i as findNearbyRefPoint, n as KnownRefPoint, o as h3RefsMatch, r as approxDistanceMetres, s as isH3Index, t as H3_RESOLUTION } from "./h3-ref-point-CFhayNSZ.js";
|
|
21
|
+
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-B81iwxx0.js";
|
|
22
|
+
import { n as RefPointMarker, t as GpsCoord } from "./geo-types-Xx-LVcnw.js";
|
|
23
|
+
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "./fused-path-DtqCSqJh.js";
|
|
24
|
+
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "./failure-tracker-1sQ_Cgyw.js";
|
|
25
|
+
import { t as mapWithConcurrencyLimit } from "./concurrency-p6gB30fT.js";
|
|
26
|
+
import { t as formatFileSize } from "./format-file-size-onGq0k1Q.js";
|
|
27
|
+
import { t as listFormatter } from "./list-formatter-DKQQVLcl.js";
|
|
28
|
+
import { a as getScenarioHandle, c as initOpfsStorage, d as resetOpfsStorage, f as resetSessionHandles, i as createSession, o as getScenariosRootHandle, r as checkStorageQuota, s as getSessionHandle, t as CreateSessionResult, u as listSessions } from "./opfs-storage-ChOzF_Wp.js";
|
|
29
|
+
import { t as StorageBackend } from "./storage-backend-BcEItnFr.js";
|
|
30
|
+
import { a as recordWriteFailure, c as startSession, i as recordDepthSample, r as endSession, s as setCurrentScenarioName, t as RecorderState } from "./recorder-slice-fcwAXrsh.js";
|
|
31
|
+
import { n as RefPointImportResult, r as importRefPointsFromFolder, t as ImportedRefPoint } from "./ref-point-importer-B_wn5ABk.js";
|
|
32
|
+
import { a as resetRefPointsState, i as refPointsReducer, n as clearSessionRefPointUsage, o as selectCachedKnownRefPoints, r as incrementRefPointUsage, s as setImportedRefPoints } from "./ref-points-slice-tC-Wd6XJ.js";
|
|
33
|
+
import { n as RoutingState, r as navigateTo, t as AppScreen } from "./routing-slice-BlHTM8eh.js";
|
|
34
|
+
import { a as flattenRefPointsToMarks, c as loadRefPoint, i as averageGpsPerRefPoint, l as saveRefPointObservation, n as RefPointMark, o as listRefPointIds, r as RefPointObservation, s as loadAllRefPoints, t as RefPointDefinition } from "./ref-point-loader-Pt1smgHS.js";
|
|
35
|
+
import { _ as setZeroPos, d as RootState, f as add2dImage, g as recordGpsEvent, h as markReferencePoint, l as RecorderStore, m as createRecorderStore, n as CombinedRootState, p as calcRelativeCoordsInMeters, t as AppDispatch, u as RecorderStoreOptions } from "./store-C7PKOj8S.js";
|
|
36
|
+
import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as resetCoordinatorState, n as buildRawGpsPoint, o as extractOdomPosition, r as buildRecordGpsEventPayload, s as extractOdomRotation, t as RecordingCoordinatorConfig, u as updateDeviceOrientation } from "./recording-coordinator-DzflP07_.js";
|
|
37
|
+
import { a as ZipActionEntry, i as RecordedAction, l as loadSessionMetadataFromBlob, n as GpsPathCoord, o as loadActionsFromZip, r as MAX_ACTION_FILE_SIZE, s as loadGpsPathFromBlob, u as readZipEntries } from "./zip-reader-D7pkpX8K.js";
|
|
38
|
+
import { n as replayRecording } from "./recording-replayer-oOzPITrd.js";
|
|
39
|
+
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-DuX316ae.js";
|
|
40
|
+
import { t as SubscribableStore } from "./subscribe-to-selector-UTZ0KkAc.js";
|
|
41
|
+
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "./store-subscribers-CuoIzB5T.js";
|
|
42
|
+
import { t as NullStorageBackend } from "./null-storage-backend-CsWvQwN8.js";
|
|
43
|
+
import { t as OpfsStorageBackend } from "./opfs-storage-backend-CVcmfJHN.js";
|
|
44
|
+
import { a as initStorage, c as resetForNewSession, d as startSession$1, f as verifyWriteAccess, l as resetStorageState, m as writeFrame, n as WriteAccessResult, p as writeAction } from "./file-system-BsQgYCU3.js";
|
|
45
|
+
import { n as formatFrameFilename, r as formatTimestamp, t as formatActionFilename } from "./file-system-utils-5cWO8Xyv.js";
|
|
46
|
+
import { a as syncToExternalZip, i as exportSessionAsZip, n as downloadZip, r as exportAndDownloadSession, t as ZipExportResult } from "./zip-export-Rtpi75JJ.js";
|
|
47
|
+
import { i as createGpsCompassCubes, n as COMPASS_CUBE_SIZE, r as GpsCompassCubes, t as COMPASS_CUBE_DISTANCE } from "./gps-compass-cubes-C-6JEnpR.js";
|
|
48
|
+
import { n as gpsEventVisualizer, t as GpsEventVisualizer } from "./gps-event-markers-DpEy2qRd.js";
|
|
49
|
+
import { a as DEFAULT_Z_OFFSET, n as DEFAULT_LEAFLET_MAP_SIZE_PX, o as LeafletMapOverlay, r as DEFAULT_WORLD_SIZE, s as LeafletMapOverlayOptions } from "./leaflet-map-overlay-CvfQXTye.js";
|
|
50
|
+
import { n as clampedAlpha, t as DEFAULT_LERP_RATE } from "./lerp-utils-87NWjUOD.js";
|
|
51
|
+
import { a as MapOverlayOptions, c as tileXYToLatLon, i as MapOverlay, n as DEFAULT_MAP_SIZE, o as TextureLoaderInterface, r as DEFAULT_ZOOM, s as latLonToTileXY, t as DEFAULT_HEIGHT_OFFSET } from "./map-overlay-DuiZuCTx.js";
|
|
52
|
+
import { n as refPointVisualizer, t as RefPointVisualizer } from "./reference-points-CFWy8_wj.js";
|
|
53
|
+
import { n as disposeMeshArray, r as disposeObject3D, t as DisposeOptions } from "./three-dispose-CCBHjE_a.js";
|
|
54
|
+
import { t as VIS_COLORS } from "./vis-colors-Qi2vlRGt.js";
|
|
55
|
+
import { t as COMMUNITY_LICENSE_KEY } from "./community-license-key-ChZLCJyO.js";
|
|
56
|
+
export { ARPose, AlignmentLerper, type AppDispatch, type AppScreen, ArPoseTuples, CAPTURE_FAILURE_WARNING, COMMUNITY_LICENSE_KEY, COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, CameraBlitCapture, CameraBlitCaptureConfig, CameraFollower, CameraMode, CameraTextureResult, CaptureFailureTracker, CaptureFailureTrackerConfig, CapturedImage, ChromiumProjectionLayerWorkaroundResult, type CombinedRootState, type CompleteCallback, type CreateSessionResult, Css3dRendererManager, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_HEIGHT_OFFSET, DEFAULT_LEAFLET_MAP_SIZE_PX, DEFAULT_LERP_RATE, DEFAULT_MAP_SIZE, DEFAULT_MAX_DELAY_MS, DEFAULT_RECORDING_OPTIONS, DEFAULT_WORLD_SIZE, DEFAULT_ZOOM, DEFAULT_Z_OFFSET, DEPTH_CONSTRAINTS, type DepthCaptureOptions, DepthInfo, DepthPoint, DepthSample, DepthSampler, DepthSamplerCallbacks, DepthSamplerConfig, DeviceOrientation, DisposeOptions, type ErrorCallback, FailureTracker, FailureTrackerConfig, FusedPathInput, GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, GpsCompassCubes, GpsCoord, GpsEventVisualizer, type GpsPathCoord, GpsPosition, H3_RESOLUTION, IMAGE_CONSTRAINTS, ImageCaptureCallbacks, ImageCaptureConfig, ImageCaptureManager, type ImageCaptureOptions, type ImportedRefPoint, KnownRefPoint, LeafletMapOverlay, LeafletMapOverlayOptions, LogEntry, LogLevel, Logger, MAX_ACTION_FILE_SIZE, MIN_VALID_IMAGE_BYTES, MapOverlay, MapOverlayOptions, NullStorageBackend, OpfsStorageBackend, PermissionCheckResult, PermissionStatus, type ProgressCallback, RawDeviceOrientation, type RecordedAction, type RecorderState, type RecorderStore, type RecorderStoreOptions, type RecordingCoordinatorConfig, type RecordingOptions, type RecordingOptionsInput, type RefPointDefinition, type RefPointImportResult, type RefPointMark, RefPointMarker, type RefPointObservation, RefPointVisualizer, RendererLike, type ReplayAction, ReplayEngine, ReplaySceneState, type ReplayState, type RootState, type RoutingState, SCENE_NODE, STORAGE_KEY, type StorageBackend, type StoreSubscriberDeps, type SubscribableStore, TextureLoaderInterface, TrackingState, TrackingStateCallbacks, TrackingStateManager, VIS_COLORS, WebXRQuaternion, WebXRVec3, type WriteAccessResult, XRCameraLike, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, type ZipActionEntry, type ZipExportResult, acquireCameraTexture, add2dImage, applyChromiumProjectionLayerWorkaround, approxDistanceMetres, averageGpsPerRefPoint, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkStorageQuota, checkWebXRSupport, clampedAlpha, clearLogBuffer, clearSessionRefPointUsage, cloneRecordingOptions, computeCaptureSize, computeFusedPath, computeInterActionDelay, createAlignmentLerper, createCameraFollower, createCaptureFailureTracker, createCss3dRendererManager, createFailureTracker, createGpsCompassCubes, createGpsErrorHandler, createGpsPositionHandler, createLogger, createRecorderStore, createSession, disposeMeshArray, disposeObject3D, disposeReplayScene, downloadZip, endARSession, endSession, eulerToQuaternion, exportAndDownloadSession, exportSessionAsZip, extractActionTimestamp, extractOdomPosition, extractOdomRotation, findNearbyRefPoint, flattenRefPointsToMarks, formatActionFilename, formatFileSize, formatFrameFilename, formatTimestamp, fusedGpsFromOdom, getAlignmentLerper, getCameraFollower, getCameraMode, getDepthSampleCount, getGlobalLogLevel, getGpsErrorMessage, getImageCaptureFrameCount, getLastDeviceOrientation, getLiveCss3dManager, getLogBuffer, getReplayState, getScenarioHandle, getScenariosRootHandle, getSessionHandle, getXrErrorMessage, gpsEventVisualizer, gpsToH3, h3RefsMatch, importRefPointsFromFolder, incrementRefPointUsage, initAR, initOpfsStorage, initReplayScene, initStorage, isH3Index, latLonToTileXY, listFormatter, listRefPointIds, listSessions, loadActionsFromZip, loadAllRefPoints, loadGpsPathFromBlob, loadRecordingOptions, loadRefPoint, loadSessionMetadataFromBlob, mapWithConcurrencyLimit, markReferencePoint, navigateTo, readZipEntries, recordDepthSample, recordGpsEvent, recordWriteFailure, refPointVisualizer, refPointsReducer, replayRecording, requestAllPermissions, requestCameraPermission, requestOrientationPermission as requestDeviceOrientationPermission, requestGeolocationPermission, requestOrientationPermission$1 as requestOrientationPermission, requestWebXRWithDepthPermission, resetCoordinatorState, resetFileSystemState, resetForNewSession, resetOpfsStorage, resetRecordingOptions, resetRefPointsState, resetSessionHandles, resetStorageState, saveRecordingOptions, saveRefPointObservation, selectCachedKnownRefPoints, setCurrentScenarioName, setDepthCaptureCallback, setFileSystemState, setFrameCallback, setGlobalLogLevel, setImageCaptureCallback, setImportedRefPoints, setTrackingCallbacks, setTrackingLostCallback, setZeroPos, startDepthCapture, startGpsWatch, startImageCapture, startOrientationWatch, startSession, startSession$1 as startStorageSession, stopDepthCapture, stopGpsWatch, stopImageCapture, stopOrientationWatch, subscribeToLogs, syncToExternalZip, tileXYToLatLon, toggleCameraMode, updateDeviceOrientation, updateOrbitTarget, validateDepthOptions, validateImageOptions, validateRecordingOptions, verifyWriteAccess, wireStoreSubscribers, writeAction, writeFrame };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { LogLevel, clearLogBuffer, createLogger, getGlobalLogLevel, getLogBuffer, setGlobalLogLevel, subscribeToLogs } from "./utils/logger.js";
|
|
2
|
+
import { disposeMeshArray, disposeObject3D } from "./visualization/three-dispose.js";
|
|
3
|
+
import { CameraBlitCapture, DEFAULT_BLIT_CONFIG, computeCaptureSize } from "./ar/camera-blit-capture.js";
|
|
4
|
+
import { applyChromiumProjectionLayerWorkaround } from "./ar/chromium-camera-access-workaround.js";
|
|
5
|
+
import { createFailureTracker } from "./utils/failure-tracker.js";
|
|
6
|
+
import { CAPTURE_FAILURE_WARNING, DEFAULT_CAPTURE_TRACKER_CONFIG, createCaptureFailureTracker } from "./ar/capture-failure-tracker.js";
|
|
7
|
+
import { endSession, recordDepthSample, recordWriteFailure, setCurrentScenarioName, startSession } from "./state/recorder-slice.js";
|
|
8
|
+
import { H3_RESOLUTION, approxDistanceMetres, findNearbyRefPoint, gpsToH3, h3RefsMatch, isH3Index } from "./ref-points/h3-ref-point.js";
|
|
9
|
+
import { clearSessionRefPointUsage, incrementRefPointUsage, refPointsReducer, resetRefPointsState, selectCachedKnownRefPoints, setImportedRefPoints } from "./state/ref-points-slice.js";
|
|
10
|
+
import { navigateTo } from "./state/routing-slice.js";
|
|
11
|
+
import { checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkWebXRSupport, requestAllPermissions, requestCameraPermission, requestGeolocationPermission, requestOrientationPermission as requestOrientationPermission$1, requestWebXRWithDepthPermission, resetFileSystemState, setFileSystemState } from "./sensors/permission-checker.js";
|
|
12
|
+
import { formatActionFilename, formatFrameFilename, formatTimestamp } from "./storage/file-system-utils.js";
|
|
13
|
+
import { checkStorageQuota, createSession, getScenarioHandle, getScenariosRootHandle, getSessionHandle, initOpfsStorage, listSessions, resetOpfsStorage, resetSessionHandles } from "./storage/opfs-storage.js";
|
|
14
|
+
import { initStorage, resetForNewSession, resetStorageState, startSession as startSession$1, verifyWriteAccess, writeAction, writeFrame } from "./storage/file-system.js";
|
|
15
|
+
import { OpfsStorageBackend } from "./storage/opfs-storage-backend.js";
|
|
16
|
+
import { COMMUNITY_LICENSE_KEY } from "./licensing/community-license-key.js";
|
|
17
|
+
import { add2dImage, calcRelativeCoordsInMeters, createRecorderStore, markReferencePoint, recordGpsEvent, setZeroPos } from "./state/store.js";
|
|
18
|
+
import { buildRawGpsPoint, buildRecordGpsEventPayload, createGpsPositionHandler, eulerToQuaternion, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, resetCoordinatorState, updateDeviceOrientation } from "./state/recording-coordinator.js";
|
|
19
|
+
import { DepthSampler } from "./ar/depth-sampler.js";
|
|
20
|
+
import { DEFAULT_CAPTURE_CONFIG, ImageCaptureManager, MIN_VALID_IMAGE_BYTES } from "./ar/image-capture.js";
|
|
21
|
+
import { TrackingState, TrackingStateManager } from "./ar/tracking-state.js";
|
|
22
|
+
import { acquireCameraTexture } from "./ar/xr-camera-texture.js";
|
|
23
|
+
import { DEFAULT_RECORDING_OPTIONS, DEPTH_CONSTRAINTS, IMAGE_CONSTRAINTS, STORAGE_KEY, cloneRecordingOptions, loadRecordingOptions, resetRecordingOptions, saveRecordingOptions, validateDepthOptions, validateImageOptions, validateRecordingOptions } from "./state/recording-options.js";
|
|
24
|
+
import { SCENE_NODE } from "./ar/scene-node-names.js";
|
|
25
|
+
import { createCss3dRendererManager } from "./visualization/css3d-renderer-manager.js";
|
|
26
|
+
import { endARSession, getDepthSampleCount, getImageCaptureFrameCount, getLiveCss3dManager, initAR, setDepthCaptureCallback, setFrameCallback, setImageCaptureCallback, setTrackingCallbacks, setTrackingLostCallback, startDepthCapture, startImageCapture, stopDepthCapture, stopImageCapture } from "./ar/webxr-session.js";
|
|
27
|
+
import { DEFAULT_LERP_RATE, clampedAlpha } from "./visualization/lerp-utils.js";
|
|
28
|
+
import { createCameraFollower } from "./visualization/camera-follower.js";
|
|
29
|
+
import { createAlignmentLerper } from "./visualization/alignment-lerper.js";
|
|
30
|
+
import { VIS_COLORS } from "./visualization/vis-colors.js";
|
|
31
|
+
import { COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, createGpsCompassCubes } from "./visualization/gps-compass-cubes.js";
|
|
32
|
+
import { disposeReplayScene, getAlignmentLerper, getCameraFollower, getCameraMode, getReplayState, initReplayScene, toggleCameraMode, updateOrbitTarget } from "./ar/replay-scene.js";
|
|
33
|
+
import { XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, getXrErrorMessage } from "./ar/xr-error-handler.js";
|
|
34
|
+
import "./ar/index.js";
|
|
35
|
+
import { requestOrientationPermission, startGpsWatch, startOrientationWatch, stopGpsWatch, stopOrientationWatch } from "./sensors/gps.js";
|
|
36
|
+
import { GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, createGpsErrorHandler, getGpsErrorMessage } from "./sensors/gps-error-handler.js";
|
|
37
|
+
import "./sensors/index.js";
|
|
38
|
+
import "./ref-points/index.js";
|
|
39
|
+
import { computeFusedPath, fusedGpsFromOdom } from "./utils/fused-path.js";
|
|
40
|
+
import { mapWithConcurrencyLimit } from "./utils/concurrency.js";
|
|
41
|
+
import { formatFileSize } from "./utils/format-file-size.js";
|
|
42
|
+
import { listFormatter } from "./utils/list-formatter.js";
|
|
43
|
+
import "./utils/index.js";
|
|
44
|
+
import "./types/index.js";
|
|
45
|
+
import { MAX_ACTION_FILE_SIZE, loadActionsFromZip, loadGpsPathFromBlob, loadSessionMetadataFromBlob, readZipEntries } from "./storage/zip-reader.js";
|
|
46
|
+
import { NullStorageBackend } from "./storage/null-storage-backend.js";
|
|
47
|
+
import { replayRecording } from "./state/recording-replayer.js";
|
|
48
|
+
import { DEFAULT_MAX_DELAY_MS, ReplayEngine, computeInterActionDelay, extractActionTimestamp } from "./state/replay-engine.js";
|
|
49
|
+
import { wireStoreSubscribers } from "./state/store-subscribers.js";
|
|
50
|
+
import "./state/index.js";
|
|
51
|
+
import { importRefPointsFromFolder } from "./storage/ref-point-importer.js";
|
|
52
|
+
import { averageGpsPerRefPoint, flattenRefPointsToMarks, listRefPointIds, loadAllRefPoints, loadRefPoint, saveRefPointObservation } from "./storage/ref-point-loader.js";
|
|
53
|
+
import { downloadZip, exportAndDownloadSession, exportSessionAsZip, syncToExternalZip } from "./storage/zip-export.js";
|
|
54
|
+
import "./storage/index.js";
|
|
55
|
+
import { GpsEventVisualizer, gpsEventVisualizer } from "./visualization/gps-event-markers.js";
|
|
56
|
+
import { DEFAULT_LEAFLET_MAP_SIZE_PX, DEFAULT_WORLD_SIZE, DEFAULT_Z_OFFSET, LeafletMapOverlay } from "./visualization/leaflet-map-overlay.js";
|
|
57
|
+
import { DEFAULT_HEIGHT_OFFSET, DEFAULT_MAP_SIZE, DEFAULT_ZOOM, MapOverlay, latLonToTileXY, tileXYToLatLon } from "./visualization/map-overlay.js";
|
|
58
|
+
import { RefPointVisualizer, refPointVisualizer } from "./visualization/reference-points.js";
|
|
59
|
+
import "./visualization/index.js";
|
|
60
|
+
import "./licensing/index.js";
|
|
61
|
+
export { CAPTURE_FAILURE_WARNING, COMMUNITY_LICENSE_KEY, COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, CameraBlitCapture, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_HEIGHT_OFFSET, DEFAULT_LEAFLET_MAP_SIZE_PX, DEFAULT_LERP_RATE, DEFAULT_MAP_SIZE, DEFAULT_MAX_DELAY_MS, DEFAULT_RECORDING_OPTIONS, DEFAULT_WORLD_SIZE, DEFAULT_ZOOM, DEFAULT_Z_OFFSET, DEPTH_CONSTRAINTS, DepthSampler, GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, GpsEventVisualizer, H3_RESOLUTION, IMAGE_CONSTRAINTS, ImageCaptureManager, LeafletMapOverlay, LogLevel, MAX_ACTION_FILE_SIZE, MIN_VALID_IMAGE_BYTES, MapOverlay, NullStorageBackend, OpfsStorageBackend, RefPointVisualizer, ReplayEngine, SCENE_NODE, STORAGE_KEY, TrackingState, TrackingStateManager, VIS_COLORS, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, acquireCameraTexture, add2dImage, applyChromiumProjectionLayerWorkaround, approxDistanceMetres, averageGpsPerRefPoint, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkStorageQuota, checkWebXRSupport, clampedAlpha, clearLogBuffer, clearSessionRefPointUsage, cloneRecordingOptions, computeCaptureSize, computeFusedPath, computeInterActionDelay, createAlignmentLerper, createCameraFollower, createCaptureFailureTracker, createCss3dRendererManager, createFailureTracker, createGpsCompassCubes, createGpsErrorHandler, createGpsPositionHandler, createLogger, createRecorderStore, createSession, disposeMeshArray, disposeObject3D, disposeReplayScene, downloadZip, endARSession, endSession, eulerToQuaternion, exportAndDownloadSession, exportSessionAsZip, extractActionTimestamp, extractOdomPosition, extractOdomRotation, findNearbyRefPoint, flattenRefPointsToMarks, formatActionFilename, formatFileSize, formatFrameFilename, formatTimestamp, fusedGpsFromOdom, getAlignmentLerper, getCameraFollower, getCameraMode, getDepthSampleCount, getGlobalLogLevel, getGpsErrorMessage, getImageCaptureFrameCount, getLastDeviceOrientation, getLiveCss3dManager, getLogBuffer, getReplayState, getScenarioHandle, getScenariosRootHandle, getSessionHandle, getXrErrorMessage, gpsEventVisualizer, gpsToH3, h3RefsMatch, importRefPointsFromFolder, incrementRefPointUsage, initAR, initOpfsStorage, initReplayScene, initStorage, isH3Index, latLonToTileXY, listFormatter, listRefPointIds, listSessions, loadActionsFromZip, loadAllRefPoints, loadGpsPathFromBlob, loadRecordingOptions, loadRefPoint, loadSessionMetadataFromBlob, mapWithConcurrencyLimit, markReferencePoint, navigateTo, readZipEntries, recordDepthSample, recordGpsEvent, recordWriteFailure, refPointVisualizer, refPointsReducer, replayRecording, requestAllPermissions, requestCameraPermission, requestOrientationPermission as requestDeviceOrientationPermission, requestGeolocationPermission, requestOrientationPermission$1 as requestOrientationPermission, requestWebXRWithDepthPermission, resetCoordinatorState, resetFileSystemState, resetForNewSession, resetOpfsStorage, resetRecordingOptions, resetRefPointsState, resetSessionHandles, resetStorageState, saveRecordingOptions, saveRefPointObservation, selectCachedKnownRefPoints, setCurrentScenarioName, setDepthCaptureCallback, setFileSystemState, setFrameCallback, setGlobalLogLevel, setImageCaptureCallback, setImportedRefPoints, setTrackingCallbacks, setTrackingLostCallback, setZeroPos, startDepthCapture, startGpsWatch, startImageCapture, startOrientationWatch, startSession, startSession$1 as startStorageSession, stopDepthCapture, stopGpsWatch, stopImageCapture, stopOrientationWatch, subscribeToLogs, syncToExternalZip, tileXYToLatLon, toggleCameraMode, updateDeviceOrientation, updateOrbitTarget, validateDepthOptions, validateImageOptions, validateRecordingOptions, verifyWriteAccess, wireStoreSubscribers, writeAction, writeFrame };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { LatLong } from "gps-plus-slam-js";
|
|
3
|
+
import L from "leaflet";
|
|
4
|
+
|
|
5
|
+
//#region ../src/visualization/leaflet-map-overlay.d.ts
|
|
6
|
+
/** Default pixel size of the Leaflet map container */
|
|
7
|
+
declare const DEFAULT_LEAFLET_MAP_SIZE_PX = 600;
|
|
8
|
+
/** Default world-space size in meters (matches old MapOverlay) */
|
|
9
|
+
declare const DEFAULT_WORLD_SIZE = 10;
|
|
10
|
+
/** Default height offset below camera (negative = below) */
|
|
11
|
+
declare const DEFAULT_HEIGHT_OFFSET = -4;
|
|
12
|
+
/** Default forward offset from parent (negative = forward in parent-local Z) */
|
|
13
|
+
declare const DEFAULT_Z_OFFSET = -1;
|
|
14
|
+
/** Default zoom level for the Leaflet map */
|
|
15
|
+
declare const DEFAULT_ZOOM = 17;
|
|
16
|
+
/**
|
|
17
|
+
* Configuration options for the Leaflet map overlay.
|
|
18
|
+
*/
|
|
19
|
+
interface LeafletMapOverlayOptions {
|
|
20
|
+
/** Pixel dimensions of the Leaflet map container (default: 600). */
|
|
21
|
+
readonly mapSizePx?: number;
|
|
22
|
+
/** World-space size in meters (default: 10). */
|
|
23
|
+
readonly worldSize?: number;
|
|
24
|
+
/** Height offset below parent in meters (default: -4). */
|
|
25
|
+
readonly heightOffset?: number;
|
|
26
|
+
/** Initial Leaflet zoom level (default: 17). */
|
|
27
|
+
readonly zoomLevel?: number;
|
|
28
|
+
/** Tile server URL template (default: OSM). */
|
|
29
|
+
readonly tileServerUrl?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Object3D to attach the CSS3DObject to instead of the camera.
|
|
32
|
+
* Use CameraFollower.object3D for GPS-world-aligned map.
|
|
33
|
+
*/
|
|
34
|
+
readonly mapParent?: THREE.Object3D;
|
|
35
|
+
/** Called when a map tile fails to load (e.g., offline, server error). */
|
|
36
|
+
readonly onTileError?: (error: unknown) => void;
|
|
37
|
+
/**
|
|
38
|
+
* DOM element to append the off-screen Leaflet container to.
|
|
39
|
+
* Defaults to `document.body`. In multi-instance or shadow-DOM scenarios
|
|
40
|
+
* pass a scoped element to avoid injecting nodes into `<body>`.
|
|
41
|
+
*/
|
|
42
|
+
readonly offscreenRoot?: HTMLElement;
|
|
43
|
+
}
|
|
44
|
+
declare class LeafletMapOverlay {
|
|
45
|
+
private scene;
|
|
46
|
+
private camera;
|
|
47
|
+
private readonly mapParent;
|
|
48
|
+
private readonly worldSize;
|
|
49
|
+
private readonly heightOffset;
|
|
50
|
+
private readonly mapSizePx;
|
|
51
|
+
private readonly tileServerUrl;
|
|
52
|
+
private readonly onTileError?;
|
|
53
|
+
private readonly offscreenRoot;
|
|
54
|
+
private zoomLevel;
|
|
55
|
+
private gpsPosition;
|
|
56
|
+
private visible;
|
|
57
|
+
private mapContainer;
|
|
58
|
+
private leafletMap;
|
|
59
|
+
private tileLayer;
|
|
60
|
+
private cssObject;
|
|
61
|
+
private rawGpsPoints;
|
|
62
|
+
private fusedPoints;
|
|
63
|
+
private snapshotPoints;
|
|
64
|
+
private refPoints;
|
|
65
|
+
private userMarker;
|
|
66
|
+
private rawGpsPolyline;
|
|
67
|
+
private fusedPolyline;
|
|
68
|
+
private snapshotPolyline;
|
|
69
|
+
constructor(scene: THREE.Scene, camera: THREE.Camera, options?: LeafletMapOverlayOptions);
|
|
70
|
+
setGpsPosition(lat: number, lon: number): void;
|
|
71
|
+
getGpsPosition(): LatLong | null;
|
|
72
|
+
show(): void;
|
|
73
|
+
hide(): void;
|
|
74
|
+
toggle(): void;
|
|
75
|
+
isVisible(): boolean;
|
|
76
|
+
addRawGpsPoint(lat: number, lon: number): void;
|
|
77
|
+
addFusedPoint(lat: number, lon: number): void;
|
|
78
|
+
addAlignmentSnapshot(lat: number, lon: number): void;
|
|
79
|
+
addRefPoint(lat: number, lon: number, name: string): void;
|
|
80
|
+
addPriorRefPoint(lat: number, lon: number, name: string): void;
|
|
81
|
+
addPriorRefPoints(refPoints: Array<{
|
|
82
|
+
lat: number;
|
|
83
|
+
lon: number;
|
|
84
|
+
name: string;
|
|
85
|
+
}>): void;
|
|
86
|
+
clearPriorRefPoints(): void;
|
|
87
|
+
setZoomLevel(zoom: number): void;
|
|
88
|
+
getZoomLevel(): number;
|
|
89
|
+
/** Increment zoom level by 1 (clamped at MAX_ZOOM). */
|
|
90
|
+
zoomIn(): void;
|
|
91
|
+
/** Decrement zoom level by 1 (clamped at MIN_ZOOM). */
|
|
92
|
+
zoomOut(): void;
|
|
93
|
+
getWorldSize(): number;
|
|
94
|
+
getHeightOffset(): number;
|
|
95
|
+
getMapSizePx(): number;
|
|
96
|
+
/** Expose the Leaflet map instance for testing and advanced usage. */
|
|
97
|
+
getLeafletMap(): L.Map | null;
|
|
98
|
+
/**
|
|
99
|
+
* No-op — kept for backward compatibility with the frame-loop call
|
|
100
|
+
* in main.ts. The CSS3DObject is a child of the parent, so Three.js
|
|
101
|
+
* scene graph propagation handles positioning automatically.
|
|
102
|
+
*/
|
|
103
|
+
updatePosition(): void;
|
|
104
|
+
dispose(): void;
|
|
105
|
+
private createLeafletMap;
|
|
106
|
+
private destroyLeafletMap;
|
|
107
|
+
private createCssObject;
|
|
108
|
+
private removeCssObject;
|
|
109
|
+
private applyBufferedOverlays;
|
|
110
|
+
private updateUserMarker;
|
|
111
|
+
private createRefPointMarker;
|
|
112
|
+
}
|
|
113
|
+
//#endregion
|
|
114
|
+
export { DEFAULT_Z_OFFSET as a, DEFAULT_ZOOM as i, DEFAULT_LEAFLET_MAP_SIZE_PX as n, LeafletMapOverlay as o, DEFAULT_WORLD_SIZE as r, LeafletMapOverlayOptions as s, DEFAULT_HEIGHT_OFFSET as t };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region ../src/visualization/lerp-utils.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared lerp utilities for visualization modules.
|
|
4
|
+
*
|
|
5
|
+
* Both alignment-lerper and camera-follower need the same smoothing
|
|
6
|
+
* rate constant and clamped-alpha formula. Centralised here (R3) to
|
|
7
|
+
* keep the two modules in sync.
|
|
8
|
+
*/
|
|
9
|
+
/** Default speed multiplier — ~90 % convergence in ~0.3 s at 60 fps. */
|
|
10
|
+
declare const DEFAULT_LERP_RATE = 8;
|
|
11
|
+
/**
|
|
12
|
+
* Compute a frame-rate-independent lerp/slerp factor clamped to [0, 1].
|
|
13
|
+
*
|
|
14
|
+
* @param lerpRate Speed multiplier (higher = faster convergence).
|
|
15
|
+
* @param dt Delta time in seconds since last frame.
|
|
16
|
+
* @returns The interpolation alpha, guaranteed ≤ 1.0.
|
|
17
|
+
*/
|
|
18
|
+
declare function clampedAlpha(lerpRate: number, dt: number): number;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { clampedAlpha as n, DEFAULT_LERP_RATE as t };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region ../src/licensing/community-license-key.ts
|
|
2
|
+
/**
|
|
3
|
+
* Community license key for the gps-plus-slam-js core library.
|
|
4
|
+
*
|
|
5
|
+
* Generated by the core library maintainers and bundled with the open-source
|
|
6
|
+
* `gps-plus-slam-app-framework` package so that every example app (and any
|
|
7
|
+
* downstream app built on the framework) automatically uses a valid license
|
|
8
|
+
* without per-developer registration.
|
|
9
|
+
*
|
|
10
|
+
* The key has a rolling expiration of 12 months. Each release of the
|
|
11
|
+
* open-source packages renews it. Active users who regularly update their
|
|
12
|
+
* dependencies will never be affected by the expiration.
|
|
13
|
+
*
|
|
14
|
+
* For licenses with extended validity beyond the community key's scope,
|
|
15
|
+
* contact support@csutil.com.
|
|
16
|
+
*
|
|
17
|
+
* @see GpsPlusSlamJs/EULA.md §3 — License Key
|
|
18
|
+
*/
|
|
19
|
+
const COMMUNITY_LICENSE_KEY = "eyJ0eXBlIjoiY29tbXVuaXR5IiwiZXhwIjoxODA4NzcyNDI3fQ.YYNf0IdqniZdMzRXCuvewxsQQ01XNywrKsfL5IpiJotfFJfqtrGg4u9z0QFhXeszPtUhnvgC8_oOnbOkbXPuAw";
|
|
20
|
+
//#endregion
|
|
21
|
+
export { COMMUNITY_LICENSE_KEY };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region ../src/utils/list-formatter.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared list formatter for displaying comma-separated lists with "and".
|
|
4
|
+
*
|
|
5
|
+
* Uses English locale to match the app's UI language. If i18n support is added
|
|
6
|
+
* in the future, this should be updated to use the user's preferred locale.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* listFormatter.format(['Camera', 'Location']) // "Camera and Location"
|
|
10
|
+
* listFormatter.format(['A', 'B', 'C']) // "A, B, and C"
|
|
11
|
+
*/
|
|
12
|
+
declare const listFormatter: Intl.ListFormat;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { listFormatter as t };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
//#region ../src/utils/logger.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Configurable Logger Utility
|
|
4
|
+
*
|
|
5
|
+
* Provides a simple logging API with configurable log levels.
|
|
6
|
+
* This allows disabling verbose logging in production while keeping
|
|
7
|
+
* it available for development and debugging.
|
|
8
|
+
*
|
|
9
|
+
* Also maintains an in-memory ring buffer of recent log entries
|
|
10
|
+
* for display in the expandable log panel UI.
|
|
11
|
+
*
|
|
12
|
+
* Sentry Integration:
|
|
13
|
+
* - All log levels add Sentry breadcrumbs for debugging context
|
|
14
|
+
* - log.error() with Error objects automatically reports to Sentry
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Log levels in order of verbosity (lower = more verbose)
|
|
18
|
+
*/
|
|
19
|
+
declare enum LogLevel {
|
|
20
|
+
DEBUG = 0,
|
|
21
|
+
INFO = 1,
|
|
22
|
+
WARN = 2,
|
|
23
|
+
ERROR = 3,
|
|
24
|
+
SILENT = 4
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Structure for a single log entry in the buffer
|
|
28
|
+
*/
|
|
29
|
+
interface LogEntry {
|
|
30
|
+
readonly timestamp: number;
|
|
31
|
+
readonly level: LogLevel;
|
|
32
|
+
readonly tag: string;
|
|
33
|
+
readonly message: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Subscribers that get notified when new log entries are added
|
|
37
|
+
*/
|
|
38
|
+
type LogSubscriber = (entry: LogEntry) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Get a copy of the current log buffer
|
|
41
|
+
* @returns Array of log entries (copy to prevent external mutation)
|
|
42
|
+
*/
|
|
43
|
+
declare function getLogBuffer(): LogEntry[];
|
|
44
|
+
/**
|
|
45
|
+
* Clear all entries from the log buffer
|
|
46
|
+
*/
|
|
47
|
+
declare function clearLogBuffer(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Subscribe to new log entries
|
|
50
|
+
* @param callback - Function called when a new log entry is added
|
|
51
|
+
* @returns Unsubscribe function
|
|
52
|
+
*/
|
|
53
|
+
declare function subscribeToLogs(callback: LogSubscriber): () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Set the global log level
|
|
56
|
+
* @param level - The minimum level to log
|
|
57
|
+
*/
|
|
58
|
+
declare function setGlobalLogLevel(level: LogLevel): void;
|
|
59
|
+
/**
|
|
60
|
+
* Get the current global log level
|
|
61
|
+
*/
|
|
62
|
+
declare function getGlobalLogLevel(): LogLevel;
|
|
63
|
+
/**
|
|
64
|
+
* Logger interface for type safety
|
|
65
|
+
*/
|
|
66
|
+
interface Logger {
|
|
67
|
+
debug: (...args: unknown[]) => void;
|
|
68
|
+
info: (...args: unknown[]) => void;
|
|
69
|
+
warn: (...args: unknown[]) => void;
|
|
70
|
+
error: (...args: unknown[]) => void;
|
|
71
|
+
}
|
|
72
|
+
declare function createLogger(tag: string): Logger;
|
|
73
|
+
//#endregion
|
|
74
|
+
export { createLogger as a, setGlobalLogLevel as c, clearLogBuffer as i, subscribeToLogs as l, LogLevel as n, getGlobalLogLevel as o, Logger as r, getLogBuffer as s, LogEntry as t };
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { LatLong } from "gps-plus-slam-js";
|
|
3
|
+
|
|
4
|
+
//#region ../src/visualization/map-overlay.d.ts
|
|
5
|
+
/** Default zoom level for OSM tiles (higher = more detail, smaller area) */
|
|
6
|
+
declare const DEFAULT_ZOOM = 17;
|
|
7
|
+
/** Default map size in meters */
|
|
8
|
+
declare const DEFAULT_MAP_SIZE = 10;
|
|
9
|
+
/** Default height offset below camera (negative = below) */
|
|
10
|
+
declare const DEFAULT_HEIGHT_OFFSET = -4;
|
|
11
|
+
/**
|
|
12
|
+
* Interface for loading textures (allows mocking in tests).
|
|
13
|
+
*/
|
|
14
|
+
interface TextureLoaderInterface {
|
|
15
|
+
load(url: string, onLoad?: (texture: THREE.Texture) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): THREE.Texture;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Configuration options for the map overlay.
|
|
19
|
+
*/
|
|
20
|
+
interface MapOverlayOptions {
|
|
21
|
+
/** Size of the map in meters (default: 10) */
|
|
22
|
+
readonly mapSize?: number;
|
|
23
|
+
/** Height offset below camera in meters (default: -4) */
|
|
24
|
+
readonly heightOffset?: number;
|
|
25
|
+
/** OSM zoom level 0-19 (default: 17) */
|
|
26
|
+
readonly zoomLevel?: number;
|
|
27
|
+
/** Base URL for tile server (default: OSM) */
|
|
28
|
+
readonly tileServerUrl?: string;
|
|
29
|
+
/** Custom texture loader (for testing) */
|
|
30
|
+
readonly textureLoader?: TextureLoaderInterface;
|
|
31
|
+
/** Called when a map tile fails to load (e.g., offline, server error) */
|
|
32
|
+
readonly onTileError?: (error: unknown) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Object3D to attach the map mesh to instead of the camera.
|
|
35
|
+
* When provided, the mesh is added to mapParent (e.g., a CameraFollower)
|
|
36
|
+
* so the map stays GPS-world-aligned and does not rotate with the camera.
|
|
37
|
+
* Defaults to camera when not provided (backward-compatible).
|
|
38
|
+
*/
|
|
39
|
+
readonly mapParent?: THREE.Object3D;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Convert latitude/longitude to tile X/Y coordinates.
|
|
43
|
+
* Uses Web Mercator projection (EPSG:3857).
|
|
44
|
+
*
|
|
45
|
+
* @param lat - Latitude in degrees
|
|
46
|
+
* @param lon - Longitude in degrees
|
|
47
|
+
* @param zoom - Zoom level (0-19)
|
|
48
|
+
* @returns [tileX, tileY] as integers
|
|
49
|
+
*/
|
|
50
|
+
declare function latLonToTileXY(lat: number, lon: number, zoom: number): [number, number];
|
|
51
|
+
/**
|
|
52
|
+
* Convert tile X/Y coordinates back to latitude/longitude.
|
|
53
|
+
* Returns the top-left corner of the tile.
|
|
54
|
+
*
|
|
55
|
+
* @param x - Tile X coordinate
|
|
56
|
+
* @param y - Tile Y coordinate
|
|
57
|
+
* @param zoom - Zoom level
|
|
58
|
+
* @returns [lat, lon] in degrees
|
|
59
|
+
*/
|
|
60
|
+
declare function tileXYToLatLon(x: number, y: number, zoom: number): [number, number];
|
|
61
|
+
/**
|
|
62
|
+
* Interactive 3D map overlay that displays OSM tiles in the AR scene.
|
|
63
|
+
* The map floats below the user and follows their horizontal movement.
|
|
64
|
+
*/
|
|
65
|
+
declare class MapOverlay {
|
|
66
|
+
private scene;
|
|
67
|
+
private camera;
|
|
68
|
+
private options;
|
|
69
|
+
private onTileError?;
|
|
70
|
+
private mapParent;
|
|
71
|
+
private mesh;
|
|
72
|
+
private material;
|
|
73
|
+
private geometry;
|
|
74
|
+
private textureLoader;
|
|
75
|
+
private gpsPosition;
|
|
76
|
+
private currentTile;
|
|
77
|
+
private visible;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new map overlay.
|
|
80
|
+
*
|
|
81
|
+
* @param scene - The Three.js scene to add the map to
|
|
82
|
+
* @param camera - The camera to follow (for positioning)
|
|
83
|
+
* @param options - Configuration options
|
|
84
|
+
*/
|
|
85
|
+
constructor(scene: THREE.Scene, camera: THREE.Camera, options?: MapOverlayOptions);
|
|
86
|
+
/**
|
|
87
|
+
* Set the current GPS position for tile loading.
|
|
88
|
+
*
|
|
89
|
+
* @param lat - Latitude in degrees
|
|
90
|
+
* @param lon - Longitude in degrees
|
|
91
|
+
*/
|
|
92
|
+
setGpsPosition(lat: number, lon: number): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get the current GPS position.
|
|
95
|
+
*/
|
|
96
|
+
getGpsPosition(): LatLong | null;
|
|
97
|
+
/**
|
|
98
|
+
* Show the map overlay.
|
|
99
|
+
* Requires GPS position to be set first.
|
|
100
|
+
*/
|
|
101
|
+
show(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Hide the map overlay.
|
|
104
|
+
*/
|
|
105
|
+
hide(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Toggle map visibility.
|
|
108
|
+
*/
|
|
109
|
+
toggle(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Check if the map is currently visible.
|
|
112
|
+
*/
|
|
113
|
+
isVisible(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Get the map size in meters.
|
|
116
|
+
*/
|
|
117
|
+
getMapSize(): number;
|
|
118
|
+
/**
|
|
119
|
+
* Get the height offset below camera.
|
|
120
|
+
*/
|
|
121
|
+
getHeightOffset(): number;
|
|
122
|
+
/**
|
|
123
|
+
* Get the mesh (for testing).
|
|
124
|
+
*/
|
|
125
|
+
getMesh(): THREE.Mesh | null;
|
|
126
|
+
/**
|
|
127
|
+
* Update the map position to follow the camera.
|
|
128
|
+
*
|
|
129
|
+
* Since the mesh is now a child of the camera, Three.js handles
|
|
130
|
+
* world-space transforms automatically. This method is kept for
|
|
131
|
+
* backward compatibility but is a no-op (position is set once in
|
|
132
|
+
* createMesh and doesn't need per-frame updates).
|
|
133
|
+
*/
|
|
134
|
+
updatePosition(): void;
|
|
135
|
+
/**
|
|
136
|
+
* Clean up resources.
|
|
137
|
+
*/
|
|
138
|
+
dispose(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Create the map mesh (plane facing up).
|
|
141
|
+
*/
|
|
142
|
+
private createMesh;
|
|
143
|
+
/**
|
|
144
|
+
* Remove the mesh from the camera.
|
|
145
|
+
*/
|
|
146
|
+
private removeMesh;
|
|
147
|
+
/**
|
|
148
|
+
* Update the tile texture based on current GPS position.
|
|
149
|
+
*/
|
|
150
|
+
private updateTile;
|
|
151
|
+
}
|
|
152
|
+
//#endregion
|
|
153
|
+
export { MapOverlayOptions as a, tileXYToLatLon as c, MapOverlay as i, DEFAULT_MAP_SIZE as n, TextureLoaderInterface as o, DEFAULT_ZOOM as r, latLonToTileXY as s, DEFAULT_HEIGHT_OFFSET as t };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { n as SessionMetadata } from "./opfs-storage-ChOzF_Wp.js";
|
|
2
|
+
import { t as StorageBackend } from "./storage-backend-BcEItnFr.js";
|
|
3
|
+
|
|
4
|
+
//#region ../src/storage/null-storage-backend.d.ts
|
|
5
|
+
declare class NullStorageBackend implements StorageBackend {
|
|
6
|
+
writeAction(_action: unknown, _index: number): Promise<void>;
|
|
7
|
+
writeFrame(_blob: Blob, _index: number): Promise<void>;
|
|
8
|
+
writeSessionMetadata(_metadata: SessionMetadata): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { NullStorageBackend as t };
|