Swap perspective → orthographic, matching the visible frustum
at the current target distance. POSE-PRESERVING: the ortho camera
copies the perspective camera's exact position, orientation and up
vector, changing only the projection — so cycling control modes
(V key) with no interaction never shifts or re-frames the view.
Also stashes the perspective FOV (via setLastPerspectiveFov) so the
inverse swapToPerspective can restore it exactly.
No-op when the current camera is already orthographic.
Swap perspective → orthographic, matching the visible frustum at the current target distance. POSE-PRESERVING: the ortho camera copies the perspective camera's exact position, orientation and up vector, changing only the projection — so cycling control modes (V key) with no interaction never shifts or re-frames the view.
Also stashes the perspective FOV (via
setLastPerspectiveFov) so the inverseswapToPerspectivecan restore it exactly.No-op when the current camera is already orthographic.