Developers
The default camera controller extension that comes with the viewer package. Includes toggleable perspective and orthographic camera projections.
get aspect(): number
get controls(): SpeckleControls
get enabled(): boolean set enabled(val: boolean)
get fieldOfView(): number set fieldOfView(value: number)
get options(): CameraControllerOptions set options(value: CameraControllerOptions)
get renderingCamera(): PerspectiveCamera | OrthographicCamera set renderingCamera(value: PerspectiveCamera | OrthographicCamera)
disableRotations(): void
enableRotations(): void
on<T extends CameraEvent>( eventType: T, listener: (arg: CameraEventPayload[T]) => void ): void
removeListener(e: CameraEvent, handler: (data: unknown) => void)
setCameraPlanes(targetVolume: Box3, offsetScale: number = 1)
setCameraView(objectIds: string[], transition: boolean, fit?: number): void
setCameraView( view: CanonicalView | SpeckleView | InlineView | PolarView, transition: boolean, fit?: number ): void
setCameraView(bounds: Box3, transition: boolean, fit?: number): void
setOrthoCameraOn(): void
setPerspectiveCameraOn(): void
toggleCameras(): void
enum CameraEvent { Stationary = 'stationary', Dynamic = 'dynamic', FrameUpdate = 'frame-update', ProjectionChanged = 'projection-changed', }
interface CameraEventPayload { [CameraEvent.Stationary]: void [CameraEvent.Dynamic]: void [CameraEvent.FrameUpdate]x: boolean [CameraEvent.ProjectionChanged]: CameraProjection }
type CameraControllerOptions = SmoothOrbitControlsOptions & { nearPlaneCalculation?: NearPlaneCalculation; };
export const DefaultOrbitControlsOptions: Required<CameraControllerOptions> = { enableOrbit: true, enableZoom: true, enablePan: true, orbitSensitivity: 1, zoomSensitivity: 1, panSensitivity: 1, inputSensitivity: 1, minimumRadius: 0, maximumRadius: Infinity, minimumPolarAngle: 0, maximumPolarAngle: Math.PI, minimumAzimuthalAngle: -Infinity, maximumAzimuthalAngle: Infinity, infiniteZoom: true, zoomToCursor: true, orbitAroundCursor: true, showOrbitPoint: true, damperDecay: 30, nearPlaneCalculation: NearPlaneCalculation.ACCURATE, };
enum CameraProjection { PERSPECTIVE, ORTHOGRAPHIC, }
type CanonicalView = | 'front' | 'back' | 'up' | 'top' | 'down' | 'bottom' | 'right' | 'left' | '3d' | '3D';
type InlineView = { position: Vector3; target: Vector3; };
type PolarView = { azimuth: number; polar: number; radius?: number; origin?: Vector3; };