Browse Source

Yet more code clean up.

Mr.doob 11 years ago
parent
commit
78336116b9
1 changed files with 34 additions and 32 deletions
  1. 34 32
      src/loaders/SceneLoader.js

+ 34 - 32
src/loaders/SceneLoader.js

@@ -382,43 +382,45 @@ THREE.SceneLoader.prototype = {
 							return target;
 						}
 
-						var intensity = objJSON.intensity;
 						var color = objJSON.color;
+						var intensity = objJSON.intensity;
 						var distance = objJSON.distance;
 						var position = objJSON.position;
 						var rotation = objJSON.rotation;
 
-						if (objJSON.type === "PointLight") {
-
-							light = new THREE.PointLight(color, intensity, distance);
-							light.position.fromArray(position);
-
-						} else if (objJSON.type === "SpotLight") {
-
-							light = new THREE.SpotLight(color, intensity, distance, 1);
-							light.angle = objJSON.angle;
-							light.position.fromArray(position);
-							var target = rotate(rotation[0], rotation[1], rotation[2],
-												[position[0], position[1] - distance, position[2]]);
-							light.target.position = new THREE.Vector3(target.elements[0], target.elements[1], target.elements[2]);
-
-						} else if (objJSON.type === "AmbientLight") {
-
-							light = new THREE.AmbientLight(color);
-
-						} else if (objJSON.type === "HemisphereLight") {
-
-							light = new THREE.DirectionalLight(color, intensity, distance);
-							var target = rotate(rotation[0], rotation[1], rotation[2],
-												[position[0], position[1] - distance, position[2]]);
-							light.target.position = new THREE.Vector3(target.elements[0], target.elements[1], target.elements[2]);
-
-						} else if (objJSON.type === "AreaLight") {
-
-							light = new THREE.AreaLight(color, intensity);
-							light.position.set(position[0], position[1], position[2]);
-							light.width = objJSON.size;
-							light.height = objJSON.size_y;
+						switch ( objJSON.type ) {
+
+							case 'AmbientLight':
+								light = new THREE.AmbientLight( color );
+								break;
+
+							case 'PointLight':
+								light = new THREE.PointLight( color, intensity, distance );
+								light.position.fromArray( position );
+								break;
+
+							case 'SpotLight':
+								light = new THREE.SpotLight( color, intensity, distance, 1 );
+								light.angle = objJSON.angle;
+								light.position.fromArray( position );
+								var target = rotate(rotation[0], rotation[1], rotation[2],
+													[position[0], position[1] - distance, position[2]]);
+								light.target.position.fromArray( target.elements );
+								break;
+
+							case 'HemisphereLight':
+								light = new THREE.DirectionalLight( color, intensity, distance );
+								var target = rotate(rotation[0], rotation[1], rotation[2],
+													[position[0], position[1] - distance, position[2]]);
+								light.target.position.fromArray( target.elements );
+								break;
+
+							case 'AreaLight':
+								light = new THREE.AreaLight(color, intensity);
+								light.position.fromArray( position[ );
+								light.width = objJSON.size;
+								light.height = objJSON.size_y;
+								break;
 
 						}