ReadonlyglReadonlyorthographicReadonlyperspectiveFrame the camera to a scene-space center + radius via the shared 3/4 pose (stage.ts), sizing the ortho frustum and the zoom-distance clamps from the framed model so a projection toggle keeps the apparent size and the user can't dolly through/away from the model (#150/#267).
Read the current camera as a serializable CameraState (scene coords, #268).
OrbitControls 'change': render, and (when auto) adapt detail.
Switch camera projection (#150, DD-009 D3); the pose is copied so the view never jumps.
Restore a CameraState verbatim (#268) — no re-fit to the current model's bounds.
Toggle interaction-aware quality (DD-020). 'off' restores full detail immediately.
OrbitControls 'end': restore full detail after a debounce.
Snap to a preset orientation (#268): place the camera on the view's direction at the current distance.
Capture the currently displayed view as an image
Blob(DD-030 D1). Renders the current scene + active camera into an off-screen target at the requested size (so it never disturbs the live view nor requirespreserveDrawingBuffer), reads it back, and encodes it. Rejects with anE_CAPTURE_UNSUPPORTEDerror when the renderer cannot render-to-target (a stub GL / no WebGL) or the stage is disposed / context-lost. The caller owns the returnedBlob— the library never downloads.