Cameras models and controllers for 3D rendering in PEX.
npm install pex-camimport {
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);- pex-cam
Re-export classes and factory functions
- Camera
An interface for cameras to extend
- OrbiterControls
Camera controls to orbit around a target
- OrthographicCamera ⇐
Camera A class to create an orthographic camera
- PerspectiveCamera ⇐
Camera A class to create a perspective camera
- Radians :
number - Degrees :
number - CameraView :
object - CameraOptions :
object - PerspectiveCameraOptions :
object - OrthographicCameraOptions :
object - OrbiterControlsOptions :
object
Re-export classes and factory functions
pex-cam.perspective ⇒ PerspectiveCamera
Factory function for perspective camera
Kind: static constant of pex-cam
| Param | Type |
|---|---|
| opts | CameraOptions | PerspectiveCameraOptions |
pex-cam.orthographic ⇒ OrthographicCamera
Factory function for orthographic camera
Kind: static constant of pex-cam
| Param | Type |
|---|---|
| opts | CameraOptions | OrthographicCameraOptions |
pex-cam.orbiter ⇒ OrbiterControls
Factory function for orbiter controls
Kind: static constant of pex-cam
| Param | Type |
|---|---|
| opts | OrbiterControlsOptions |
An interface for cameras to extend
Update the camera
Kind: instance method of Camera
| Param | Type |
|---|---|
| opts | CameraOptions |
Camera controls to orbit around a target
Kind: global class
Create an instance of OrbiterControls
| Param | Type |
|---|---|
| opts | OrbiterControlsOptions |
Update the control
Kind: instance method of OrbiterControls
| Param | Type |
|---|---|
| opts | OrbiterOptions |
Remove all event listeners
Kind: instance method of OrbiterControls
OrthographicCamera ⇐ Camera
A class to create an orthographic camera
Kind: global class
Extends: Camera
Create an instance of PerspectiveCamera
| Param | Type |
|---|---|
| opts | CameraOptions | OrthographicCameraOptions |
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
- PerspectiveCamera ⇐
Camera- new PerspectiveCamera(opts)
- .set(opts)
- .getViewRay(x, y, windowWidth, windowHeight) ⇒
module:pex-geom~ray - .getWorldRay(x, y, windowWidth, windowHeight) ⇒
module:pex-geom~ray
Create an instance of PerspectiveCamera
| Param | Type |
|---|---|
| opts | CameraOptions | PerspectiveCameraOptions |
Update the camera
Kind: instance method of PerspectiveCamera
Overrides: set
| Param | Type |
|---|---|
| opts | CameraOptions | PerspectiveCameraOptions |
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 |
Create a picking ray in world coordinates
Kind: instance method of PerspectiveCamera
| Param | Type |
|---|---|
| x | number |
| y | number |
| windowWidth | number |
| windowHeight | number |
Kind: global typedef Properties
| Name | Type |
|---|---|
| offset | module:pex-math~vec2 |
| size | module:pex-math~vec2 |
| totalSize | module:pex-math~vec2 |
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 |
|
Kind: global typedef Properties
| Name | Type | Default |
|---|---|---|
| [fov] | Radians |
Math.PI / 3 |
Kind: global typedef Properties
| Name | Type | Default |
|---|---|---|
| [left] | number |
-1 |
| [right] | number |
1 |
| [bottom] | number |
-1 |
| [top] | number |
1 |
| [zoom] | number |
1 |
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.01 |
| [maxDistance] | number |
Infinity |
| [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 |
MIT. See license file.