editor › Globals › CameraMotion
Class: CameraMotion
Hierarchy
- CameraMotion
Index
Constructors
Properties
- adaptedRotation
- animationFinished
- cameraAboveObjectConstraint
- combinedMinimumViewportAABB
- debouncedSceneCameraAnimation
- hysteresisDuration
- hysteresisMethod
- marginBottom
- marginLeft
- marginRight
- marginTop
- minimumViewportAABBs
- movementPhysicsAdjustmentImmediate
- movingCameraToDefaultPosition
- previousCameraPosition
- sceneBackground
- targetPosition
- toleranceBack
- toleranceDown
- toleranceFront
- toleranceUp
- toolInteraction
- vCamera
- zoomInAllowed
Methods
- _calculateCameraCenter
- _getWorldAABBOfAssemblies
- _moveCameraToFitBounds
- _updateCombinedMinimumViewportAABB
- adaptRotationAngle
- addMinimumViewportAABB
- allowZoomIn
- deferPhysicsAdjustment
- disallowZoomIn
- immediatePhysicsAdjustment
- moveCameraToFitManualNestingIfNecessary
- moveCameraToFitModelSizeIfNecessary
- removeAdaptedRotationAngle
- removeMinimumViewportAABB
- resetMinimumViewportAABB
- setCamera
- setToolInteraction
- updateHysteresisMethod
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