Browse Source

Merge pull request #14836 from shyf1301/work

Box3: Fixed bug in .intersectsPlane().
Mr.doob 7 years ago
parent
commit
e82730f1c8
2 changed files with 15 additions and 3 deletions
  1. 1 1
      src/math/Box3.js
  2. 14 2
      test/unit/src/math/Box3.tests.js

+ 1 - 1
src/math/Box3.js

@@ -384,7 +384,7 @@ Object.assign( Box3.prototype, {
 
 		}
 
-		return ( min <= plane.constant && max >= plane.constant );
+		return ( min <= - plane.constant && max >= - plane.constant );
 
 	},
 

+ 14 - 2
test/unit/src/math/Box3.tests.js

@@ -409,10 +409,22 @@ export default QUnit.module( 'Maths', () => {
 			var b = new Plane( new Vector3( 0, 1, 0 ), 1 );
 			var c = new Plane( new Vector3( 0, 1, 0 ), 1.25 );
 			var d = new Plane( new Vector3( 0, - 1, 0 ), 1.25 );
-
-			assert.ok( a.intersectsPlane( b ), "Passed!" );
+			var e = new Plane( new Vector3( 0, 1, 0 ), 0.25 );
+			var f = new Plane( new Vector3( 0, 1, 0 ), - 0.25 );
+			var g = new Plane( new Vector3( 0, 1, 0 ), - 0.75 );
+			var h = new Plane( new Vector3( 0, 1, 0 ), - 1 );
+			var i = new Plane( new Vector3( 1, 1, 1 ).normalize(), - 1.732 );
+			var j = new Plane( new Vector3( 1, 1, 1 ).normalize(), - 1.733 );
+
+			assert.ok( ! a.intersectsPlane( b ), "Passed!" );
 			assert.ok( ! a.intersectsPlane( c ), "Passed!" );
 			assert.ok( ! a.intersectsPlane( d ), "Passed!" );
+			assert.ok( ! a.intersectsPlane( e ), "Passed!" );
+			assert.ok( a.intersectsPlane( f ), "Passed!" );
+			assert.ok( a.intersectsPlane( g ), "Passed!" );
+			assert.ok( a.intersectsPlane( h ), "Passed!" );
+			assert.ok( a.intersectsPlane( i ), "Passed!" );
+			assert.ok( ! a.intersectsPlane( j ), "Passed!" );
 
 		} );