Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...
    interface WaypointPorts {
        getDims: () => WaypointDims | null;
        getLivePose: () => CameraSnapshot;
        resolvePose: (
            camera: ZarrCameraConfig,
            live: CameraSnapshot,
        ) => CameraSnapshot;
        snapTo: (pose: CameraSnapshot) => void;
        flyTo: (pose: CameraSnapshot, opts: FlyToOptions) => Promise<FlightResult>;
        autoRotateActive: () => boolean;
        applyRendering: (rendering: Record<string, unknown>) => void;
        emit?: (
            event: "waypoint-departed" | "waypoint-arrived",
            payload: { index: number } | { index: number; completed: boolean },
        ) => void;
    }
    Index
    getDims: () => WaypointDims | null
    getLivePose: () => CameraSnapshot
    resolvePose: (camera: ZarrCameraConfig, live: CameraSnapshot) => CameraSnapshot
    snapTo: (pose: CameraSnapshot) => void

    Instant application of the authored pose (the load-time framing).

    flyTo: (pose: CameraSnapshot, opts: FlyToOptions) => Promise<FlightResult>
    autoRotateActive: () => boolean

    Whether the orbit turntable is currently spinning the camera. While it is, a story step must not swing the camera to the author's azimuth: the flight keeps the live direction (keepOrientation) and only the target and distance travel, so the spin continues uninterrupted around the new point of interest.

    applyRendering: (rendering: Record<string, unknown>) => void

    Snake_case rendering overrides — the authored viewer_config path.

    emit?: (
        event: "waypoint-departed" | "waypoint-arrived",
        payload: { index: number } | { index: number; completed: boolean },
    ) => void

    The two story events (SOUND_SPEC.md §4.3): waypoint-departed fires the moment the matched waypoint changes away from one; waypoint-arrived fires after the new waypoint's flight resolves (or immediately after a snap, or immediately when it has no camera block). A flight the visitor cancels still resolves and still arrives (completed: false); a flight a NEWER waypoint superseded does not arrive at all — the visitor has moved on, and its narration must not overlap the new story's.