Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / Camera

Class: Camera

Defined in: packages/charm/src/scene/camera.ts:41

A camera that can be manipulated in various ways:

  • rotate around an axis of choice
  • lookAt a coordinate
  • orbit around the target coordinate
  • move position
  • serialized or deserialized to/from JSON

Camera supports perspective and orthographic modes.

Constructors

new Camera()

new Camera(): Camera

Defined in: packages/charm/src/scene/camera.ts:72

Returns

Camera

Properties

front

front: vec3

Defined in: packages/charm/src/scene/camera.ts:63


inv_viewprojection_matrix

inv_viewprojection_matrix: mat4

Defined in: packages/charm/src/scene/camera.ts:48


model_matrix

model_matrix: mat4

Defined in: packages/charm/src/scene/camera.ts:47


projection_matrix

projection_matrix: mat4

Defined in: packages/charm/src/scene/camera.ts:45


right: vec3

Defined in: packages/charm/src/scene/camera.ts:64


top

top: vec3

Defined in: packages/charm/src/scene/camera.ts:65


view_matrix

view_matrix: mat4

Defined in: packages/charm/src/scene/camera.ts:44


viewprojection_matrix

viewprojection_matrix: mat4

Defined in: packages/charm/src/scene/camera.ts:46


_move_vec3

static _move_vec3: vec3

Defined in: packages/charm/src/scene/camera.ts:311


_rotate_quat

static _rotate_quat: quat

Defined in: packages/charm/src/scene/camera.ts:341


_rotate_vec3

static _rotate_vec3: vec3

Defined in: packages/charm/src/scene/camera.ts:339


_rotate_vec3B

static _rotate_vec3B: vec3

Defined in: packages/charm/src/scene/camera.ts:340


current

static current: undefined | Camera = undefined

Defined in: packages/charm/src/scene/camera.ts:42

Accessors

aspect

Get Signature

get aspect(): number

Defined in: packages/charm/src/scene/camera.ts:127

Returns

number

Set Signature

set aspect(v): void

Defined in: packages/charm/src/scene/camera.ts:123

Parameters
v

number

Returns

void


far

Get Signature

get far(): number

Defined in: packages/charm/src/scene/camera.ts:141

Returns

number

Set Signature

set far(v): void

Defined in: packages/charm/src/scene/camera.ts:137

Parameters
v

number

Returns

void


fov

Get Signature

get fov(): number

Defined in: packages/charm/src/scene/camera.ts:120

Returns

number

Set Signature

set fov(v): void

Defined in: packages/charm/src/scene/camera.ts:116

Parameters
v

number

Returns

void


frustum_size

Get Signature

get frustum_size(): number

Defined in: packages/charm/src/scene/camera.ts:149

Returns

number

Set Signature

set frustum_size(v): void

Defined in: packages/charm/src/scene/camera.ts:145

Parameters
v

number

Returns

void


near

Get Signature

get near(): number

Defined in: packages/charm/src/scene/camera.ts:134

Returns

number

Set Signature

set near(v): void

Defined in: packages/charm/src/scene/camera.ts:130

Parameters
v

number

Returns

void


position

Get Signature

get position(): vec3

Defined in: packages/charm/src/scene/camera.ts:157

Returns

vec3

Set Signature

set position(v): void

Defined in: packages/charm/src/scene/camera.ts:153

Parameters
v

vec3

Returns

void


target

Get Signature

get target(): vec3

Defined in: packages/charm/src/scene/camera.ts:164

Returns

vec3

Set Signature

set target(v): void

Defined in: packages/charm/src/scene/camera.ts:160

Parameters
v

vec3

Returns

void


type

Get Signature

get type(): eCameraType

Defined in: packages/charm/src/scene/camera.ts:112

Returns

eCameraType

Set Signature

set type(v): void

Defined in: packages/charm/src/scene/camera.ts:108

Parameters
v

eCameraType

Returns

void


up

Get Signature

get up(): vec3

Defined in: packages/charm/src/scene/camera.ts:171

Returns

vec3

Set Signature

set up(v): void

Defined in: packages/charm/src/scene/camera.ts:167

Parameters
v

vec3

Returns

void

Methods

batchUpdate()

batchUpdate(updater): void

Defined in: packages/charm/src/scene/camera.ts:587

Postpones calculation of the camera matrices until after a batch of updates.

Parameters

updater

() => void

Returns

void


changeDistanceFactor()

changeDistanceFactor(f): void

Defined in: packages/charm/src/scene/camera.ts:370

Parameters

f

number

Returns

void


configure()

configure(o): void

Defined in: packages/charm/src/scene/camera.ts:489

Reads camera attributes from a JSON object

Parameters

o

ICamera

Returns

void


getLocalVector()

getLocalVector(v, result?): vec3

