Skip to content

editor › Globals › CameraMotion

Class: CameraMotion

Hierarchy

  • CameraMotion

Index

Constructors

Properties

Methods

Constructors

constructor

+ new CameraMotion(camera: PerspectiveCamera, sceneBackground: SceneBackground): CameraMotion

Defined in src/renderContext/CameraMotion.ts:64

Parameters:

Name Type
camera PerspectiveCamera
sceneBackground SceneBackground

Returns: CameraMotion

Properties

Private adaptedRotation

• adaptedRotation: Vector3 = null

Defined in src/renderContext/CameraMotion.ts:35


Private animationFinished

• animationFinished: boolean = true

Defined in src/renderContext/CameraMotion.ts:62


Private cameraAboveObjectConstraint

• cameraAboveObjectConstraint: number = 0

Defined in src/renderContext/CameraMotion.ts:41


Private combinedMinimumViewportAABB

• combinedMinimumViewportAABB: AABB | null

Defined in src/renderContext/CameraMotion.ts:32


Private debouncedSceneCameraAnimation

• debouncedSceneCameraAnimation: function = null

Defined in src/renderContext/CameraMotion.ts:54

Type declaration:

▸ (cameraPosition: Vector3, cameraRotation: Quaternion, movementPhysicsAdjustmentImmediate: boolean): Promise‹any›

Parameters:

Name Type
cameraPosition Vector3
cameraRotation Quaternion
movementPhysicsAdjustmentImmediate boolean

Private hysteresisDuration

• hysteresisDuration: number = 0

Defined in src/renderContext/CameraMotion.ts:47


Private hysteresisMethod

• hysteresisMethod: HysteresisMethod

Defined in src/renderContext/CameraMotion.ts:48


Private marginBottom

• marginBottom: number = 0

Defined in src/renderContext/CameraMotion.ts:38


Private marginLeft

• marginLeft: number = 0

Defined in src/renderContext/CameraMotion.ts:39


Private marginRight

• marginRight: number = 0

Defined in src/renderContext/CameraMotion.ts:40


Private marginTop

• marginTop: number = 0

Defined in src/renderContext/CameraMotion.ts:37


Private minimumViewportAABBs

• minimumViewportAABBs: AABB[] = []

Defined in src/renderContext/CameraMotion.ts:30


Private movementPhysicsAdjustmentImmediate

• movementPhysicsAdjustmentImmediate: boolean = true

Defined in src/renderContext/CameraMotion.ts:61


Private movingCameraToDefaultPosition

• movingCameraToDefaultPosition: boolean = false

Defined in src/renderContext/CameraMotion.ts:64


Private previousCameraPosition

• previousCameraPosition: Vector3 | null

Defined in src/renderContext/CameraMotion.ts:33


Private sceneBackground

• sceneBackground: SceneBackground

Defined in src/renderContext/CameraMotion.ts:27


Private targetPosition

• targetPosition: Vector3

Defined in src/renderContext/CameraMotion.ts:49


Private toleranceBack

• toleranceBack: number = 0

Defined in src/renderContext/CameraMotion.ts:46


Private toleranceDown

• toleranceDown: number = 0

Defined in src/renderContext/CameraMotion.ts:44


Private toleranceFront

• toleranceFront: number = 0

Defined in src/renderContext/CameraMotion.ts:45


Private toleranceUp

• toleranceUp: number = 0

Defined in src/renderContext/CameraMotion.ts:43


Private toolInteraction

• toolInteraction: boolean = false

Defined in src/renderContext/CameraMotion.ts:52

Tools can prevent camera movement by setting this to true


Private vCamera

• vCamera: PerspectiveCamera

Defined in src/renderContext/CameraMotion.ts:26


Private zoomInAllowed

• zoomInAllowed: boolean = true

Defined in src/renderContext/CameraMotion.ts:60

Methods

Private _calculateCameraCenter

▸ _calculateCameraCenter(assemblies: Assembly[]): Vector3

Defined in src/renderContext/CameraMotion.ts:495

Parameters:

Name Type
assemblies Assembly[]

Returns: Vector3


Private _getWorldAABBOfAssemblies

▸ _getWorldAABBOfAssemblies(assemblies: Assembly[]): AABB

