Forráskód Böngészése

GUI: Added support for .utf8 files.
Tweaked UTF8Loader while at it. Not sure what's this new Model() thing for...

Mr.doob 13 éve
szülő
commit
dfbc94ed21
2 módosított fájl, 26 hozzáadás és 15 törlés
  1. 13 11
      examples/js/loaders/UTF8Loader.js
  2. 13 4
      gui/index.html

+ 13 - 11
examples/js/loaders/UTF8Loader.js

@@ -17,14 +17,8 @@ THREE.UTF8Loader = function () {};
 
 THREE.UTF8Loader.prototype.load = function ( url, callback, metadata ) {
 
-	var xhr = new XMLHttpRequest(),
-		callbackProgress = null,
-
-		scale = metadata.scale !== undefined ? metadata.scale : 1,
-		offsetX = metadata.offsetX !== undefined ? metadata.offsetX : 0,
-		offsetY = metadata.offsetY !== undefined ? metadata.offsetY : 0,
-		offsetZ = metadata.offsetZ !== undefined ? metadata.offsetZ : 0;
-
+	var xhr = new XMLHttpRequest();
+	var callbackProgress = null;
 	var length = 0;
 
 	xhr.onreadystatechange = function() {
@@ -33,7 +27,8 @@ THREE.UTF8Loader.prototype.load = function ( url, callback, metadata ) {
 
 			if ( xhr.status == 200 || xhr.status == 0 ) {
 
-				THREE.UTF8Loader.prototype.createModel( xhr.responseText, callback, scale, offsetX, offsetY, offsetZ );
+				var geometry = THREE.UTF8Loader.prototype.parse( xhr.responseText, metadata );
+				callback( geometry );
 
 			} else {
 
@@ -143,7 +138,14 @@ THREE.UTF8Loader.prototype.decompressMesh = function ( str ) {
 
 };
 
-THREE.UTF8Loader.prototype.createModel = function ( data, callback, scale, offsetX, offsetY, offsetZ ) {
+THREE.UTF8Loader.prototype.parse = function ( data, metadata ) {
+
+	if ( metadata === undefined ) metadata = {};
+
+	var scale = metadata.scale !== undefined ? metadata.scale : 1;
+	var offsetX = metadata.offsetX !== undefined ? metadata.offsetX : 0;
+	var offsetY = metadata.offsetY !== undefined ? metadata.offsetY : 0;
+	var offsetZ = metadata.offsetZ !== undefined ? metadata.offsetZ : 0;
 
 	var Model = function ( texture_path ) {
 
@@ -321,6 +323,6 @@ THREE.UTF8Loader.prototype.createModel = function ( data, callback, scale, offse
 
 	Model.prototype = Object.create( THREE.Geometry.prototype );
 
-	callback( new Model() );
+	return new Model();
 
 };

+ 13 - 4
gui/index.html

@@ -121,7 +121,8 @@
 							} else {
 
 								var geometry = new THREE.GeometryLoader().parse( data );
-								var material = new THREE.MeshLambertMaterial( { color: 0xffffff } );
+								var material = new THREE.MeshLambertMaterial();
+
 								var mesh = new THREE.Mesh( geometry, material );
 
 								signals.objectAdded.dispatch( mesh );
@@ -143,8 +144,9 @@
 						case 'stl':
 
 							var geometry = new THREE.STLLoader().parse( contents );
+							var material = new THREE.MeshLambertMaterial();
 
-							var mesh = new THREE.Mesh( geometry );
+							var mesh = new THREE.Mesh( geometry, material );
 
 							signals.objectAdded.dispatch( mesh );
 							signals.objectSelected.dispatch( mesh );
@@ -153,14 +155,21 @@
 
 						case 'utf8':
 
-							// TODO
+							var geometry = new THREE.UTF8Loader().parse( contents );
+							var material = new THREE.MeshLambertMaterial();
+
+							var mesh = new THREE.Mesh( geometry, material );
+
+							signals.objectAdded.dispatch( mesh );
+							signals.objectSelected.dispatch( mesh );
 
 							break;
 
 						case 'vtk':
 
 							var geometry = new THREE.VTKLoader().parse( contents );
-							var material = new THREE.MeshLambertMaterial( { color: 0xffffff } );
+							var material = new THREE.MeshLambertMaterial();
+
 							var mesh = new THREE.Mesh( geometry, material );
 
 							signals.objectAdded.dispatch( mesh );