diff options
Diffstat (limited to 'assets/javascripts/rectangles/engine/rooms/projector.js')
| -rw-r--r-- | assets/javascripts/rectangles/engine/rooms/projector.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/assets/javascripts/rectangles/engine/rooms/projector.js b/assets/javascripts/rectangles/engine/rooms/projector.js new file mode 100644 index 0000000..2eac314 --- /dev/null +++ b/assets/javascripts/rectangles/engine/rooms/projector.js @@ -0,0 +1,30 @@ + +rooms.projector = new function(){ + + projector = new THREE.Projector(); + vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 ); + projector.unprojectVector( vector, camera ); + + raycaster = new THREE.Raycaster( camera.position, vector.sub( camera.position ).normalize() ); + intersects = raycaster.intersectObjects( scene.children, true ); + +} + + + +THREE.Projector = function () { + + _viewProjectionMatrix = new THREE.Matrix4(), + + this.unprojectVector = function ( vector, camera ) { + camera.projectionMatrixInverse.getInverse( camera.projectionMatrix ); + + _viewProjectionMatrix.multiplyMatrices( + camera.matrixWorld, + camera.projectionMatrixInverse + ); + + return vector.applyProjection( _viewProjectionMatrix ); + }; + +} |
