Thanks to visit codestin.com
Credit goes to github.com

Skip to content

pex-gl/pex-cam

pex-cam

npm version stability-stable npm minzipped size dependencies types Conventional Commits styled with prettier linted with eslint license

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

pex-cam

Re-export classes and factory functions

Classes

Camera

An interface for cameras to extend

OrbiterControls

Camera controls to orbit around a target

OrthographicCameraCamera

A class to create an orthographic camera

PerspectiveCameraCamera

A class to create a perspective camera

Typedefs

Radians : number
Degrees : number
CameraView : object
CameraOptions : object
PerspectiveCameraOptions : object
OrthographicCameraOptions : object
OrbiterControlsOptions : object

pex-cam

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

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) ⇒ module:pex-geom~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) ⇒ module:pex-geom~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.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

License

MIT. See license file.

About

Cameras models and controllers for 3D rendering in PEX.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •