@tmrw-realityos/charm / Exports / Camera
Class: Camera
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.
Table of contents
Constructors
Properties
- front
- model_matrix
- projection_matrix
- right
- top
- view_matrix
- viewprojection_matrix
- _move_vec3
- _rotate_quat
- _rotate_vec3
- _rotate_vec3B
Accessors
Methods
- batchUpdate
- changeDistanceFactor
- configure
- getLocalVector
- getTargetDistance
- globalToLocal
- localToGlobal
- lookAt
- move
- orbit
- orthographic
- perspective
- project
- rotate
- serialize
- testAABBInside
- testSphereInside
- unproject
Constructors
constructor
• new Camera(): Camera
Returns
Defined in
packages/charm/src/scene/camera.ts:72
Properties
front
• front: vec3
Defined in
packages/charm/src/scene/camera.ts:63
model_matrix
• model_matrix: mat4
Defined in
packages/charm/src/scene/camera.ts:48
projection_matrix
• projection_matrix: mat4
Defined in
packages/charm/src/scene/camera.ts:46
right
• 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:45
viewprojection_matrix
• viewprojection_matrix: mat4
Defined in
packages/charm/src/scene/camera.ts:47
_move_vec3
▪ Static _move_vec3: vec3
Defined in
packages/charm/src/scene/camera.ts:300
_rotate_quat
▪ Static _rotate_quat: quat
Defined in
packages/charm/src/scene/camera.ts:330
_rotate_vec3
▪ Static _rotate_vec3: vec3
Defined in
packages/charm/src/scene/camera.ts:328
_rotate_vec3B
▪ Static _rotate_vec3B: vec3
Defined in
packages/charm/src/scene/camera.ts:329
Accessors
aspect
• get aspect(): number
Returns
number
Defined in
packages/charm/src/scene/camera.ts:117
• set aspect(v): void
Parameters
| Name | Type |
|---|---|
v | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:113
far
• get far(): number
Returns
number
Defined in
packages/charm/src/scene/camera.ts:131
• set far(v): void
Parameters
| Name | Type |
|---|---|
v | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:127
fov
• get fov(): number
Returns
number
Defined in
packages/charm/src/scene/camera.ts:110
• set fov(v): void
Parameters
| Name | Type |
|---|---|
v | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:106
frustum_size
• get frustum_size(): number
Returns
number
Defined in
packages/charm/src/scene/camera.ts:139
• set frustum_size(v): void
Parameters
| Name | Type |
|---|---|
v | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:135
near
• get near(): number
Returns
number
Defined in
packages/charm/src/scene/camera.ts:124
• set near(v): void
Parameters
| Name | Type |
|---|---|
v | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:120
position
• get position(): vec3
Returns
vec3
Defined in
packages/charm/src/scene/camera.ts:147
• set position(v): void
Parameters
| Name | Type |
|---|---|
v | vec3 |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:143
target
• get target(): vec3
Returns
vec3
Defined in
packages/charm/src/scene/camera.ts:154
• set target(v): void
Parameters
| Name | Type |
|---|---|
v | vec3 |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:150
type
• get type(): eCameraType
Returns
eCameraType
Defined in
packages/charm/src/scene/camera.ts:103
up
• get up(): vec3
Returns
vec3
Defined in
packages/charm/src/scene/camera.ts:161
• set up(v): void
Parameters
| Name | Type |
|---|---|
v | vec3 |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:157
Methods
batchUpdate
▸ batchUpdate(updater): void
Postpones calculation of the camera matrices until after a batch of updates.
Parameters
| Name | Type |
|---|---|
updater | () => void |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:512
changeDistanceFactor
▸ changeDistanceFactor(f): void
Parameters
| Name | Type |
|---|---|
f | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:359
configure
▸ configure(o): void
Reads camera attributes from a JSON object
Parameters
| Name | Type |
|---|---|
o | ICamera |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:414
getLocalVector
▸ getLocalVector(v, result?): vec3
transform vector (only rotates) from local to global
Parameters
| Name | Type | Description |
|---|---|---|
v | vec3 | |
result? | vec3 | [Optional] |
Returns
vec3
local point transformed
Method
getLocalVector
Defined in
packages/charm/src/scene/camera.ts:242
getTargetDistance
▸ getTargetDistance(): number
Returns
number
Defined in
packages/charm/src/scene/camera.ts:370
globalToLocal
▸ globalToLocal(v, result?): vec3
transform point from global coordinates (world space) to local coordinates (view space)
Parameters
| Name | Type | Description |
|---|---|---|
v | vec3 | |
result? | vec3 | [Optional] |
Returns
vec3
local point
Method
globalToLocal
Defined in
packages/charm/src/scene/camera.ts:270
localToGlobal
▸ localToGlobal(v, result?): vec3
transform point from local to global coordinates
Parameters
| Name | Type | Description |
|---|---|---|
v | vec3 | |
result? | vec3 | [Optional] |
Returns
vec3
local point transformed
Method
localToGlobal
Defined in
packages/charm/src/scene/camera.ts:256
lookAt
▸ lookAt(position, target, up): void
Parameters
| Name | Type |
|---|---|
position | vec3 |
target | vec3 |
up | vec3 |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:165
move
▸ move(v, scalar?, isLocal?): void
move the position and the target the same amount so no rotation is produced
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
v | vec3 | undefined | 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
Defined in
packages/charm/src/scene/camera.ts:284
orbit
▸ orbit(angleInRadians, axis, isLocal?): void
rotate over its target position
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
angleInRadians | number | undefined | in radians |
axis | vec3 | undefined | |
isLocal | boolean | false | tells v is in local camera space |
Returns
void
Method
orbit
Defined in
packages/charm/src/scene/camera.ts:339
orthographic
▸ orthographic(frustumSize, near, far, aspect): void
Parameters
| Name | Type |
|---|---|
frustumSize | number |
near | number |
far | number |
aspect | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:181
perspective
▸ perspective(fov, aspect, near, far): void
Parameters
| Name | Type |
|---|---|
fov | number |
aspect | number |
near | number |
far | number |
Returns
void
Defined in
packages/charm/src/scene/camera.ts:172
project
▸ project(vec, viewport, result?): vec3
projects a point from 3D to 2D
Parameters
| Name | Type | Description |
|---|---|---|
vec | vec3 | coordinate to project |
viewport | vec4 | [viewport=gl.viewport] |
result? | vec3 | alternative return |
Returns
vec3
projected point
Method
project
Defined in
packages/charm/src/scene/camera.ts:382
rotate
▸ rotate(angleInRadians, axis, isLocal?): void
rotate over its position
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
angleInRadians | number | undefined | angle in radians |
axis | vec3 | undefined | |
isLocal | boolean | false | tells v is in local camera space |
Returns
void
Method
rotate
Defined in
packages/charm/src/scene/camera.ts:309
serialize
▸ serialize(): ICamera
Writes camera attributes to a JSON object
Returns
Defined in
packages/charm/src/scene/camera.ts:431
testAABBInside
▸ testAABBInside(center, halfsize): eTestResult
Test if AABB defined by center and halfsize is inside the frustum
Parameters
| Name | Type |
|---|---|
center | vec3 |
halfsize | vec3 |
Returns
eTestResult
Defined in
packages/charm/src/scene/camera.ts:489
testSphereInside
▸ testSphereInside(center, radius): eTestResult
Test if a sphere, defined by a center point and a radius, is inside the frustum
Parameters
| Name | Type |
|---|---|
center | vec3 |
radius | number |
Returns
eTestResult
Defined in
packages/charm/src/scene/camera.ts:473
unproject
▸ unproject(vec, viewport, result?): vec3
projects a point from 2D to 3D
Parameters
| Name | Type | Description |
|---|---|---|
vec | vec3 | - |
viewport | number[] | area |
result? | vec3 | - |
Returns
vec3
the projected point
Method
unproject