Skip to main content

@novorender/api / OrthoController

Class: OrthoController

Defined in: @novorender/src/web_app/controller/ortho.ts:30

The ortho controller is for navigating a orthographic camera.

Remarks​

A key aspect of this controller is as a means to view and navigate in 2D, aligning the parallel to the view plane to the axes or some reference plane. The front and back clipping planes are used to reveal a limited slab of the geometry.

Extends​

Accessors​

axes​

Get Signature​

get axes(): ControllerAxes;

Defined in: @novorender/src/web_app/controller/base.ts:59

The input axes

See​

ControllerInput.axes

Returns​

ControllerAxes

Inherited from​

BaseController.axes


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

Inherited from​

BaseController.currentFlyTo


fov​

Get Signature​

get fov(): number;

Defined in: @novorender/src/web_app/controller/ortho.ts:97

The camera vertical field of view angle, in meters.

Returns​

number

Set Signature​

set fov(value): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:100

Parameters​
ParameterType
valuenumber
Returns​

void


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

Inherited from​

BaseController.generation


hasShift​

Get Signature​

get hasShift(): boolean;

Defined in: @novorender/src/web_app/controller/base.ts:108

The input shift button state.

See​

ControllerInput.hasShift

Returns​

boolean

Inherited from​

BaseController.hasShift


height​

Get Signature​

get height(): number;

Defined in: @novorender/src/web_app/controller/base.ts:80

The input element height.

See​

ControllerInput.height

Returns​

number

Inherited from​

BaseController.height


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

Inherited from​

BaseController.moving


multiplier​

Get Signature​

get multiplier(): number;

Defined in: @novorender/src/web_app/controller/base.ts:87

The input multiplier.

See​

ControllerInput.multiplier

Returns​

number

Inherited from​

BaseController.multiplier


pitch​

Get Signature​

get pitch(): number;

Defined in: @novorender/src/web_app/controller/ortho.ts:70

The camera pitch angle, in degrees.

Returns​

number

Set Signature​

set pitch(value): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:73

Parameters​
ParameterType
valuenumber
Returns​

void


pointerTable​

Get Signature​

get pointerTable(): readonly TouchContactPoint[];

Defined in: @novorender/src/web_app/controller/base.ts:101

The input pointer table.

See​

ControllerInput.touchPoints

Returns​

readonly TouchContactPoint[]

Inherited from​

BaseController.pointerTable


position​

Get Signature​

get position(): ReadonlyVec3;

Defined in: @novorender/src/web_app/controller/ortho.ts:53

Camera position, in world space.

Returns​

ReadonlyVec3

Set Signature​

set position(value): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:56

Parameters​
ParameterType
valueReadonlyVec3
Returns​

void


roll​

Get Signature​

get roll(): number;

Defined in: @novorender/src/web_app/controller/ortho.ts:88

The camera roll angle, in degrees.

Returns​

number

Set Signature​

set roll(value): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:91

Parameters​
ParameterType
valuenumber
Returns​

void


rotation​

Get Signature​

get rotation(): ReadonlyQuat;

Defined in: @novorender/src/web_app/controller/ortho.ts:65

Computed rotation quaternion, in world space.

Remarks​

This rotation is derived from pitch, yaw and roll angles.

Returns​

ReadonlyQuat


width​

Get Signature​

get width(): number;

Defined in: @novorender/src/web_app/controller/base.ts:73

The input element width.

See​

ControllerInput.width

Returns​

number

Inherited from​

BaseController.width


yaw​

Get Signature​

get yaw(): number;

Defined in: @novorender/src/web_app/controller/ortho.ts:79

The camera yaw angle, in degrees.

Returns​

number

Set Signature​

set yaw(value): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:82

Parameters​
ParameterType
valuenumber
Returns​

void


zoomPos​

Get Signature​

get zoomPos(): number[];

Defined in: @novorender/src/web_app/controller/base.ts:94

The input zoom position.

See​

ControllerInput.zoomPos

Returns​

number[]

Inherited from​

BaseController.zoomPos

Constructors​

Constructor​

new OrthoController(input): OrthoController;

Defined in: @novorender/src/web_app/controller/ortho.ts:48

Parameters​

ParameterTypeDescription
inputControllerInputThe input source.

Returns​

OrthoController

Overrides​

BaseController.constructor

Methods​

animate()​

animate(elapsedTime): void;

Defined in: @novorender/src/web_app/controller/base.ts:140

Apply time sensitive changes to controller state.

Parameters​

ParameterTypeDescription
elapsedTimenumberThe # 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​

BaseController.animate


attach()​

attach(): void;

Defined in: @novorender/src/web_app/controller/base.ts:198

Attach this controller to the input object

Returns​

void

Inherited from​

BaseController.attach


autoFit()​

autoFit(center, radius): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:141

Attempt to fit controller position such that the specified bounding sphere is brought into view.

Parameters​

ParameterTypeDescription
centerReadonlyVec3The center of the bounding sphere, in world space.
radiusnumberThe radius of the bounding sphere, in world space.

Returns​

void

Overrides​

BaseController.autoFit


changed()​

protected changed(): void;

Defined in: @novorender/src/web_app/controller/base.ts:39

Signal changes to internal state.

