whs
Version:
Super-fast 3D framework for Web Applications & Games. Based on Three.js
65 lines (58 loc) • 1.33 kB
JavaScript
import {CubeCamera as CubeCameraNative} from 'three';
import {CameraComponent} from '../../core/CameraComponent';
/**
* @class CubeCamera
* @category components/cameras
* @description Creates 6 cameras that render to a WebGLRenderTargetCube
* @param {Object} [params] - The parameters object.
* @memberof module:components/cameras
* @extends module:core.CameraComponent
* @example <caption>Creates a CubeCamera and set it as app's camera</caption>
* const camera = new CubeCamera({
* camera: {
* cubeResolution: 256
* },
*
* position: {
* x: 0,
* y: 100,
* z: 0
* }
* });
*
* app.camera = camera;
*/
class CubeCamera extends CameraComponent {
/**
* Default values for parameters
* @member {Object} module:components/cameras.CubeCamera#defaults
* @static
* @default <pre>
* {
* camera: {
* near: 1,
* far: 1000,
* cubeResolution: 128
* }
* }</pre>
*/
static defaults = {
...CameraComponent.defaults,
near: 1,
far: 1000,
cubeResolution: 128
};
constructor(params = {}) {
super(params, CubeCamera.defaults);
}
build(params = {}) {
return this.applyBridge({camera: new CubeCameraNative(
params.near,
params.far,
params.cubeResolution
)}).camera;
}
}
export {
CubeCamera
};