Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...
    • Write the world-space rotation axis for axis into out.

      A camera-frame direction is rotated by the live orientation so the result is the screen-relative axis in world space; a world-frame direction is already world-space and is returned as the constant it is. Either way the caller gets what the orbit rotation (a world-frame premultiply) needs.

      Nothing here can destabilize the orbit. Each camera-frame axis is invariant under its own rotation, so re-deriving it every frame is stable rather than drifting: vertical holds the up vector fixed and sweeps the camera around a circle, horizontal holds the right vector fixed and tumbles the camera over the top, and view holds the camera POSITION fixed (the offset lies along the axis) and spins only the up vector — a pure roll. A world axis has no feedback at all: it is a constant, so the camera simply sweeps the cone of whatever latitude it started at, and the subject spins about its own axis instead of precessing. The degenerate world case — an axis parallel to the view direction — is benign rather than singular: the camera offset lies along the axis, so it stays put and the image rolls, just as view does.

      Parameters

      • axis: AutoRotateAxis

        Which axis to revolve around, camera-frame or world.

      • orientation: Quaternion

        The live orbit orientation quaternion.

      • out: Vector3

        Destination vector, mutated and returned (no allocation on the per-frame path).

      Returns Vector3