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.
Write the world-space rotation axis for
axisintoout.A camera-frame direction is rotated by the live
orientationso 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:
verticalholds the up vector fixed and sweeps the camera around a circle,horizontalholds the right vector fixed and tumbles the camera over the top, andviewholds 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 asviewdoes.