pex-cam v2.8.0
pex-cam
Cameras models and controllers for 3D rendering in PEX.
Installation
npm install pex-cam
Usage
import {
perspective as createPerspectiveCamera,
orbiter as createOrbiter,
} from "pex-cam";
const perspectiveCamera = createPerspectiveCamera({
position: [2, 2, 2],
target: [0, -0.5, 0],
aspect: window.innerWidth / window.innerHeight,
});
const perspectiveOrbiter = createOrbiter({
camera: perspectiveCamera,
});
console.log(perspectiveCamera.projectionMatrix);
API
Modules
Classes
Typedefs
index
Re-export classes and factory functions
index.perspective ⇒ PerspectiveCamera
Factory function for perspective camera
Kind: static constant of index
Param | Type |
---|---|
opts | CameraOptions | PerspectiveCameraOptions |
index.orthographic ⇒ OrthographicCamera
Factory function for orthographic camera
Kind: static constant of index
Param | Type |
---|---|
opts | CameraOptions | OrthographicCameraOptions |
index.orbiter ⇒ OrbiterControls
Factory function for orbiter controls
Kind: static constant of index
Param | Type |
---|---|
opts | OrbiterControlsOptions |
Camera
An interface for cameras to extend
Kind: global class
camera.set(opts)
Update the camera
Kind: instance method of Camera
Param | Type |
---|---|
opts | CameraOptions |
OrbiterControls
Camera controls to orbit around a target
Kind: global class
new OrbiterControls(opts)
Create an instance of OrbiterControls
Param | Type |
---|---|
opts | OrbiterControlsOptions |
orbiterControls.set(opts)
Update the control
Kind: instance method of OrbiterControls
Param | Type |
---|---|
opts | OrbiterOptions |
orbiterControls.dispose()
Remove all event listeners
Kind: instance method of OrbiterControls
OrthographicCamera ⇐ Camera
A class to create an orthographic camera
Kind: global class Extends: Camera
new OrthographicCamera(opts)
Create an instance of PerspectiveCamera
Param | Type |
---|---|
opts | CameraOptions | OrthographicCameraOptions |
orthographicCamera.set(opts)
Update the camera
Kind: instance method of OrthographicCamera Overrides: set
Param | Type |
---|---|
opts | CameraOptions | OrthographicCameraOptions |
PerspectiveCamera ⇐ Camera
A class to create a perspective camera
Kind: global class Extends: Camera
new PerspectiveCamera(opts)
Create an instance of PerspectiveCamera
Param | Type |
---|---|
opts | CameraOptions | PerspectiveCameraOptions |
perspectiveCamera.set(opts)
Update the camera
Kind: instance method of PerspectiveCamera Overrides: set
Param | Type |
---|---|
opts | CameraOptions | PerspectiveCameraOptions |
perspectiveCamera.getViewRay(x, y, windowWidth, windowHeight) ⇒ ray
Create a picking ray in view (camera) coordinates
Kind: instance method of PerspectiveCamera
Param | Type | Description |
---|---|---|
x | number | mouse x |
y | number | mouse y |
windowWidth | number | |
windowHeight | number |
perspectiveCamera.getWorldRay(x, y, windowWidth, windowHeight) ⇒ ray
Create a picking ray in world coordinates
Kind: instance method of PerspectiveCamera
Param | Type |
---|---|
x | number |
y | number |
windowWidth | number |
windowHeight | number |
Radians : number
Kind: global typedef
Degrees : number
Kind: global typedef
CameraView : Object
Kind: global typedef Properties
Name | Type |
---|---|
offset | module:pex-math~vec2 |
size | module:pex-math~vec2 |
totalSize | module:pex-math~vec2 |
CameraOptions : Object
Kind: global typedef Properties
Name | Type | Default |
---|---|---|
projectionMatrix | module:pex-math~mat4 | mat4.create() |
invViewMatrix | module:pex-math~mat4 | mat4.create() |
viewMatrix | module:pex-math~mat4 | mat4.create() |
position | module:pex-math~vec3 | 0, 0, 3 |
target | module:pex-math~vec3 | 0, 0, 0 |
up | module:pex-math~vec3 | 0, 1, 0 |
aspect | number | 1 |
near | number | 0.1 |
far | number | 100 |
view | CameraView |
PerspectiveCameraOptions : Object
Kind: global typedef Properties
Name | Type | Default |
---|---|---|
fov | Radians | Math.PI / 3 |
OrthographicCameraOptions : Object
Kind: global typedef Properties
Name | Type | Default |
---|---|---|
left | number | -1 |
right | number | 1 |
bottom | number | -1 |
top | number | 1 |
zoom | number | 1 |
OrbiterControlsOptions : Object
Kind: global typedef Properties
Name | Type | Default |
---|---|---|
camera | Camera | |
element | HTMLElement | document |
easing | number | 0.1 |
zoom | boolean | true |
pan | boolean | true |
drag | boolean | true |
minDistance | number | 0.1 |
maxDistance | number | 10 |
minLat | Degrees | -89.5 |
maxLat | Degrees | 89.5 |
minLon | number | -Infinity |
maxLon | number | Infinity |
panSlowdown | number | 4 |
zoomSlowdown | number | 400 |
dragSlowdown | number | 4 |
autoUpdate | boolean | true |
License
MIT. See license file.
2 years ago
2 years ago
4 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago