Browse Source

Editor: Material panel clean up.

Mr.doob 12 years ago
parent
commit
d163b1cc87
1 changed files with 35 additions and 35 deletions
  1. 35 35
      editor/js/Sidebar.Material.js

+ 35 - 35
editor/js/Sidebar.Material.js

@@ -236,12 +236,11 @@ Sidebar.Material = function ( editor ) {
 
 	//
 
-	var selected = null;
-	var selectedHasUvs = false;
-
 	function update() {
 
-		var material = selected.material;
+		var object = editor.selected;
+		var objectHasUvs = object.geometry.faceVertexUvs[ 0 ].length > 0;
+		var material = object.material;
 		var textureWarning = false;
 
 		if ( material ) {
@@ -255,7 +254,7 @@ Sidebar.Material = function ( editor ) {
 			if ( material instanceof materialClasses[ materialClass.getValue() ] == false ) {
 
 				material = new materialClasses[ materialClass.getValue() ]();
-				selected.material = material;
+				object.material = material;
 
 			}
 
@@ -300,13 +299,13 @@ Sidebar.Material = function ( editor ) {
 
 				var mapEnabled = materialMapEnabled.getValue() === true;
 
-				if ( selectedHasUvs )  {
+				if ( objectHasUvs )  {
 
 					material.map = mapEnabled ? materialMap.getValue() : null;
 					material.needsUpdate = true;
 
-					selected.geometry.buffersNeedUpdate = true;
-					selected.geometry.uvsNeedUpdate = true;
+					object.geometry.buffersNeedUpdate = true;
+					object.geometry.uvsNeedUpdate = true;
 
 				} else {
 
@@ -321,12 +320,12 @@ Sidebar.Material = function ( editor ) {
 
 				var lightMapEnabled = materialLightMapEnabled.getValue() === true;
 
-				if ( selectedHasUvs )  {
+				if ( objectHasUvs )  {
 
 					material.lightMap = lightMapEnabled ? materialLightMap.getValue() : null;
 					material.needsUpdate = true;
-					selected.geometry.buffersNeedUpdate = true;
-					selected.geometry.uvsNeedUpdate = true;
+					object.geometry.buffersNeedUpdate = true;
+					object.geometry.uvsNeedUpdate = true;
 
 				} else {
 
@@ -341,13 +340,13 @@ Sidebar.Material = function ( editor ) {
 
 				var bumpMapEnabled = materialBumpMapEnabled.getValue() === true;
 
-				if ( selectedHasUvs )  {
+				if ( objectHasUvs )  {
 
 					material.bumpMap = bumpMapEnabled ? materialBumpMap.getValue() : null;
 					material.bumpScale = materialBumpScale.getValue();
 					material.needsUpdate = true;
-					selected.geometry.buffersNeedUpdate = true;
-					selected.geometry.uvsNeedUpdate = true;
+					object.geometry.buffersNeedUpdate = true;
+					object.geometry.uvsNeedUpdate = true;
 
 				} else {
 
@@ -361,12 +360,12 @@ Sidebar.Material = function ( editor ) {
 
 				var normalMapEnabled = materialNormalMapEnabled.getValue() === true;
 
-				if ( selectedHasUvs )  {
+				if ( objectHasUvs )  {
 
 					material.normalMap = normalMapEnabled ? materialNormalMap.getValue() : null;
 					material.needsUpdate = true;
-					selected.geometry.buffersNeedUpdate = true;
-					selected.geometry.uvsNeedUpdate = true;
+					object.geometry.buffersNeedUpdate = true;
+					object.geometry.uvsNeedUpdate = true;
 
 				} else {
 
@@ -380,12 +379,12 @@ Sidebar.Material = function ( editor ) {
 
 				var specularMapEnabled = materialSpecularMapEnabled.getValue() === true;
 
-				if ( selectedHasUvs )  {
+				if ( objectHasUvs )  {
 
 					material.specularMap = specularMapEnabled ? materialSpecularMap.getValue() : null;
 					material.needsUpdate = true;
-					selected.geometry.buffersNeedUpdate = true;
-					selected.geometry.uvsNeedUpdate = true;
+					object.geometry.buffersNeedUpdate = true;
+					object.geometry.uvsNeedUpdate = true;
 
 				} else {
 
@@ -399,13 +398,13 @@ Sidebar.Material = function ( editor ) {
 
 				var envMapEnabled = materialEnvMapEnabled.getValue() === true;
 
-				if ( selectedHasUvs )  {
+				if ( objectHasUvs )  {
 
 					material.envMap = envMapEnabled ? materialEnvMap.getValue() : null;
 					material.reflectivity = materialReflectivity.getValue();
 					material.needsUpdate = true;
-					selected.geometry.buffersNeedUpdate = true;
-					selected.geometry.uvsNeedUpdate = true;
+					object.geometry.buffersNeedUpdate = true;
+					object.geometry.uvsNeedUpdate = true;
 
 				} else {
 
@@ -475,9 +474,11 @@ Sidebar.Material = function ( editor ) {
 
 		};
 
+		var object = editor.selected;
+
 		for ( var property in properties ) {
 
-			properties[ property ].setDisplay( selected.material[ property ] !== undefined ? '' : 'none' );
+			properties[ property ].setDisplay( object.material[ property ] !== undefined ? '' : 'none' );
 
 		}
 
@@ -499,9 +500,6 @@ Sidebar.Material = function ( editor ) {
 
 		if ( object && object.material ) {
 
-			selected = object;
-			selectedHasUvs = object.geometry.faceVertexUvs[ 0 ].length > 0;
-
 			container.setDisplay( '' );
 
 			var material = object.material;
@@ -552,14 +550,19 @@ Sidebar.Material = function ( editor ) {
 
 			if ( material.map !== undefined ) {
 
-				if ( selectedHasUvs ) {
+				materialMapEnabled.setValue( material.map !== null );
 
-					materialMapEnabled.setValue( material.map !== null );
-					materialMap.setValue( material.map );
+				if ( material.map !== null ) {
 
-				} else {
+					if ( object.geometry.faceVertexUvs[ 0 ].length > 0 ) {
 
-					console.warn( "Can't set texture, model doesn't have texture coordinates" );
+						materialMap.setValue( material.map );
+
+					} else {
+
+						console.warn( "Can't set texture, model doesn't have texture coordinates" );
+
+					}
 
 				}
 
@@ -632,9 +635,6 @@ Sidebar.Material = function ( editor ) {
 
 		} else {
 
-			selected = null;
-			selectedHasUvs = false;
-
 			container.setDisplay( 'none' );
 
 		}