@urban-toolkit/autk-core / Camera
Class: Camera
Defined in: camera.ts:59
Interactive 3-DOF camera for orbit-style navigation.
The camera tracks world-space eye, look-at, and up vectors together with the current viewport size. Call the navigation methods to adjust state, then call Camera.update to rebuild the matrices. Projection uses reversed-Z depth mapping for improved precision at distance.
Example
const camera = new Camera();
camera.resize(width, height);
camera.zoom(-1, 0.5, 0.5);
camera.update();Constructors
Constructor
new Camera(
params?):Camera
Defined in: camera.ts:96
Creates a camera with the provided initial state.
Parameters
params?
CameraData = Camera.defaultParams
Initial camera position and orientation (defaults to [0, 1, 0] up, 10k units above origin).
Returns
Camera
Throws
Never throws.
Example
const camera = new Camera();
const custom = new Camera({ eye: [0, 0, 500], lookAt: [0, 0, 0], up: [0, 1, 0] });Methods
getEye()
getEye(): [
number,number,number]
Defined in: camera.ts:136
Returns
[number, number, number]
getFar()
getFar():
number
Defined in: camera.ts:156
Returns
number
getFovyRadians()
getFovyRadians():
number
Defined in: camera.ts:148
Returns
number
getLookAt()
getLookAt(): [
number,number,number]
Defined in: camera.ts:140
Returns
[number, number, number]
getModelViewMatrix()
getModelViewMatrix():
mat4
Defined in: camera.ts:195
Returns the current view (model-view) matrix.
Returns
mat4
The view matrix in column-major mat4.
Throws
Never throws.
Example
camera.update();
const view = camera.getModelViewMatrix();getNear()
getNear():
number
Defined in: camera.ts:152
Returns
number
getProjectionMatrix()
getProjectionMatrix():
mat4
Defined in: camera.ts:132
Returns the current projection matrix.
Returns
mat4
The projection matrix in column-major mat4.
Throws
Never throws.
Example
camera.update();
const proj = camera.getProjectionMatrix();getUp()
getUp(): [
number,number,number]
Defined in: camera.ts:144
Returns
[number, number, number]
getViewportHeight()
getViewportHeight():
number
Defined in: camera.ts:160
Returns
number
getViewportWidth()
getViewportWidth():
number
Defined in: camera.ts:164
Returns
number
getViewProjectionMatrix()
getViewProjectionMatrix():
Float32Array
Defined in: camera.ts:168
Returns
Float32Array
getWorldRayDirection()
getWorldRayDirection(
x,y): [number,number,number]
Defined in: camera.ts:172
Parameters
x
number
y
number
Returns
[number, number, number]
getZoomScale()
getZoomScale():
number
Defined in: camera.ts:302
Returns a scalar proportional to the current map zoom for marker sizing.
This uses the camera eye height, which is the quantity changed by the map zoom interaction and therefore tracks zoom more reliably than the normalized eye-direction vector.
Returns
number
pitch()
pitch(
delta):void
Defined in: camera.ts:282
Tilts the camera up or down (elevation angle).
Parameters
delta
number
Tilt angle in radians. Positive values tilt upward.
Returns
void
Throws
Never throws.
Example
camera.pitch(-0.3); // tilt downward ~17°
camera.update();resetCamera()
resetCamera(
wUp,wLookAt,wEye):void
Defined in: camera.ts:111
Resets the camera to a new position, orientation, and default projection.
Parameters
wUp
number[]
World-space up vector.
wLookAt
number[]
Point to look at in world space.
wEye
number[]
Eye position in world space.
Returns
void
Throws
Never throws.
Example
camera.resetCamera([0, 1, 0], [100, 200, 0], [100, 200, 500]);
camera.update();resize()
resize(
width,height):void
Defined in: camera.ts:210
Updates viewport size and recomputes matrices in one call.
Pass drawable canvas pixel size, not CSS size.
Parameters
width
number
Viewport width in pixels.
height
number
Viewport height in pixels.
Returns
void
Throws
Never throws.
Example
camera.resize(1920, 1080); // calls update() internallysetOrthographicBounds()
setOrthographicBounds(
left,right,bottom,top):void
Defined in: camera.ts:177
Parameters
left
number
right
number
bottom
number
top
number
Returns
void
translate()
translate(
dx,dy):void
Defined in: camera.ts:245
Pans the camera in screen space, scaled by the current view distance.
Parameters
dx
number
Normalized horizontal drag delta (0–1).
dy
number
Normalized vertical drag delta (0–1).
Returns
void
Throws
Never throws.
Example
camera.translate(0.1, 0); // pan right
camera.update();update()
update():
void
Defined in: camera.ts:316
Rebuilds view and projection matrices from the current camera state.
Uses reversed-Z depth for improved precision at long range.
Returns
void
Throws
Never throws.
Example
camera.zoom(-1, 0.5, 0.5);
camera.update(); // rebuild matrices after navigation changeyaw()
yaw(
delta):void
Defined in: camera.ts:267
Rotates the camera around the world Z-axis (compass bearing).
Parameters
delta
number
Rotation angle in radians.
Returns
void
Throws
Never throws.
Example
camera.yaw(Math.PI / 4); // rotate 45° clockwise
camera.update();zoom()
zoom(
delta,x,y):void
Defined in: camera.ts:227
Zooms the camera at the cursor position, preserving it in world space.
Parameters
delta
number
Normalized scroll delta (positive = zoom out, negative = zoom in).
x
number
Normalized cursor X position (0–1, left to right).
y
number
Normalized cursor Y position (0–1, bottom to top).
Returns
void
Throws
Never throws.
Example
camera.zoom(-1, 0.5, 0.5); // zoom in at screen center
camera.update();buildViewProjection()
staticbuildViewProjection(p):Float32Array
Defined in: camera.ts:338
Builds a stateless view-projection matrix from explicit parameters.
Parameters
p
Camera and projection parameters.
Returns
Float32Array
Column-major Float32Array of length 16.
Throws
Never throws.
Example
const vp = Camera.buildViewProjection({
eye: [0, 0, 500], lookAt: [0, 0, 0], up: [0, 1, 0],
fovDeg: 45, aspect: 16/9, near: 0.1, far: 10000,
});