Optionalduration: numberAnimate camera to position, target, and up vector (for orthogonal preset views)
Optionalduration: numberAnimate the camera to a FitPolicy pose. Used by the Home button so
the transition matches the rest of the navigation tweens.
Optionalduration: numberSet first-person mode
Convenience: pick + apply the adaptive fit policy for the given bounds
in one call. The default behaviour delegates to pickFitPolicy() so
callers don't have to thread the FOV through themselves.
Optionaloptions: { animate?: boolean; duration?: number; viewportShortPx?: number }Fit view to bounding box. Sets camera to southeast isometric view (typical BIM starting view). Y-up coordinate system: Y is vertical
Frame selection - zoom to fit bounds while keeping current view direction This is what "Frame Selection" should do - zoom to fill screen
padding (>= 1) states the margin: the box's projected corners reach
1 / padding of the half-frame on the limiting axis, exactly, in either
projection (#7617). Omitted, the fixed default multiple of the fit distance applies.
Optionalduration: numberOptionalpadding: numberFrame/center view on a point (keeps current distance and direction) Standard CAD "Frame Selection" behavior
Optionalduration: numberThe aspect ratio (width / height) the projection is currently built from.
This is the DRAWING BUFFER's ratio. Since #5383 the buffer is the CSS box scaled by one pixel ratio on both axes, so the two agree up to integer rounding of the buffer (the width used to be floored to a multiple of 64, which made them differ by up to 63 pixels).
The buffer ratio is the right one for BCF (#3612). A viewpoint's snapshot
PNG comes from canvas.toDataURL(), which encodes that same drawing
buffer, so the <AspectRatio> written beside it describes the image
actually in the archive. It is also the ratio the projection matrix used,
so a viewer restoring the camera reproduces the framing.
Always finite and positive -- setAspect rejects anything else --
which is what BCF 3.0's PositiveDouble schema type requires.
Raw pose distance; non-finite source poses remain observable.
Get camera FOV in radians
The robust orbit-pivot anchor bounds last set via setOrbitAnchorBounds (null if never set / cleared). O(1); safe on the orbit hot path. Returns the live reference; callers must not mutate.
Get orthographic view half-height
Get current projection mode
The reverse-Z projection matrix (perspective or orthographic); a copy.
Return the shared RTE frame for the current camera state. GPU consumers must use this instead of deriving a second camera rebase.
The cached scene bounds last set via setSceneBounds (null if never set). O(1) — does not recompute from geometry, so it is cheap enough to read on the orbit hot path (e.g. anchoring the orbit pivot to the scene centre on large models). Returns the live reference; callers must not mutate.
Get camera up vector
Move in first-person mode (Y-up coordinate system)
Orbit camera around the current pivot (Y-up coordinate system). If orbitCenter is set, both position and target rotate around it. Otherwise, position rotates around target (standard orbit).
OptionaladdVelocity: booleanPan camera (Y-up coordinate system)
OptionaladdVelocity: booleanProject a world position to screen coordinates
Position in world space
Canvas width in pixels
Canvas height in pixels
Screen coordinates { x, y } or null if behind camera
Reset camera state (clear orbit center, stop inertia, cancel animations) Called when loading a new model to ensure clean state
Set camera aspect ratio
Set camera field of view in radians
Restrict interactive orbit/pan/zoom (embed controls param, #2934).
Set the outlier-robust orbit-pivot anchor bounds (issue #1394), or null
to clear it (the pivot then falls back to getSceneBounds). The
renderer never touches this, so it survives the per-upload setSceneBounds
syncs that keep sceneBounds pinned to the full model AABB.
Set the orbit center without moving the camera. Future orbit() calls will rotate around this point. Pass null to revert to orbiting around camera.target.
Set orthographic view half-height
Set camera position
Set preset view with explicit bounds (Y-up coordinate system) Clicking the same view again rotates 90 degrees around the view axis
Optionalbounds: { max: Vec3; min: Vec3 }OptionalbuildingRotation: number
Optional building rotation in radians (from IfcSite placement)
Set projection mode (perspective or orthographic) When switching to orthographic, calculates initial orthoSize from current view.
Set scene bounds for tight orthographic near/far plane computation. Call this when geometry is loaded or changed.
Set camera target
Set camera up vector
Apply a FitPolicy snapshot to the camera without animation. Used by
the post-load auto-fit where any in-flight tween would compete with
the streaming-complete frame and produce a visible camera jump.
Reset velocity (stop inertia)
Toggle between perspective and orthographic projection
Unproject screen coordinates to a ray in world space
X position in screen coordinates
Y position in screen coordinates
Canvas width in pixels
Canvas height in pixels
Ray origin and direction in world space
Update camera animation and inertia Returns true if camera is still animating
Zoom camera towards mouse position
Zoom delta (positive = zoom out, negative = zoom in)
OptionaladdVelocity: boolean
Whether to add velocity for inertia
OptionalmouseX: number
Mouse X position in canvas coordinates
OptionalmouseY: number
Mouse Y position in canvas coordinates
OptionalcanvasWidth: number
Canvas width
OptionalcanvasHeight: number
Canvas height
OptionalfastZoom: boolean
Pure dolly (Shift / Cesium): the full step translates the rig
OptionalsurfacePoint: Vec3
World point on the visible surface under the cursor
(#5393). Zooming IN approaches it and stops short of it; it is ignored
for zoom-out, fast zoom and orthographic. The surface step applies no
inertia, so addVelocity has no effect on it.
Optionalduration: number
Animate camera to position and target