Browse Source

Merge pull request #10863 from donmccurdy/test-fix-math-and-lights

Fix light and math tests.
Mr.doob 8 years ago
parent
commit
ebba86ad80

+ 11 - 0
src/lights/RectAreaLight.js

@@ -43,6 +43,17 @@ RectAreaLight.prototype = Object.assign( Object.create( Light.prototype ), {
 
 		return this;
 
+	},
+
+	toJSON: function ( meta ) {
+
+		var data = Light.prototype.toJSON.call( this, meta );
+
+		data.object.width = this.width;
+		data.object.height = this.height;
+
+		return data;
+
 	}
 
 } );

+ 7 - 0
src/loaders/ObjectLoader.js

@@ -38,6 +38,7 @@ import { SpotLight } from '../lights/SpotLight';
 import { PointLight } from '../lights/PointLight';
 import { DirectionalLight } from '../lights/DirectionalLight';
 import { AmbientLight } from '../lights/AmbientLight';
+import { RectAreaLight } from '../lights/RectAreaLight';
 import { OrthographicCamera } from '../cameras/OrthographicCamera';
 import { PerspectiveCamera } from '../cameras/PerspectiveCamera';
 import { Scene } from '../scenes/Scene';
@@ -626,6 +627,12 @@ Object.assign( ObjectLoader.prototype, {
 
 					break;
 
+				case 'RectAreaLight':
+
+					object = new RectAreaLight( data.color, data.intensity, data.width, data.height );
+
+					break;
+
 				case 'SpotLight':
 
 					object = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );

+ 4 - 5
test/unit/src/math/Triangle.js

@@ -96,11 +96,10 @@ QUnit.test( "normal" , function( assert ) {
 QUnit.test( "plane" , function( assert ) {
 	var a = new THREE.Triangle();
 
-	// artificial normal is created in this case.
-	assert.ok( a.plane().distanceToPoint( a.a ) == 0, "Passed!" );
-	assert.ok( a.plane().distanceToPoint( a.b ) == 0, "Passed!" );
-	assert.ok( a.plane().distanceToPoint( a.c ) == 0, "Passed!" );
-	assert.ok( a.plane().normal.equals( a.normal() ), "Passed!" );
+	assert.ok( isNaN( a.plane().distanceToPoint( a.a ) ), "Passed!" );
+	assert.ok( isNaN( a.plane().distanceToPoint( a.b ) ), "Passed!" );
+	assert.ok( isNaN( a.plane().distanceToPoint( a.c ) ), "Passed!" );
+	assert.propEqual( a.plane().normal, {x: NaN, y: NaN, z: NaN}, "Passed!" );
 
 	a = new THREE.Triangle( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 1, 0, 0 ), new THREE.Vector3( 0, 1, 0 ) );
 	assert.ok( a.plane().distanceToPoint( a.a ) == 0, "Passed!" );

+ 1 - 1
test/unit/src/math/Vector2.js

@@ -225,7 +225,7 @@ QUnit.test( "setLength" , function( assert ) {
 	a = new THREE.Vector2( 0, 0 );
 	assert.ok( a.length() == 0, "Passed!" );
 	a.setLength( y );
-	assert.ok( a.length() == 0, "Passed!" );
+	assert.ok( isNaN( a.length() ), "Passed!" );
 });
 
 QUnit.test( "lerp/clone", function( assert ) {

+ 1 - 1
test/unit/src/math/Vector3.js

@@ -235,7 +235,7 @@ QUnit.test( "setLength" , function( assert ) {
 	a = new THREE.Vector3( 0, 0, 0 );
 	assert.ok( a.length() == 0, "Passed!" );
 	a.setLength( y );
-	assert.ok( a.length() == 0, "Passed!" );
+	assert.ok( isNaN( a.length() ), "Passed!" );
 
 });
 

+ 7 - 7
test/unit/src/math/Vector4.js

@@ -132,9 +132,9 @@ QUnit.test( "multiply/divide", function( assert ) {
 
 	b.multiplyScalar( -2 );
 	assert.ok( b.x == 2*x, "Passed!" );
-	assert.ok( b.y == 2*y, "Passed!" );	
-	assert.ok( b.z == 2*z, "Passed!" );	
-	assert.ok( b.w == 2*w, "Passed!" );	
+	assert.ok( b.y == 2*y, "Passed!" );
+	assert.ok( b.z == 2*z, "Passed!" );
+	assert.ok( b.w == 2*w, "Passed!" );
 
 	a.divideScalar( -2 );
 	assert.ok( a.x == x, "Passed!" );
@@ -202,7 +202,7 @@ QUnit.test( "length/lengthSq", function( assert ) {
 	var c = new THREE.Vector4( 0, 0, z, 0 );
 	var d = new THREE.Vector4( 0, 0, 0, w );
 	var e = new THREE.Vector4( 0, 0, 0, 0 );
-	
+
 	assert.ok( a.length() == x, "Passed!" );
 	assert.ok( a.lengthSq() == x*x, "Passed!" );
 	assert.ok( b.length() == y, "Passed!" );
@@ -224,7 +224,7 @@ QUnit.test( "normalize" , function( assert ) {
 	var b = new THREE.Vector4( 0, -y, 0, 0 );
 	var c = new THREE.Vector4( 0, 0, z, 0 );
 	var d = new THREE.Vector4( 0, 0, 0, -w );
-	
+
 	a.normalize();
 	assert.ok( a.length() == 1, "Passed!" );
 	assert.ok( a.x == 1, "Passed!" );
@@ -249,7 +249,7 @@ QUnit.test( "distanceTo/distanceToSquared", function() {
 	var c = new THREE.Vector4( 0, 0, z, 0 );
 	var d = new THREE.Vector4( 0, 0, 0, -w );
 	var e = new THREE.Vector4();
-	
+
 	ok( a.distanceTo( e ) == x, "Passed!" );
 	ok( a.distanceToSquared( e ) == x*x, "Passed!" );
 
@@ -275,7 +275,7 @@ QUnit.test( "setLength" , function( assert ) {
 	a = new THREE.Vector4( 0, 0, 0, 0 );
 	assert.ok( a.length() == 0, "Passed!" );
 	a.setLength( y );
-	assert.ok( a.length() == 0, "Passed!" );
+	assert.ok( isNaN( a.length() ), "Passed!" );
 });
 
 QUnit.test( "lerp/clone", function( assert ) {