From f5b359ced315eaf234ed6a72c4f53b2d05ae60d0 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Tue, 28 Jan 2014 20:13:57 +0100 Subject: [PATCH] Implemented @WestLangley Vector3.reflect() from #4340. --- src/math/Vector3.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/math/Vector3.js b/src/math/Vector3.js index c2f7f9e0ff..9d88594af2 100644 --- a/src/math/Vector3.js +++ b/src/math/Vector3.js @@ -689,13 +689,14 @@ THREE.extend( THREE.Vector3.prototype, { reflect: function () { - var v1 = new THREE.Vector3(); + // reflect incident vector off plane orthogonal to normal + // normal is assumed to have unit length - return function ( vector ) { + var v1 = new THREE.Vector3(); - v1.copy( this ).projectOnVector( vector ).multiplyScalar( 2 ); + return function ( normal ) { - return this.subVectors( v1, this ); + return this.sub( v1.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) ); } -- GitLab