Appearance
@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
Constructor
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
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
staticcurrent: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
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
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