Browse Source

SceneLoader: Handling geometry and material names.

Mr.doob 12 years ago
parent
commit
a7482dc18d
1 changed files with 12 additions and 0 deletions
  1. 12 0
      src/loaders/SceneLoader.js

+ 12 - 0
src/loaders/SceneLoader.js

@@ -571,6 +571,8 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
 
 
 		return function ( geo, mat ) {
 		return function ( geo, mat ) {
 
 
+			geo.name = id;
+
 			handle_mesh( geo, mat, id );
 			handle_mesh( geo, mat, id );
 
 
 			counter_models -= 1;
 			counter_models -= 1;
@@ -626,6 +628,8 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
 
 
 		return function ( geo, mat ) {
 		return function ( geo, mat ) {
 
 
+			geo.name = id;
+
 			result.geometries[ id ] = geo;
 			result.geometries[ id ] = geo;
 			result.face_materials[ id ] = mat;
 			result.face_materials[ id ] = mat;
 
 
@@ -786,31 +790,37 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
 		if ( geoJSON.type === "cube" ) {
 		if ( geoJSON.type === "cube" ) {
 
 
 			geometry = new THREE.CubeGeometry( geoJSON.width, geoJSON.height, geoJSON.depth, geoJSON.widthSegments, geoJSON.heightSegments, geoJSON.depthSegments );
 			geometry = new THREE.CubeGeometry( geoJSON.width, geoJSON.height, geoJSON.depth, geoJSON.widthSegments, geoJSON.heightSegments, geoJSON.depthSegments );
+			geometry.name = geoID;
 			result.geometries[ geoID ] = geometry;
 			result.geometries[ geoID ] = geometry;
 
 
 		} else if ( geoJSON.type === "plane" ) {
 		} else if ( geoJSON.type === "plane" ) {
 
 
 			geometry = new THREE.PlaneGeometry( geoJSON.width, geoJSON.height, geoJSON.widthSegments, geoJSON.heightSegments );
 			geometry = new THREE.PlaneGeometry( geoJSON.width, geoJSON.height, geoJSON.widthSegments, geoJSON.heightSegments );
+			geometry.name = geoID;
 			result.geometries[ geoID ] = geometry;
 			result.geometries[ geoID ] = geometry;
 
 
 		} else if ( geoJSON.type === "sphere" ) {
 		} else if ( geoJSON.type === "sphere" ) {
 
 
 			geometry = new THREE.SphereGeometry( geoJSON.radius, geoJSON.widthSegments, geoJSON.heightSegments );
 			geometry = new THREE.SphereGeometry( geoJSON.radius, geoJSON.widthSegments, geoJSON.heightSegments );
+			geometry.name = geoID;
 			result.geometries[ geoID ] = geometry;
 			result.geometries[ geoID ] = geometry;
 
 
 		} else if ( geoJSON.type === "cylinder" ) {
 		} else if ( geoJSON.type === "cylinder" ) {
 
 
 			geometry = new THREE.CylinderGeometry( geoJSON.topRad, geoJSON.botRad, geoJSON.height, geoJSON.radSegs, geoJSON.heightSegs );
 			geometry = new THREE.CylinderGeometry( geoJSON.topRad, geoJSON.botRad, geoJSON.height, geoJSON.radSegs, geoJSON.heightSegs );
+			geometry.name = geoID;
 			result.geometries[ geoID ] = geometry;
 			result.geometries[ geoID ] = geometry;
 
 
 		} else if ( geoJSON.type === "torus" ) {
 		} else if ( geoJSON.type === "torus" ) {
 
 
 			geometry = new THREE.TorusGeometry( geoJSON.radius, geoJSON.tube, geoJSON.segmentsR, geoJSON.segmentsT );
 			geometry = new THREE.TorusGeometry( geoJSON.radius, geoJSON.tube, geoJSON.segmentsR, geoJSON.segmentsT );
+			geometry.name = geoID;
 			result.geometries[ geoID ] = geometry;
 			result.geometries[ geoID ] = geometry;
 
 
 		} else if ( geoJSON.type === "icosahedron" ) {
 		} else if ( geoJSON.type === "icosahedron" ) {
 
 
 			geometry = new THREE.IcosahedronGeometry( geoJSON.radius, geoJSON.subdivisions );
 			geometry = new THREE.IcosahedronGeometry( geoJSON.radius, geoJSON.subdivisions );
+			geometry.name = geoID;
 			result.geometries[ geoID ] = geometry;
 			result.geometries[ geoID ] = geometry;
 
 
 		} else if ( geoJSON.type in this.geometryHandlerMap ) {
 		} else if ( geoJSON.type in this.geometryHandlerMap ) {
@@ -1126,6 +1136,8 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
 
 
 		}
 		}
 
 
+		material.name = matID;
+
 		result.materials[ matID ] = material;
 		result.materials[ matID ] = material;
 
 
 	}
 	}