Skip to main content

@novorender/api / PanoramaController

Class: PanoramaController

Defined in: @novorender/src/web_app/controller/panorama.ts:22

Panorama type camera motion controller

Remarks​

For rotating the camera inside a sphere with a panorama image projected onto it.

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/panorama.ts:75

The camera vertical field of view angle, in degrees.

Returns​

number

Set Signature​

set fov(value): void;

Defined in: @novorender/src/web_app/controller/panorama.ts:78

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/panorama.ts:57

The camera pitch angle, in degrees.

Returns​

number

Set Signature​

set pitch(value): void;

Defined in: @novorender/src/web_app/controller/panorama.ts:60

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/panorama.ts:40

Camera position, in world space.

Returns​

ReadonlyVec3

Set Signature​

set position(value): void;

Defined in: @novorender/src/web_app/controller/panorama.ts:43

Parameters​
ParameterType
valueReadonlyVec3
Returns​

void


rotation​

Get Signature​

get rotation(): ReadonlyQuat;

Defined in: @novorender/src/web_app/controller/panorama.ts:52

Computed rotation quaternion, in world space.

Remarks​

This rotation is derived from pitch and yaw 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/panorama.ts:66

The camera yaw angle, in degrees.

Returns​

number

Set Signature​

set yaw(value): void;

Defined in: @novorender/src/web_app/controller/panorama.ts:69

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 PanoramaController(input): PanoramaController;

Defined in: @novorender/src/web_app/controller/panorama.ts:35

Parameters​

ParameterTypeDescription
inputControllerInputThe input source.

Returns​

PanoramaController

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/panorama.ts:114

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/panorama.ts:96

Initialize controller from parameters.

Parameters​

ParameterType
paramsControllerInitParams

Returns​

void

See​

serialize

Overrides​

BaseController.init


mouseButtonChanged()​

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

Defined in: @novorender/src/web_app/controller/panorama.ts:234

Handler for mouse buttons events.

Parameters​

ParameterType
_eventMouseEvent

Returns​

void | Promise<void>

Overrides​

BaseController.mouseButtonChanged


moveBegin()​

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

Defined in: @novorender/src/web_app/controller/panorama.ts:238

Handler for mouse/touch move events.

Parameters​

ParameterType
_eventMouseEvent | TouchEvent

Returns​

void | Promise<void>

Overrides​

BaseController.moveBegin


moveTo()​

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

Defined in: @novorender/src/web_app/controller/panorama.ts:126

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.

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/panorama.ts:90

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/panorama.ts:199

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 | Promise<void>;

Defined in: @novorender/src/web_app/controller/panorama.ts:236

Handler for touch events.

Parameters​

ParameterType
_eventTouchEvent

Returns​

void | Promise<void>

Overrides​

BaseController.touchChanged


update()​

update(): void;

Defined in: @novorender/src/web_app/controller/panorama.ts:164

Update internal controller state

Returns​

void

Overrides​

BaseController.update


updateParams()​

updateParams(params): void;

Defined in: @novorender/src/web_app/controller/panorama.ts:86

Update controller parameters.

Parameters​

ParameterTypeDescription
paramsPartial<PanoramaControllerParams>Set of parameters to change.

Returns​

void


zoomTo()​

zoomTo(_boundingSphere, _flyTime): void;

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

Bring the specified bounding sphere into view.

Parameters​

ParameterTypeDefault value
_boundingSphereBoundingSphereundefined
_flyTimenumber1000

Returns​

void

Remarks​

This function will retain the current camera controller rotation.

Overrides​

BaseController.zoomTo


assert()​

static assert(controller): asserts controller is PanoramaController;

Defined in: @novorender/src/web_app/controller/panorama.ts:227

PanoramaController type assert function.

Parameters​

ParameterTypeDescription
controllerBaseControllerThe controller to type assert.

Returns​

asserts controller is PanoramaController


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 PanoramaController;

Defined in: @novorender/src/web_app/controller/panorama.ts:220

PanoramaController type guard function.

Parameters​

ParameterTypeDescription
controllerBaseControllerThe controller to type guard.

Returns​

controller is PanoramaController

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: "panorama";

Defined in: @novorender/src/web_app/controller/panorama.ts:23

The controller type id.

Overrides​

BaseController.kind


projection​

projection: "pinhole";

Defined in: @novorender/src/web_app/controller/panorama.ts:24

The camera projection kind.

See​

RenderStateCamera.kind.

Overrides​

BaseController.projection