Returns​

void

Inherited from​

BaseController.changed


init()​

init(params): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:121

Initialize controller from parameters.

Parameters​

ParameterType
paramsControllerInitParams

Returns​

void

See​

serialize

Overrides​

BaseController.init


mouseButtonChanged()​

mouseButtonChanged(event): Promise<void>;

Defined in: @novorender/src/web_app/controller/ortho.ts:188

Handler for mouse buttons events.

Parameters​

ParameterType
eventMouseEvent

Returns​

Promise<void>

Overrides​

BaseController.mouseButtonChanged


moveBegin()​

moveBegin(_event): void | Promise<void>;

Defined in: @novorender/src/web_app/controller/ortho.ts:408

Handler for mouse/touch move events.

Parameters​

ParameterType
_eventMouseEvent | TouchEvent

Returns​

void | Promise<void>

Overrides​

BaseController.moveBegin


moveTo()​

moveTo(
targetPosition,
flyTime,
rotation?,
easeFunction?): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:201

Move controller to specified position/rotation.

Parameters​

ParameterTypeDefault valueDescription
targetPositionReadonlyVec3undefinedThe position to move to, in world space.
flyTimenumber1000The time, in milliseconds, for the transition animation to last, or 0 for instant update. Default should be 1000.
rotation?ReadonlyQuatundefinedOptional target rotation, or undefined to retain current rotation.
easeFunction?(t) => numberundefined-

Returns​

void

Overrides​

BaseController.moveTo


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​

ParameterTypeDescription
stateRenderStateCameraThe baseline render state.
elapsedTimenumberThe time elapsed since last call, in milliseconds.

Returns​

| undefined | RecursivePartial<RenderState>

Inherited from​

BaseController.renderStateChanges


resetFlyTo()​

protected resetFlyTo(): void;

Defined in: @novorender/src/web_app/controller/base.ts:117

Returns​

void

Inherited from​

BaseController.resetFlyTo


serialize()​

serialize(): ControllerInitParams;

Defined in: @novorender/src/web_app/controller/ortho.ts:115

Serialize the state of this controller into init parameters.

Returns​

ControllerInitParams

See​

init

Overrides​

BaseController.serialize


setFlyTo()​

protected setFlyTo(flyTo): void;

Defined in: @novorender/src/web_app/controller/base.ts:124

Initialize a fly-to transition.

Parameters​

ParameterTypeDescription
flyToFlyToParamsThe transition parameters

Returns​

void

Inherited from​

BaseController.setFlyTo


stateChanges()​

stateChanges(state?): Partial<RenderStateCamera>;

Defined in: @novorender/src/web_app/controller/ortho.ts:362

Retrieve changes to render state from derived class, if any.

Parameters​

ParameterTypeDescription
state?RenderStateCameraThe baseline state to apply changes to.

Returns​

Partial<RenderStateCamera>

See​

View.modifyRenderState

Remarks​

If there are no changes, the returned object will be empty, i.e. .

Overrides​

BaseController.stateChanges


touchChanged()​

touchChanged(event): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:175

Handler for touch events.

Parameters​

ParameterType
eventTouchEvent

Returns​

void

Overrides​

BaseController.touchChanged


update()​

update(): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:287

Update internal controller state

Returns​

void

Overrides​

BaseController.update


updateParams()​

updateParams(params): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:108

Update controller parameters.

Parameters​

ParameterTypeDescription
paramsPartial<OrthoControllerParams>Set of parameters to change.

Returns​

void


zoomTo()​

zoomTo(boundingSphere, flyTime): void;

Defined in: @novorender/src/web_app/controller/ortho.ts:240

Bring the specified bounding sphere into view.

Parameters​

ParameterTypeDefault valueDescription
boundingSphereBoundingSphereundefinedThe bounding sphere to move into view.
flyTimenumber1000The 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.

Overrides​

BaseController.zoomTo


assert()​

static assert(controller): asserts controller is OrthoController;

Defined in: @novorender/src/web_app/controller/ortho.ts:401

OrthoController type assert function.

Parameters​

ParameterTypeDescription
controllerBaseControllerThe controller to type assert.

Returns​

asserts controller is OrthoController


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​

ParameterTypeDescription
pointReadonlyVec3The point to measure distance too
cameraPositionReadonlyVec3The position of the camera/view plane.
cameraRotationReadonlyQuatThe 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​

BaseController.getDistanceFromViewPlane


is()​

static is(controller): controller is OrthoController;

Defined in: @novorender/src/web_app/controller/ortho.ts:394

OrthoController type guard function.

Parameters​

ParameterTypeDescription
controllerBaseControllerThe controller to type guard.

Returns​

controller is OrthoController

Properties​

input​

readonly input: ControllerInput;

Defined in: @novorender/src/web_app/controller/base.ts:53

The input source for this controller.

Inherited from​

BaseController.input


kind​

kind: "ortho";

Defined in: @novorender/src/web_app/controller/ortho.ts:31

The controller type id.

Overrides​

BaseController.kind


projection​

projection: "orthographic";

Defined in: @novorender/src/web_app/controller/ortho.ts:32

The camera projection kind.

See​

RenderStateCamera.kind.

Overrides​

BaseController.projection