Browse Source

Moved Projector's .projectVector and .unprojectVector to Vector3 .projectCamera and .unprojectCamera.

Mr.doob 11 years ago
parent
commit
b37be63d1f
2 changed files with 39 additions and 23 deletions
  1. 7 23
      src/core/Projector.js
  2. 32 0
      src/math/Vector3.js

+ 7 - 23
src/core/Projector.js

@@ -6,35 +6,19 @@ THREE.Projector = function () {
 
 	this.projectVector = function ( vector, camera ) {
 
-		var viewProjectionMatrix = new THREE.Matrix4();
+		console.warn( 'THREE.Projector: .projectVector() is now vector.projectCamera().' );
 
-		return function ( vector, camera ) {
+		vector.projectCamera( camera );
 
-			camera.matrixWorldInverse.getInverse( camera.matrixWorld );
-
-			viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
-
-			return vector.applyProjection( viewProjectionMatrix );
-
-		};
-
-	}();
-
-	this.unprojectVector = function () {
-
-		var projectionMatrixInverse = new THREE.Matrix4();
-		var viewProjectionMatrix = new THREE.Matrix4();
-
-		return function ( vector, camera ) {
+	};
 
-			projectionMatrixInverse.getInverse( camera.projectionMatrix );
-			viewProjectionMatrix.multiplyMatrices( camera.matrixWorld, projectionMatrixInverse );
+	this.unprojectVector = function ( vector, camera ) {
 
-			return vector.applyProjection( viewProjectionMatrix );
+		console.warn( 'THREE.Projector: .unprojectVector() is now vector.unprojectCamera().' );
 
-		};
+		vector.unprojectCamera( camera );
 
-	}();
+	};
 
 	this.pickingRay = function ( vector, camera ) {
 

+ 32 - 0
src/math/Vector3.js

@@ -305,6 +305,38 @@ THREE.Vector3.prototype = {
 
 	},
 
+	projectCamera: function () {
+
+		var viewProjectionMatrix = new THREE.Matrix4();
+
+		return function ( vector, camera ) {
+
+			camera.matrixWorldInverse.getInverse( camera.matrixWorld );
+
+			viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
+
+			return this.applyProjection( viewProjectionMatrix );
+
+		};
+
+	}(),
+
+	unprojectCamera: function () {
+
+		var projectionMatrixInverse = new THREE.Matrix4();
+		var viewProjectionMatrix = new THREE.Matrix4();
+
+		return function ( vector, camera ) {
+
+			projectionMatrixInverse.getInverse( camera.projectionMatrix );
+			viewProjectionMatrix.multiplyMatrices( camera.matrixWorld, projectionMatrixInverse );
+
+			return this.applyProjection( viewProjectionMatrix );
+
+		};
+
+	}(),
+
 	transformDirection: function ( m ) {
 
 		// input: THREE.Matrix4 affine matrix