@novorender/api / BaseController
Class: abstract
BaseController
Defined in: @novorender/src/web_app/controller/base.ts:18
Base class for all camera controllers.
Extended by
Accessors
axes
Get Signature
get axes(): ControllerAxes;
Defined in: @novorender/src/web_app/controller/base.ts:59
The input axes
See
Returns
currentFlyTo
Get Signature
get currentFlyTo(): undefined | Orientation;
Defined in: @novorender/src/web_app/controller/base.ts:113
The current fly-to state, if any.
Returns
undefined
| Orientation
generation
Get Signature
get generation(): number;
Defined in: @novorender/src/web_app/controller/base.ts:34
Camera controller state generation.
Remarks
If the controller state changes, the generation count will be incremented once every call to renderStateChanges. This can be used to detect changes by comparing to a local generation count. The count is wrapped at 0xffffffff, so make sure you use != comparison and not < comparison.
Returns
number
hasShift
Get Signature
get hasShift(): boolean;
Defined in: @novorender/src/web_app/controller/base.ts:108
The input shift button state.
See
Returns
boolean
height
Get Signature
get height(): number;
Defined in: @novorender/src/web_app/controller/base.ts:80
The input element height.
See
Returns
number
moving
Get Signature
get moving(): boolean;
Defined in: @novorender/src/web_app/controller/base.ts:66
Whether the camera is currently considered moving or not.
See
View.isIdleFrame
Returns
boolean
multiplier
Get Signature
get multiplier(): number;
Defined in: @novorender/src/web_app/controller/base.ts:87
The input multiplier.
See
Returns
number
pointerTable
Get Signature
get pointerTable(): readonly TouchContactPoint[];
Defined in: @novorender/src/web_app/controller/base.ts:101
The input pointer table.
See
Returns
readonly TouchContactPoint
[]
width
Get Signature
get width(): number;
Defined in: @novorender/src/web_app/controller/base.ts:73
The input element width.
See
Returns
number
zoomPos
Get Signature
get zoomPos(): number[];
Defined in: @novorender/src/web_app/controller/base.ts:94
The input zoom position.
See
Returns
number
[]
Constructors
Constructor
protected new BaseController(input): BaseController;
Defined in: @novorender/src/web_app/controller/base.ts:51
Parameters
Parameter | Type | Description |
---|---|---|
input | ControllerInput | The input source for this controller. |
Returns
BaseController
Methods
animate()
animate(elapsedTime): void;
Defined in: @novorender/src/web_app/controller/base.ts:140
Apply time sensitive changes to controller state.
Parameters
Parameter | Type | Description |
---|---|---|
elapsedTime | number | The # of milliseconds elapsed since the last update. |
Returns
void
Remarks
Fly-to animations happens here, as well as motion based on keyboard pressed-state, such as the WASD keys.
attach()
attach(): void;
Defined in: @novorender/src/web_app/controller/base.ts:198
Attach this controller to the input object
Returns
void
autoFit()
abstract autoFit(center, radius): void;
Defined in: @novorender/src/web_app/controller/base.ts:184
Attempt to fit controller position such that the specified bounding sphere is brought into view.
Parameters
Parameter | Type | Description |
---|---|---|
center | ReadonlyVec3 | The center of the bounding sphere, in world space. |
radius | number | The radius of the bounding sphere, in world space. |
Returns
void
changed()
protected changed(): void;
Defined in: @novorender/src/web_app/controller/base.ts:39
Signal changes to internal state.
Returns
void
init()
abstract init(params): void;
Defined in: @novorender/src/web_app/controller/base.ts:178
Initialize controller from parameters.
Parameters
Parameter | Type |
---|---|
params | ControllerInitParams |
Returns
void
See
mouseButtonChanged()
abstract mouseButtonChanged(event): void | Promise<void>;
Defined in: @novorender/src/web_app/controller/base.ts:206
Handler for mouse buttons events.
Parameters
Parameter | Type |
---|---|
event | MouseEvent |
Returns
void
| Promise
<void
>
moveBegin()
abstract moveBegin(event): void | Promise<void>;
Defined in: @novorender/src/web_app/controller/base.ts:218
Handler for mouse/touch move events.
Parameters
Parameter | Type |
---|---|
event | MouseEvent | TouchEvent |
Returns
void
| Promise
<void
>
moveTo()
abstract moveTo(
targetPosition,
flyTime?,
rotation?): void;
Defined in: @novorender/src/web_app/controller/base.ts:227
Move controller to specified position/rotation.
Parameters
Parameter | Type | Description |
---|---|---|
targetPosition | ReadonlyVec3 | The position to move to, in world space. |
flyTime? | number | The time, in milliseconds, for the transition animation to last, or 0 for instant update. Default should be 1000. |
rotation? | ReadonlyQuat | Optional target rotation, or undefined to retain current rotation. |
Returns
void
renderStateChanges()
renderStateChanges(state, elapsedTime):
| undefined
| RecursivePartial<RenderState>;
Defined in: @novorender/src/web_app/controller/base.ts:247
Retrieve the state changes to be applied to the specified render state.
Parameters
Parameter | Type | Description |
---|---|---|
state | RenderStateCamera | The baseline render state. |
elapsedTime | number | The time elapsed since last call, in milliseconds. |
Returns
| undefined
| RecursivePartial
<RenderState
>
resetFlyTo()
protected resetFlyTo(): void;
Defined in: @novorender/src/web_app/controller/base.ts:117
Returns
void
serialize()
abstract serialize(includeDerived?): ControllerInitParams;
Defined in: @novorender/src/web_app/controller/base.ts:173
Serialize the state of this controller into init parameters.
Parameters
Parameter | Type | Description |
---|---|---|
includeDerived? | boolean | Include derived state which may not be intrinsic to this controller, such as orbit controller position. |
Returns
See
setFlyTo()
protected setFlyTo(flyTo): void;
Defined in: @novorender/src/web_app/controller/base.ts:124
Initialize a fly-to transition.
Parameters
Parameter | Type | Description |
---|---|---|
flyTo | FlyToParams | The transition parameters |
Returns
void
stateChanges()
abstract stateChanges(state?): Partial<RenderStateCamera>;
Defined in: @novorender/src/web_app/controller/base.ts:195
Retrieve changes to render state from derived class, if any.
Parameters
Parameter | Type | Description |
---|---|---|
state? | RenderStateCamera | The baseline state to apply changes to. |
Returns
Partial
<RenderStateCamera
>
See
Remarks
If there are no changes, the returned object will be empty, i.e. .
touchChanged()
abstract touchChanged(event): void | Promise<void>;
Defined in: @novorender/src/web_app/controller/base.ts:212
Handler for touch events.
Parameters
Parameter | Type |
---|---|
event | TouchEvent |
Returns
void
| Promise
<void
>
update()
abstract update(): void;
Defined in: @novorender/src/web_app/controller/base.ts:187
Update internal controller state
Returns
void
zoomTo()
abstract zoomTo(boundingSphere, flyTime?): void;
Defined in: @novorender/src/web_app/controller/base.ts:241
Bring the specified bounding sphere into view.
Parameters
Parameter | Type | Description |
---|---|---|
boundingSphere | BoundingSphere | The bounding sphere to move into view. |
flyTime? | number | The time, in milliseconds, for the transition animation to last, or 0 for instant update. Default should be 1000. |
Returns
void
Remarks
This function will retain the current camera controller rotation.
getDistanceFromViewPlane()
protected static getDistanceFromViewPlane(
point,
cameraPosition,
cameraRotation): number;
Defined in: @novorender/src/web_app/controller/base.ts:281
Compute the distance to a point from the specified view plane.
Parameters
Parameter | Type | Description |
---|---|---|
point | ReadonlyVec3 | The point to measure distance too |
cameraPosition | ReadonlyVec3 | The position of the camera/view plane. |
cameraRotation | ReadonlyQuat | The rotation of the camera/view plane. |
Returns
number
A signed distance from the point to the view plane, i.e. positive for points in front of the plane and negative otherwise.
Properties
input
readonly input: ControllerInput;
Defined in: @novorender/src/web_app/controller/base.ts:53
The input source for this controller.
kind
abstract readonly kind: string;
Defined in: @novorender/src/web_app/controller/base.ts:20
The controller type id.
projection
abstract readonly projection: undefined | "pinhole" | "orthographic";
Defined in: @novorender/src/web_app/controller/base.ts:25
The camera projection kind.