# CameraController
The default camera controller extension that comes with the viewer package. Includes toggleable perspective and orthographic camera projections.
# Accessors
aspect | controls | enabled | fieldOfView |
---|---|---|---|
renderingCamera |
# Methods
disableRotations | enableRotations | on | removeListener |
---|---|---|---|
setCameraPlanes | setCameraView | setOrthoCameraOn | setPerspectiveCameraOn |
toggleCameras |
# Typedefs
CameraControllerEvent | CameraProjection | CanonicalView | InlineView |
---|---|---|---|
PolarView |
# Accessors
# aspect
get aspect(): number
Gets the current display aspect ratio
Returns: number
# controls
get controls()
Gets the current underlying camera controller implementation. Typically an external library.
WARNING
Currently it exists for backwards compatibility. Will deprecate in future iterations!
Returns: any
# enabled
get enabled(): boolean
set enabled(val: boolean)
2
Gets or sets whether this extension is enabled.
TIP
Extensions typically need to support being turned on/off with no impact on potentially other active extensions.
Returns: boolean
# fieldOfView
get fieldOfView(): number
set fieldOfView(value: number)
2
Gets or sets the perspective camera's field of view.
Returns: number
# renderingCamera
get renderingCamera(): PerspectiveCamera | OrthographicCamera
set renderingCamera(value: PerspectiveCamera | OrthographicCamera)
2
Gets or sets the current rendering camera.
Returns: number
# Methods
# disableRotations
disableRotations(): void
Disables all camera controls rotation capabilities.
Returns: void
# enableRotations
enableRotations(): void
Enables all camera controls rotation capabilities.
Returns: void
# on
on(e: CameraControllerEvent, handler: (data: boolean) => void)
Function for subscribing to camera events.
Parameters
- e: CameraControllerEvent
- handler: The handler for the events
Returns: void
# removeListener
removeListener(e: CameraControllerEvent, handler: (data: unknown) => void)
Function for un-subscribing from camera events.
Parameters
- e: CameraControllerEvent
- handler: The handler for the events to unsubscribe
Returns: void
# setCameraPlanes
setCameraPlanes(targetVolume: Box3, offsetScale: number = 1)
Function that adapts the camera's near and far clipping planes according to the current scene's volume. Parameters
- targetVolume: Box3 (opens new window)
- optional offsetScale: Works as a linear tolerance to the volume parameter
Returns: void
# setCameraPlanes
setCameraView(objectIds: string[], transition: boolean, fit?: number): void
Focuses the camera based on the volume defined by the received object ids list.
Parameters
- objectIds: The object ids that make up the volume
- transition: Whether or not to make the transition animated
- optional fit: Linear tolerance
setCameraView(
view: CanonicalView | SpeckleView | InlineView | PolarView,
transition: boolean,
fit?: number
): void
2
3
4
5
Focuses the camera based on explicit view models provided.
Parameters
- view: Explicit view of different possible type: CanonicalView, SpeckleView, InlineView
- transition: Whether or not to make the transition animated
- optional fit: Linear tolerance
setCameraView(bounds: Box3, transition: boolean, fit?: number): void
Focuses the camera based on explicit volume provided as Box3 (opens new window).
Parameters
- bounds: Box3 (opens new window)
- transition: Whether or not to make the transition animated
- optional fit: Linear tolerance
Returns: void
# setOrthoCameraOn
setOrthoCameraOn(): void
Enables the orthographic camera.
Returns: void
# setPerspectiveCameraOn
setPerspectiveCameraOn(): void
Enables the perspective camera.
Returns: void
# toggleCameras
toggleCameras(): void
Switches between perspective and orthographic cameras.
Returns: void
# Typedefs
# CameraControllerEvent
enum CameraControllerEvent {
Stationary,
Dynamic,
FrameUpdate,
ProjectionChanged,
}
2
3
4
5
6
Events the camera controller puts out.
Returns: void
# CameraProjection
enum CameraProjection {
PERSPECTIVE,
ORTHOGRAPHIC,
}
2
3
4
Camera projection types.
Returns: void
# CanonicalView
type CanonicalView =
| "front"
| "back"
| "up"
| "top"
| "down"
| "bottom"
| "right"
| "left"
| "3d"
| "3D";
2
3
4
5
6
7
8
9
10
11
Supported cannonical views.
Returns: void
# InlineView
type InlineView = {
position: Vector3;
target: Vector3;
};
2
3
4
Inline, on-demand camera view.
- position: The position of the camera
- target: The point in space where the camera looks at Returns: void
# PolarView
type PolarView = {
azimuth: number;
polar: number;
radius?: number;
origin?: Vector3;
};
2
3
4
5
6
Camera view defined in polar coordinates.