Browse Source

Renamed SceneLoader2/SceneExporter2 to ObjectLoader and ObjectExporter.
I wonder if we should also rename THREE.Object3D to THREE.Object...

Mr.doob 12 years ago
parent
commit
e3290e3f09

+ 16 - 22
editor/index.html

@@ -95,10 +95,10 @@
 		<!-- WIP -->
 
 		<script src="../src/renderers/WebGLRenderer3.js"></script>
-		<script src="../examples/js/loaders/SceneLoader2.js"></script>
+		<script src="../examples/js/loaders/ObjectLoader.js"></script>
 		<script src="../examples/js/exporters/GeometryExporter.js"></script>
 		<script src="../examples/js/exporters/MaterialExporter.js"></script>
-		<script src="../examples/js/exporters/SceneExporter2.js"></script>
+		<script src="../examples/js/exporters/ObjectExporter.js"></script>
 
 		<script src="js/libs/signals.min.js"></script>
 
@@ -307,30 +307,25 @@
 								signals.objectAdded.dispatch( mesh );
 								signals.objectSelected.dispatch( mesh );
 
-							} else if ( data.metadata.type === 'scene' ) {
-
-								var loader;
-
-								if ( data.metadata.version < 4 ) {
-
-									loader = new THREE.SceneLoader();
-									loader.parse( data, function ( result ) {
+							} else if ( data.metadata.type === 'object' ) {
 
-										var scene = result.scene;
+								var loader = new THREE.ObjectLoader();
+								var scene = loader.parse( data );
 
-										while ( scene.children.length > 0 ) {
+								while ( scene.children.length > 0 ) {
 
-											signals.objectAdded.dispatch( scene.children[ 0 ] );
+									signals.objectAdded.dispatch( scene.children[ 0 ] );
 
-										}
+								}
 
-									}, '' );
+							} else if ( data.metadata.type === 'scene' ) {
 
-								} else {
+								// DEPRECATED
 
-									loader = new THREE.SceneLoader2();
+								var loader = new THREE.SceneLoader();
+								loader.parse( data, function ( result ) {
 
-									var scene = loader.parse( data );
+									var scene = result.scene;
 
 									while ( scene.children.length > 0 ) {
 
@@ -338,7 +333,7 @@
 
 									}
 
-								}
+								}, '' );
 
 							}
 
@@ -515,8 +510,7 @@
 
 			if ( localStorage.threejsEditor !== undefined ) {
 
-				var loader = new THREE.SceneLoader2();
-
+				var loader = new THREE.ObjectLoader();
 				var scene = loader.parse( JSON.parse( localStorage.threejsEditor ) );
 
 				while ( scene.children.length > 0 ) {
@@ -528,7 +522,7 @@
 			}
 
 			var timeout;
-			var sceneExporter = new THREE.SceneExporter2();
+			var sceneExporter = new THREE.ObjectExporter();
 
 			signals.sceneChanged.add( function ( scene ) {
 

+ 30 - 3
editor/js/ui/Menubar.File.js

@@ -78,14 +78,26 @@ Menubar.File = function ( signals ) {
 
 	*/
 
-	// export scene 2
+	// export object
 
 	var option = new UI.Panel();
 	option.setClass( 'option' );
-	option.setTextContent( 'Export Scene 2' );
+	option.setTextContent( 'Export Object' );
 	option.onClick( function () {
 
-		exportScene( THREE.SceneExporter2 );
+		exportObject( THREE.ObjectExporter );
+
+	} );
+	options.add( option );
+
+	// export scene
+
+	var option = new UI.Panel();
+	option.setClass( 'option' );
+	option.setTextContent( 'Export Scene' );
+	option.onClick( function () {
+
+		exportScene( THREE.ObjectExporter );
 
 	} );
 	options.add( option );
@@ -134,6 +146,21 @@ Menubar.File = function ( signals ) {
 
 	};
 
+	var exportObject = function ( exporterClass ) {
+
+		var exporter = new exporterClass();
+
+		var output = JSON.stringify( exporter.parse( selectedObject ), null, '\t' );
+		output = output.replace( /[\n\t]+([\d\.e\-\[\]]+)/g, '$1' );
+
+		var blob = new Blob( [ output ], { type: 'text/plain' } );
+		var objectURL = URL.createObjectURL( blob );
+
+		window.open( objectURL, '_blank' );
+		window.focus();
+
+	};
+
 	var exportScene = function ( exporterClass ) {
 
 		var exporter = new exporterClass();

+ 8 - 8
examples/js/exporters/SceneExporter2.js → examples/js/exporters/ObjectExporter.js

@@ -2,21 +2,21 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
-THREE.SceneExporter2 = function () {};
+THREE.ObjectExporter = function () {};
 
-THREE.SceneExporter2.prototype = {
+THREE.ObjectExporter.prototype = {
 
-	constructor: THREE.SceneExporter2,
+	constructor: THREE.ObjectExporter,
 
-	parse: function ( scene ) {
+	parse: function ( object ) {
 
-		// console.log( scene );
+		// console.log( object );
 
 		var output = {
 			metadata: {
 				version: 4.0,
-				type: 'scene',
-				generator: 'SceneExporter'
+				type: 'object',
+				generator: 'ObjectExporter'
 			}
 		};
 
@@ -261,7 +261,7 @@ THREE.SceneExporter2.prototype = {
 
 		}
 
-		output.scene = parseObject( scene );
+		output.object = parseObject( object );
 
 		return output;
 

+ 4 - 4
examples/js/loaders/SceneLoader2.js → examples/js/loaders/ObjectLoader.js

@@ -2,11 +2,11 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
-THREE.SceneLoader2 = function () {};
+THREE.ObjectLoader = function () {};
 
-THREE.SceneLoader2.prototype = {
+THREE.ObjectLoader.prototype = {
 
-	constructor: THREE.SceneLoader2,
+	constructor: THREE.ObjectLoader,
 
 	addEventListener: THREE.EventDispatcher.prototype.addEventListener,
 	hasEventListener: THREE.EventDispatcher.prototype.hasEventListener,
@@ -280,7 +280,7 @@ THREE.SceneLoader2.prototype = {
 
 		}
 
-		return parseObject( json.scene );
+		return parseObject( json.object );
 
 	}