Defined in: packages/charm/src/scene/camera.ts:253

transform vector (only rotates) from local to global

Parameters

v

vec3

result?

vec3

[Optional]

Returns

vec3

local point transformed

Method

getLocalVector


getRayDirection()

getRayDirection(x, y, viewport, result?): vec3

Defined in: packages/charm/src/scene/camera.ts:473

returns the direction vector of a ray that passes through a pixel in the screen

Parameters

x

number

number pixel x

y

number

number pixel y

viewport

area of the screen [0,0,w,h]

vec4 | number[]

result?

vec3

to store the result [optional]

Returns

vec3

the result

Method

getRayDirection


getRayOrigin()

getRayOrigin(x, y, viewport, result?): vec3

Defined in: packages/charm/src/scene/camera.ts:449

returns the origin position of a ray that passes through a pixel in the screen

Parameters

x

number

number pixel x

y

number

number pixel y

viewport

area of the screen [0,0,w,h]

vec4 | number[]

result?

vec3

to store the result [optional]

Returns

vec3

the result

Method

getRayOrigin


getTargetDistance()

getTargetDistance(): number

Defined in: packages/charm/src/scene/camera.ts:381

Returns

number


globalToLocal()

globalToLocal(v, result?): vec3

Defined in: packages/charm/src/scene/camera.ts:281

transform point from global coordinates (world space) to local coordinates (view space)

Parameters

v

vec3

result?

vec3

[Optional]

Returns

vec3

local point

Method

globalToLocal


localToGlobal()

localToGlobal(v, result?): vec3

Defined in: packages/charm/src/scene/camera.ts:267

transform point from local to global coordinates

Parameters

v

vec3

result?

vec3

[Optional]

Returns

vec3

local point transformed

Method

localToGlobal


lookAt()

lookAt(position, target, up): void

Defined in: packages/charm/src/scene/camera.ts:175

Parameters

position

vec3

target

vec3

up

vec3

Returns

void


makeCurrent()

makeCurrent(): void

Defined in: packages/charm/src/scene/camera.ts:104

Returns

void


move()

move(v, scalar, isLocal): void

Defined in: packages/charm/src/scene/camera.ts:295

move the position and the target the same amount so no rotation is produced

Parameters

v

vec3

global (if local use the thirth parameter)

scalar

number = 1

[optional] it will be multiplied by the vector

isLocal

boolean = false

[optional] tells v is in local camera space

Returns

void

Method

move


orbit()

orbit(angleInRadians, axis, isLocal): void

Defined in: packages/charm/src/scene/camera.ts:350

rotate over its target position

Parameters

angleInRadians

number

in radians

axis

vec3

isLocal

boolean = false

tells v is in local camera space

Returns

void

Method

orbit


orthographic()

orthographic(frustumSize, near, far, aspect): void

Defined in: packages/charm/src/scene/camera.ts:191

Parameters

frustumSize

number

near

number

far

number

aspect

number

Returns

void


perspective()

perspective(fov, aspect, near, far): void

Defined in: packages/charm/src/scene/camera.ts:182

Parameters

fov

number

aspect

number

near

number

far

number

Returns

void


project()

project(vec, viewport, result?): vec3

Defined in: packages/charm/src/scene/camera.ts:393

projects a point from 3D to 2D

Parameters

vec

vec3

coordinate to project

viewport

vec4

viewport

result?

vec3

alternative return

Returns

vec3

projected point

Method

project


rotate()

rotate(angleInRadians, axis, isLocal): void

Defined in: packages/charm/src/scene/camera.ts:320

rotate over its position

Parameters

angleInRadians

number

angle in radians

axis

vec3

isLocal

boolean = false

tells v is in local camera space

Returns

void

Method

rotate


serialize()

serialize(): ICamera

Defined in: packages/charm/src/scene/camera.ts:506

Writes camera attributes to a JSON object

Returns

ICamera


testAABBInside()

testAABBInside(center, halfsize): eTestResult

Defined in: packages/charm/src/scene/camera.ts:564

Test if AABB defined by center and halfsize is inside the frustum

Parameters

center

vec3

halfsize

vec3

Returns

eTestResult


testSphereInside()

testSphereInside(center, radius): eTestResult

Defined in: packages/charm/src/scene/camera.ts:548

Test if a sphere, defined by a center point and a radius, is inside the frustum

Parameters

center

vec3

radius

number

Returns

eTestResult


unproject()

unproject(vec, viewport, out?): vec3

Defined in: packages/charm/src/scene/camera.ts:415

projects a point from 2D to 3D

Parameters

vec

vec3

3d coordinate to unproject

viewport

area

vec4 | number[]

out?

vec3

where to store the result [optional]

Returns

vec3

the projected point

Method

unproject