Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface CameraPlacement

    Where the camera actually ended up after placeCameraAt.

    interface CameraPlacement {
        x: number;
        y: number;
        z: number;
        target: Vec3Like;
        distance: number;
        viaOrbitControls: boolean;
    }

    Hierarchy (View Summary)

    Index
    x: number
    y: number
    z: number
    target: Vec3Like

    The pivot the camera was aimed at (the controls' target after the call).

    distance: number

    |position − target| measured AFTER the controls re-derived and re-applied their own state — i.e. the distance that survived minDistance/maxDistance clamping, not the one that was requested. Assert on this when a test needs proof that the camera really moved.

    viaOrbitControls: boolean

    True when ORBIT-LIKE controls were active and re-derived their state from the write (reinitialize() + update()), so x/y/z/distance above are the controls' own post-clamp answer.

    False means the active controls are not orbit-like (LuxarFlyControls, which owns no target/distance and treats camera.position as authoritative): the write is CORRECT there and does stick, but nothing re-derived or clamped it, so the reported values are simply what was asked for and are no evidence at all that any controller agreed. Assert this flag whenever the point of the placement is "prove the camera moved".