@novorender/web_app / SpecialFlightController
Class: SpecialFlightController
Vassbakk's super special flight controller.
Extends
Accessors
axes
get axes(): ControllerAxes
The input axes
See
Returns
Inherited from
Defined in
@novorender/web_app/controller/base.ts:55
currentFlyTo
get currentFlyTo(): undefined | Orientation
The current fly-to state, if any.
Returns
undefined
| Orientation
Inherited from
Defined in
@novorender/web_app/controller/base.ts:109
fov
get fov(): number
The camera vertical field of view angle, in degrees.
set fov(value): void
Parameters
Parameter | Type |
---|---|
value | number |
Returns
number
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:93
generation
get generation(): number
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
Inherited from
Defined in
@novorender/web_app/controller/base.ts:29
hasShift
get hasShift(): boolean
The input shift button state.
See
Returns
boolean
Inherited from
Defined in
@novorender/web_app/controller/base.ts:104
height
get height(): number
The input element height.
See
Returns
number
Inherited from
Defined in
@novorender/web_app/controller/base.ts:76
moving
get moving(): boolean
Whether the camera is currently considered moving or not.
See
View.isIdleFrame
Returns
boolean
Inherited from
Defined in
@novorender/web_app/controller/base.ts:62
multiplier
get multiplier(): number
The input multiplier.
See
Returns
number
Inherited from
Defined in
@novorender/web_app/controller/base.ts:83
pitch
get pitch(): number
The camera pitch angle, in degrees.
set pitch(value): void
Parameters
Parameter | Type |
---|---|
value | number |
Returns
number
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:75
pivot
get pivot(): undefined | Pivot
The optional pivot point to orbit around, in world space.
Returns
undefined
| Pivot
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:102
pointerTable
get pointerTable(): readonly TouchContactPoint[]
The input pointer table.
See
Returns
readonly TouchContactPoint
[]
Inherited from
Defined in
@novorender/web_app/controller/base.ts:97
position
get position(): ReadonlyVec3
Camera position, in world space.
set position(value): void
Parameters
Parameter | Type |
---|---|
value | ReadonlyVec3 |
Returns
ReadonlyVec3
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:58
rotation
get rotation(): ReadonlyQuat
Computed rotation quaternion, in world space.
Remarks
This rotation is derived from pitch and yaw angles.
Returns
ReadonlyQuat
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:70
width
get width(): number
The input element width.
See
Returns
number
Inherited from
Defined in
@novorender/web_app/controller/base.ts:69
yaw
get yaw(): number
The camera yaw angle, in degrees.
set yaw(value): void
Parameters
Parameter | Type |
---|---|
value | number |
Returns
number
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:84
zoomPos
get zoomPos(): number[]
The input zoom position.
See
Returns
number
[]
Inherited from
Defined in
@novorender/web_app/controller/base.ts:90
Constructors
new SpecialFlightController()
new SpecialFlightController(
input,
pick,
conversions,
params?): SpecialFlightController
Parameters
Parameter | Type |
---|---|
input | ControllerInput |
pick | PickContext |
conversions | ScreenSpaceConversions |
params ? | FlightControllerParams |
Returns
Overrides
Defined in
@novorender/web_app/controller/flight.ts:506
Methods
animate()
animate(elapsedTime): void
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.
Inherited from
Defined in
@novorender/web_app/controller/base.ts:136
attach()
attach(): void
Attach this controller to the input object
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/base.ts:193
autoFit()
autoFit(center, radius): void
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
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:140
changed()
protected changed(): void
Signal changes to internal state.
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/base.ts:34
getTransformations()
getTransformations(): CameraTransformations
Function to get transformations since last updated. This can be overwritten to easily change direction and scale of input while keeping the standard caluculation for flight controller
Returns
CameraTransformations
Overrides
FlightController
.getTransformations
Defined in
@novorender/web_app/controller/flight.ts:512
init()
init(params): void
Initialize controller from parameters.
Parameters
Parameter | Type |
---|---|
params | ControllerInitParams |
Returns
void
See
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:123
modifiers()
protected modifiers(): object
Function for getting input modifiers based on how far the 3d objects are from the mouse cursor
Returns
object
mousePanModifier
mousePanModifier: number;
mouseWheelModifier
mouseWheelModifier: number;
pinchModifier
pinchModifier: number;
scale
scale: number = 20;
touchMovementModifier
touchMovementModifier: number;
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:375
mouseButtonChanged()
mouseButtonChanged(event): Promise<void>
Handler for mouse buttons events.
Parameters
Parameter | Type |
---|---|
event | MouseEvent |
Returns
Promise
<void
>
Inherited from
FlightController
.mouseButtonChanged
Defined in
@novorender/web_app/controller/flight.ts:286
moveBegin()
moveBegin(event): Promise<void>
Handler for mouse/touch move events.
Parameters
Parameter | Type |
---|---|
event | MouseEvent | TouchEvent |
Returns
Promise
<void
>
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:322
moveTo()
moveTo(
targetPosition,
flyTime,
rotation?,
easeFunction?): void
Move controller to specified position/rotation.
Parameters
Parameter | Type | Default value |
---|---|---|
targetPosition | ReadonlyVec3 | undefined |
flyTime | number | 1000 |
rotation ? | ReadonlyQuat | undefined |
easeFunction ? | (t ) => number | undefined |
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:149
renderStateChanges()
renderStateChanges(state, elapsedTime): undefined | RecursivePartial<RenderState>
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
>
Inherited from
FlightController
.renderStateChanges
Defined in
@novorender/web_app/controller/base.ts:236
resetFlyTo()
protected resetFlyTo(): void
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/base.ts:113
resetVelocity()
resetVelocity(): void
Returns
void
Inherited from
FlightController
.resetVelocity
Defined in
@novorender/web_app/controller/flight.ts:106
serialize()
serialize(): ControllerInitParams
Serialize the state of this controller into init parameters.
Returns
See
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:117
setFlyTo()
protected setFlyTo(flyTo): void
Initialize a fly-to transition.
Parameters
Parameter | Type | Description |
---|---|---|
flyTo | FlyToParams | The transition parameters |
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/base.ts:120
stateChanges()
stateChanges(state?): Partial<RenderStateCamera>
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. .
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:265
touchChanged()
touchChanged(event): Promise<void>
Handler for touch events.
Parameters
Parameter | Type |
---|---|
event | TouchEvent |
Returns
Promise
<void
>
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:303
update()
update(): void
Update internal controller state
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:197
updateParams()
updateParams(params): void
Update controller parameters.
Parameters
Parameter | Type | Description |
---|---|---|
params | RecursivePartial <FlightControllerParams > | Set of parameters to change. |
Returns
void
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:113
zoomTo()
zoomTo(boundingSphere, flyTime): void
Bring the specified bounding sphere into view.
Parameters
Parameter | Type | Default value |
---|---|---|
boundingSphere | BoundingSphere | undefined |
flyTime | number | 1000 |
Returns
void
Remarks
This function will retain the current camera controller rotation.
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:177
assert()
static assert(controller): asserts controller is FlightController
FlightController type assert function.
Parameters
Parameter | Type | Description |
---|---|---|
controller | BaseController | The controller to type assert. |
Returns
asserts controller is FlightController
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:428
getDistanceFromViewPlane()
protected static getDistanceFromViewPlane(
point,
cameraPosition,
cameraRotation): number
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.
Inherited from
FlightController
.getDistanceFromViewPlane
Defined in
@novorender/web_app/controller/base.ts:262
is()
static is(controller): controller is FlightController
FlightController type guard function.
Parameters
Parameter | Type | Description |
---|---|---|
controller | BaseController | The controller to type guard. |
Returns
controller is FlightController
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:421
Properties
conversions
readonly conversions: ScreenSpaceConversions;
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:52
input
readonly input: ControllerInput;
The input source for this controller.
Inherited from
Defined in
@novorender/web_app/controller/base.ts:48
kind
kind: "special";
The controller type id.
Overrides
Defined in
@novorender/web_app/controller/flight.ts:504
pick
readonly pick: PickContext;
The context used for pick queries.
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:506
pivotButton
protected pivotButton: MouseButtons = MouseButtons.right;
Can be overwritten by subclasses to change pivot button
Inherited from
Defined in
@novorender/web_app/controller/flight.ts:16
projection
projection: "pinhole";
The camera projection kind.