import Camera from '../Camera'; /** * @constructor clay.camera.Orthographic * @extends clay.Camera */ var Orthographic = Camera.extend( /** @lends clay.camera.Orthographic# */ { /** * @type {number} */ left: -1, /** * @type {number} */ right: 1, /** * @type {number} */ near: -1, /** * @type {number} */ far: 1, /** * @type {number} */ top: 1, /** * @type {number} */ bottom: -1 }, /** @lends clay.camera.Orthographic.prototype */ { updateProjectionMatrix: function() { this.projectionMatrix.ortho(this.left, this.right, this.bottom, this.top, this.near, this.far); }, decomposeProjectionMatrix: function () { var m = this.projectionMatrix.array; this.left = (-1 - m[12]) / m[0]; this.right = (1 - m[12]) / m[0]; this.top = (1 - m[13]) / m[5]; this.bottom = (-1 - m[13]) / m[5]; this.near = -(-1 - m[14]) / m[10]; this.far = -(1 - m[14]) / m[10]; }, /** * @return {clay.camera.Orthographic} */ clone: function() { var camera = Camera.prototype.clone.call(this); camera.left = this.left; camera.right = this.right; camera.near = this.near; camera.far = this.far; camera.top = this.top; camera.bottom = this.bottom; return camera; } }); export default Orthographic;