58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
/**
|
|
* @author alteredq / http://alteredqualia.com/
|
|
*/
|
|
|
|
THREE.OrthographicCamera = function ( left, right, top, bottom, near, far ) {
|
|
|
|
THREE.Camera.call( this );
|
|
|
|
this.type = 'OrthographicCamera';
|
|
|
|
this.zoom = 1;
|
|
|
|
this.left = left;
|
|
this.right = right;
|
|
this.top = top;
|
|
this.bottom = bottom;
|
|
|
|
this.near = ( near !== undefined ) ? near : 0.1;
|
|
this.far = ( far !== undefined ) ? far : 2000;
|
|
|
|
this.updateProjectionMatrix();
|
|
|
|
};
|
|
|
|
THREE.OrthographicCamera.prototype = Object.create( THREE.Camera.prototype );
|
|
THREE.OrthographicCamera.prototype.constructor = THREE.OrthographicCamera;
|
|
|
|
THREE.OrthographicCamera.prototype.updateProjectionMatrix = function () {
|
|
|
|
var dx = ( this.right - this.left ) / ( 2 * this.zoom );
|
|
var dy = ( this.top - this.bottom ) / ( 2 * this.zoom );
|
|
var cx = ( this.right + this.left ) / 2;
|
|
var cy = ( this.top + this.bottom ) / 2;
|
|
|
|
this.projectionMatrix.makeOrthographic( cx - dx, cx + dx, cy + dy, cy - dy, this.near, this.far );
|
|
|
|
};
|
|
|
|
THREE.OrthographicCamera.prototype.clone = function () {
|
|
|
|
var camera = new THREE.OrthographicCamera();
|
|
|
|
THREE.Camera.prototype.clone.call( this, camera );
|
|
|
|
camera.zoom = this.zoom;
|
|
|
|
camera.left = this.left;
|
|
camera.right = this.right;
|
|
camera.top = this.top;
|
|
camera.bottom = this.bottom;
|
|
|
|
camera.near = this.near;
|
|
camera.far = this.far;
|
|
|
|
camera.projectionMatrix.copy( this.projectionMatrix );
|
|
|
|
return camera;
|
|
};
|