Spaces:
Running
Running
| /** | |
| * @author mrdoob / http://mrdoob.com/ | |
| * @author mikael emtinger / http://gomo.se/ | |
| * @author WestLangley / http://github.com/WestLangley | |
| */ | |
| import { Matrix4 } from '../math/Matrix4.js'; | |
| import { Object3D } from '../core/Object3D.js'; | |
| import { Vector3 } from '../math/Vector3.js'; | |
| function Camera() { | |
| Object3D.call( this ); | |
| this.type = 'Camera'; | |
| this.matrixWorldInverse = new Matrix4(); | |
| this.projectionMatrix = new Matrix4(); | |
| this.projectionMatrixInverse = new Matrix4(); | |
| } | |
| Camera.prototype = Object.assign( Object.create( Object3D.prototype ), { | |
| constructor: Camera, | |
| isCamera: true, | |
| copy: function ( source, recursive ) { | |
| Object3D.prototype.copy.call( this, source, recursive ); | |
| this.matrixWorldInverse.copy( source.matrixWorldInverse ); | |
| this.projectionMatrix.copy( source.projectionMatrix ); | |
| this.projectionMatrixInverse.copy( source.projectionMatrixInverse ); | |
| return this; | |
| }, | |
| getWorldDirection: function ( target ) { | |
| if ( target === undefined ) { | |
| console.warn( 'THREE.Camera: .getWorldDirection() target is now required' ); | |
| target = new Vector3(); | |
| } | |
| this.updateMatrixWorld( true ); | |
| var e = this.matrixWorld.elements; | |
| return target.set( - e[ 8 ], - e[ 9 ], - e[ 10 ] ).normalize(); | |
| }, | |
| updateMatrixWorld: function ( force ) { | |
| Object3D.prototype.updateMatrixWorld.call( this, force ); | |
| this.matrixWorldInverse.getInverse( this.matrixWorld ); | |
| }, | |
| clone: function () { | |
| return new this.constructor().copy( this ); | |
| } | |
| } ); | |
| export { Camera }; | |