Przeglądaj źródła

Editor: Added UUID fields to Geometry and Material panels.

Mr.doob 12 lat temu
rodzic
commit
6780f69569

+ 33 - 18
editor/js/Sidebar.Geometry.js

@@ -34,6 +34,23 @@ Sidebar.Geometry = function ( editor ) {
 	container.add( objectType );
 	container.add( new UI.Break(), new UI.Break() );
 
+	// uuid
+
+	var geometryUUIDRow = new UI.Panel();
+	var geometryUUID = new UI.Input().setWidth( '115px' ).setColor( '#444' ).setFontSize( '12px' ).setDisabled( true );
+	var geometryUUIDRenew = new UI.Button( '⟳' ).setMarginLeft( '7px' ).onClick( function () {
+
+		geometryUUID.setValue( THREE.Math.generateUUID() );
+		update();
+
+	} );
+
+	geometryUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ).setColor( '#666' ) );
+	geometryUUIDRow.add( geometryUUID );
+	geometryUUIDRow.add( geometryUUIDRenew );
+
+	container.add( geometryUUIDRow );
+
 	// name
 
 	var geometryNameRow = new UI.Panel();
@@ -71,29 +88,28 @@ Sidebar.Geometry = function ( editor ) {
 
 	//
 
-	var selected = null;
-
 	function update() {
 
-		if ( selected ) {
-
-			selected.name = geometryName.getValue();
+		var geometry = editor.selected.geometry;
 
-		}
+		geometry.uuid = geometryUUID.getValue();
+		geometry.name = geometryName.getValue();
 
 	}
 
-	function build( object ) {
+	function build() {
+
+		var object = editor.selected;
 
 		if ( object && object.geometry ) {
 
-			selected = object.geometry;
+			var geometry = object.geometry;
 
 			container.setDisplay( 'block' );
 
 			objectType.setValue( getGeometryInstanceName( object.geometry ) );
 
-			updateFields( selected );
+			updateFields( geometry );
 
 			//
 
@@ -104,37 +120,37 @@ Sidebar.Geometry = function ( editor ) {
 
 			}
 
-			if ( selected instanceof THREE.PlaneGeometry ) {
+			if ( geometry instanceof THREE.PlaneGeometry ) {
 
 				parameters = new Sidebar.Geometry.PlaneGeometry( signals, object );
 				container.add( parameters );
 
-			} else if ( selected instanceof THREE.CubeGeometry ) {
+			} else if ( geometry instanceof THREE.CubeGeometry ) {
 
 				parameters = new Sidebar.Geometry.CubeGeometry( signals, object );
 				container.add( parameters );
 
-			} else if ( selected instanceof THREE.CylinderGeometry ) {
+			} else if ( geometry instanceof THREE.CylinderGeometry ) {
 
 				parameters = new Sidebar.Geometry.CylinderGeometry( signals, object );
 				container.add( parameters );
 
-			} else if ( selected instanceof THREE.SphereGeometry ) {
+			} else if ( geometry instanceof THREE.SphereGeometry ) {
 
 				parameters = new Sidebar.Geometry.SphereGeometry( signals, object );
 				container.add( parameters );
 
-			} else if ( selected instanceof THREE.IcosahedronGeometry ) {
+			} else if ( geometry instanceof THREE.IcosahedronGeometry ) {
 
 				parameters = new Sidebar.Geometry.IcosahedronGeometry( signals, object );
 				container.add( parameters );
 
-			} else if ( selected instanceof THREE.TorusGeometry ) {
+			} else if ( geometry instanceof THREE.TorusGeometry ) {
 
 				parameters = new Sidebar.Geometry.TorusGeometry( signals, object );
 				container.add( parameters );
 
-			} else if ( selected instanceof THREE.TorusKnotGeometry ) {
+			} else if ( geometry instanceof THREE.TorusKnotGeometry ) {
 
 				parameters = new Sidebar.Geometry.TorusKnotGeometry( signals, object );
 				container.add( parameters );
@@ -143,8 +159,6 @@ Sidebar.Geometry = function ( editor ) {
 
 		} else {
 
-			selected = null;
-
 			container.setDisplay( 'none' );
 
 		}
@@ -158,6 +172,7 @@ Sidebar.Geometry = function ( editor ) {
 
 	function updateFields( geometry ) {
 
+		geometryUUID.setValue( geometry.uuid );
 		geometryName.setValue( geometry.name );
 		geometryVertices.setValue( geometry.vertices.length );
 		geometryFaces.setValue( geometry.faces.length );

+ 29 - 0
editor/js/Sidebar.Material.js

@@ -27,6 +27,23 @@ Sidebar.Material = function ( editor ) {
 	container.add( new UI.Text().setValue( 'MATERIAL' ).setColor( '#666' ) );
 	container.add( new UI.Break(), new UI.Break() );
 
+	// uuid
+
+	var materialUUIDRow = new UI.Panel();
+	var materialUUID = new UI.Input().setWidth( '115px' ).setColor( '#444' ).setFontSize( '12px' ).setDisabled( true );
+	var materialUUIDRenew = new UI.Button( '⟳' ).setMarginLeft( '7px' ).onClick( function () {
+
+		materialUUID.setValue( THREE.Math.generateUUID() );
+		update();
+
+	} );
+
+	materialUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialUUIDRow.add( materialUUID );
+	materialUUIDRow.add( materialUUIDRenew );
+
+	container.add( materialUUIDRow );
+
 	// name
 
 	var materialNameRow = new UI.Panel();
@@ -245,6 +262,12 @@ Sidebar.Material = function ( editor ) {
 
 		if ( material ) {
 
+			if ( material.uuid !== undefined ) {
+
+				object.uuid = objectUUID.getValue();
+
+			}
+
 			if ( material.name !== undefined ) {
 
 				material.name = materialName.getValue();
@@ -504,6 +527,12 @@ Sidebar.Material = function ( editor ) {
 
 			var material = object.material;
 
+			if ( material.uuid !== undefined ) {
+
+				materialUUID.setValue( material.uuid );
+
+			}
+
 			if ( material.name !== undefined ) {
 
 				materialName.setValue( material.name );

+ 1 - 1
editor/js/Sidebar.Object3D.js

@@ -11,7 +11,7 @@ Sidebar.Object3D = function ( editor ) {
 	container.add( objectType );
 	container.add( new UI.Break(), new UI.Break() );
 
-	// id
+	// uuid
 
 	var objectUUIDRow = new UI.Panel();
 	var objectUUID = new UI.Input().setWidth( '115px' ).setColor( '#444' ).setFontSize( '12px' ).setDisabled( true );