Defined in src/renderContext/CameraMotion.ts:524

Parameters:

Name Type
assemblies Assembly[]

Returns: AABB


Private _moveCameraToFitBounds

▸ _moveCameraToFitBounds(aabbs: AABB[], assemblyPoints: Vector3[], center: Vector3, portrait: boolean, cameraPosition: Vector3, immediately: boolean): Promise‹any›

Defined in src/renderContext/CameraMotion.ts:293

Parameters:

Name Type
aabbs AABB[]
assemblyPoints Vector3[]
center Vector3
portrait boolean
cameraPosition Vector3
immediately boolean

Returns: Promise‹any›


Private _updateCombinedMinimumViewportAABB

▸ _updateCombinedMinimumViewportAABB(): void

Defined in src/renderContext/CameraMotion.ts:485

Returns: void


adaptRotationAngle

▸ adaptRotationAngle(rotationAngle: Vector3): void

Defined in src/renderContext/CameraMotion.ts:283

Parameters:

Name Type
rotationAngle Vector3

Returns: void


addMinimumViewportAABB

▸ addMinimumViewportAABB(aabb: AABB): void

Defined in src/renderContext/CameraMotion.ts:175

Parameters:

Name Type Description
aabb AABB an AABB that describes the minimal visible viewport

Returns: void


allowZoomIn

▸ allowZoomIn(): void

Defined in src/renderContext/CameraMotion.ts:271

Returns: void


deferPhysicsAdjustment

▸ deferPhysicsAdjustment(): void

Defined in src/renderContext/CameraMotion.ts:279

Returns: void


disallowZoomIn

▸ disallowZoomIn(): void

Defined in src/renderContext/CameraMotion.ts:267

Returns: void


immediatePhysicsAdjustment

▸ immediatePhysicsAdjustment(): void

Defined in src/renderContext/CameraMotion.ts:275

Returns: void


moveCameraToFitManualNestingIfNecessary

▸ moveCameraToFitManualNestingIfNecessary(nestingAreaAABB: AABB[], cameraPosition: Vector3, immediately: boolean, portrait: boolean): Promise‹any›

Defined in src/renderContext/CameraMotion.ts:247

Parameters:

Name Type Default
nestingAreaAABB AABB[] -
cameraPosition Vector3 -
immediately boolean false
portrait boolean false

Returns: Promise‹any›


moveCameraToFitModelSizeIfNecessary

▸ moveCameraToFitModelSizeIfNecessary(assemblies: Assembly[], cameraPosition: Vector3, immediately: boolean, portrait: boolean): Promise‹any›

Defined in src/renderContext/CameraMotion.ts:204

Calculates all camera positions and moves the camera to the correct position. Algorithm goes as follows: - get the initial camera position (always the same, reset it in every call) - adjust the position until the model fits - adjust the camera to the position

Parameters:

Name Type Default Description
assemblies Assembly[] - -
cameraPosition Vector3 - -
immediately boolean false If true, the change will not be debounced or anything.
portrait boolean false -

Returns: Promise‹any›


removeAdaptedRotationAngle

▸ removeAdaptedRotationAngle(): void

Defined in src/renderContext/CameraMotion.ts:289

Returns: void


removeMinimumViewportAABB

▸ removeMinimumViewportAABB(aabb: AABB): void

Defined in src/renderContext/CameraMotion.ts:182

Parameters:

Name Type
aabb AABB

Returns: void


resetMinimumViewportAABB

▸ resetMinimumViewportAABB(): void

Defined in src/renderContext/CameraMotion.ts:190

Returns: void


setCamera

▸ setCamera(camera: PerspectiveCamera): void

Defined in src/renderContext/CameraMotion.ts:123

Parameters:

Name Type
camera PerspectiveCamera

Returns: void


setToolInteraction

▸ setToolInteraction(value: boolean): void

Defined in src/renderContext/CameraMotion.ts:119

Parameters:

Name Type Default
value boolean true

Returns: void


updateHysteresisMethod

▸ updateHysteresisMethod(duration: number, method: HysteresisMethod | null | undefined): void

Defined in src/renderContext/CameraMotion.ts:133

Parameters:

Name Type
duration number
method HysteresisMethod | null | undefined

Returns: void