pex-cam v2.8.0
pex-cam
Cameras models and controllers for 3D rendering in PEX.

Installation
npm install pex-camUsage
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.
3 years ago
3 years ago
5 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
10 years ago
10 years ago