ar

"/home/yossef/notes/git/projects/inguide/modules/ar.md"

path: inguide/modules/ar.md

- **fileName**: ar
- **Created on**: 2026-06-16 00:48:42

ar

cs# ar

Purpose: AR Navigation module — camera preview, route overlay, coordinate registration, and position tracking.

Files

File Role
ArNavigationScreen.kt Main AR composable. CameraX preview + Canvas overlay for waypoints. Handles camera permissions, GPS connection, position staleness, building proximity. Renders Loading/NoRoute/Tracking/Navigating/Arrived/Error states.
ArNavigationViewModel.kt ViewModel. Manages navigation state machine, GPS via FusedLocationProviderClient, PositionStatus tracking (Idle→Acquiring→Reliable/LowConfidence/OutOfRange/Unavailable), anchor position, staleness watchdog (10s timeout). Methods: setRoute, clearRoute, updatePosition, arrive, setError, setReady, connectGps, disconnectGps, setBuildingLocation, needsReanchor, reanchor.
CoordinateRegistration.kt Haversine-based [lng,lat] → AR world-space offset conversion. Constants: Earth radius 6,371,008.8m, reanchor threshold 2m, floor height 3m.
ArWaypointRenderer.kt Projects up to 4 waypoints into screen-space AR coordinates. Returns RenderedWaypoint(waypoint, arX, arY, arZ, index).
ArNavigationState.kt Sealed class: Loading, NoRoute, Tracking, Navigating(route), Arrived, Error(message).
ArRouteData.kt Data classes: ArRouteData(waypoints, totalDistance, estimatedDuration, startFloorId), ArWaypoint(longitude, latitude, floorId, label?, isTransition, connectionType?).

Position Status States

Dependencies

Related: ../flows/ar-navigation-flow.md, ../flows/route-data-flow.md, ./services.md

continue:[[]]
before:[[]]