Browse Source

Editor: Using internal counters instead of *.id.

Mr.doob 12 years ago
parent
commit
7d982a5765
1 changed files with 37 additions and 24 deletions
  1. 37 24
      editor/js/Editor.js

+ 37 - 24
editor/js/Editor.js

@@ -1,9 +1,15 @@
 var Editor = function ( scene ) {
 var Editor = function ( scene ) {
 
 
-  this.geometries = {}; 
-  this.materials = {}; 
-  this.textures = {}; 
+  this.geometries = {};
+  this.materials = {};
+  this.textures = {};
   this.objects = {};
   this.objects = {};
+
+  this.geometriesCount = 0;
+  this.materialsCount = 0;
+  this.texturesCount = 0;
+  this.objectsCount = 0;
+
   this.selected = {};
   this.selected = {};
   this.helpers = {};
   this.helpers = {};
 
 
@@ -44,6 +50,8 @@ Editor.prototype = {
 
 
   createObject: function( type, parameters, material ) {
   createObject: function( type, parameters, material ) {
 
 
+    this.objectsCount ++;
+
     type = type ? type.toLowerCase() : null;
     type = type ? type.toLowerCase() : null;
 
 
     var object;
     var object;
@@ -63,14 +71,14 @@ Editor.prototype = {
     if ( !type ) {
     if ( !type ) {
 
 
       object = new THREE.Object3D();
       object = new THREE.Object3D();
-      object.name = parameters.name ? parameters.name : 'Group ' + object.id;
+      object.name = parameters.name ? parameters.name : 'Group ' + this.objectsCount;
 
 
     } else if ( type == 'plane' ) {
     } else if ( type == 'plane' ) {
 
 
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
       object.rotation.x = - Math.PI/2;
       object.rotation.x = - Math.PI/2;
 
 
@@ -79,42 +87,42 @@ Editor.prototype = {
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
     } else if ( type == 'cylinder' ) {
     } else if ( type == 'cylinder' ) {
 
 
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
     } else if ( type == 'sphere' ) {
     } else if ( type == 'sphere' ) {
 
 
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
     } else if ( type == 'icosahedron' ) {
     } else if ( type == 'icosahedron' ) {
 
 
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
     } else if ( type == 'torus' ) {
     } else if ( type == 'torus' ) {
 
 
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
     } else if ( type == 'torusknot' ) {
     } else if ( type == 'torusknot' ) {
 
 
       geometry = this.createGeometry( type, parameters );
       geometry = this.createGeometry( type, parameters );
 
 
       object = new THREE.Mesh( geometry, this.defaultMaterial );
       object = new THREE.Mesh( geometry, this.defaultMaterial );
-      object.name = name ? name : type + object.id;
+      object.name = name ? name : type + this.objectsCount;
 
 
     } else if ( type == 'pointlight' ) {
     } else if ( type == 'pointlight' ) {
 
 
@@ -123,7 +131,7 @@ Editor.prototype = {
       distance = distance ? distance : 0;
       distance = distance ? distance : 0;
 
 
       var object = new THREE.PointLight( color, intensity, distance );
       var object = new THREE.PointLight( color, intensity, distance );
-      object.name = name ? name : 'PointLight ' + object.id;
+      object.name = name ? name : 'PointLight ' + this.objectsCount;
 
 
     } else if ( type == 'spotlight' ) {
     } else if ( type == 'spotlight' ) {
 
 
@@ -134,7 +142,7 @@ Editor.prototype = {
       exponent = exponent ? exponent : 10;
       exponent = exponent ? exponent : 10;
 
 
       var object = new THREE.SpotLight( color, intensity, distance, angle, exponent );
       var object = new THREE.SpotLight( color, intensity, distance, angle, exponent );
-      object.name =  name ? name : 'SpotLight ' + object.id;
+      object.name =  name ? name : 'SpotLight ' + this.objectsCount;
       object.target.name = object.name + ' Target';
       object.target.name = object.name + ' Target';
 
 
       object.position.set( 0, 1, 0 ).multiplyScalar( 200 );
       object.position.set( 0, 1, 0 ).multiplyScalar( 200 );
@@ -145,7 +153,7 @@ Editor.prototype = {
       intensity = intensity ? intensity : 1;
       intensity = intensity ? intensity : 1;
 
 
       var object = new THREE.DirectionalLight( color, intensity );
       var object = new THREE.DirectionalLight( color, intensity );
-      object.name = name ? name : 'DirectionalLight ' + object.id;
+      object.name = name ? name : 'DirectionalLight ' + this.objectsCount;
       object.target.name = object.name + ' Target';
       object.target.name = object.name + ' Target';
 
 
       object.position.set( 1, 1, 1 ).multiplyScalar( 200 );
       object.position.set( 1, 1, 1 ).multiplyScalar( 200 );
@@ -157,7 +165,7 @@ Editor.prototype = {
       intensity = intensity ? intensity : 1;
       intensity = intensity ? intensity : 1;
 
 
       var object = new THREE.HemisphereLight( color, groundColor, intensity );
       var object = new THREE.HemisphereLight( color, groundColor, intensity );
-      object.name = name ? name : 'HemisphereLight ' + object.id;
+      object.name = name ? name : 'HemisphereLight ' + this.objectsCount;
 
 
       object.position.set( 1, 1, 1 ).multiplyScalar( 200 );
       object.position.set( 1, 1, 1 ).multiplyScalar( 200 );
 
 
@@ -166,7 +174,7 @@ Editor.prototype = {
       color = color ? color : 0x222222;
       color = color ? color : 0x222222;
 
 
       var object = new THREE.AmbientLight( color );
       var object = new THREE.AmbientLight( color );
-      object.name = name ? name : 'AmbientLight ' + object.id;
+      object.name = name ? name : 'AmbientLight ' + this.objectsCount;
 
 
     }
     }
 
 
@@ -178,10 +186,12 @@ Editor.prototype = {
 
 
   createGeometry: function( type, parameters ) {
   createGeometry: function( type, parameters ) {
 
 
+    this.geometriesCount ++;
+
     type = type ? type : null;
     type = type ? type : null;
     parameters = parameters ? parameters : {};
     parameters = parameters ? parameters : {};
 
 
-    var name = parameters.name ? parameters.name : type + 'Geometry';
+    var name = parameters.name ? parameters.name : type + 'Geometry ' + this.geometriesCount;
     var width = parameters.width ? parameters.width : null;
     var width = parameters.width ? parameters.width : null;
     var height = parameters.height ? parameters.height : null;
     var height = parameters.height ? parameters.height : null;
     var depth = parameters.depth ? parameters.depth : null;
     var depth = parameters.depth ? parameters.depth : null;
@@ -295,34 +305,35 @@ Editor.prototype = {
   },
   },
 
 
   createMaterial: function( type, parameters ) {
   createMaterial: function( type, parameters ) {
-
-    var material;
     
     
+    this.materialsCount ++;
+
     type = type ? type.toLowerCase() : 'phong';
     type = type ? type.toLowerCase() : 'phong';
 
 
     parameters = parameters ? parameters : {};
     parameters = parameters ? parameters : {};
 
 
+    var material;
     var name = parameters.name ? parameters.name : null;
     var name = parameters.name ? parameters.name : null;
 
 
     if ( type == 'phong' ) {
     if ( type == 'phong' ) {
 
 
       material = new THREE.MeshPhongMaterial( parameters );
       material = new THREE.MeshPhongMaterial( parameters );
-      material.name = name ? name : 'Phong Material ' + material.id;
+      material.name = name ? name : 'Phong Material ' + this.materialsCount;
 
 
     } else if ( type == 'lambert' ) {
     } else if ( type == 'lambert' ) {
 
 
       material = new THREE.MeshLambertMaterial( parameters );
       material = new THREE.MeshLambertMaterial( parameters );
-      material.name = name ? name : 'Lambert Material ' + material.id;
+      material.name = name ? name : 'Lambert Material ' + this.materialsCount;
 
 
     } else if ( type == 'normal' ) {
     } else if ( type == 'normal' ) {
 
 
       material = new THREE.MeshNormalMaterial( parameters );
       material = new THREE.MeshNormalMaterial( parameters );
-      material.name = name ? name : 'Normal Material ' + material.id;
+      material.name = name ? name : 'Normal Material ' + this.materialsCount;
 
 
     } else if ( type == 'basic' ) {
     } else if ( type == 'basic' ) {
 
 
       material = new THREE.MeshBasicMaterial( parameters );
       material = new THREE.MeshBasicMaterial( parameters );
-      material.name = name ? name : 'Basic Material ' + material.id;
+      material.name = name ? name : 'Basic Material ' + this.materialsCount;
 
 
     }
     }
 
 
@@ -333,6 +344,8 @@ Editor.prototype = {
 
 
   createTexture: function( image, parameters ) {
   createTexture: function( image, parameters ) {
 
 
+    this.texturesCount ++;
+
     image = image ? image : '../examples/textures/ash_uvgrid01.jpg';
     image = image ? image : '../examples/textures/ash_uvgrid01.jpg';
 
 
     parameters = parameters ? parameters : {};
     parameters = parameters ? parameters : {};
@@ -340,7 +353,7 @@ Editor.prototype = {
     // TODO: implement parameters
     // TODO: implement parameters
 
 
     var texture = THREE.ImageUtils.loadTexture( image );
     var texture = THREE.ImageUtils.loadTexture( image );
-    texture.name = parameters.name ? parameters.name : 'Texture ' + texture.id;
+    texture.name = parameters.name ? parameters.name : 'Texture ' + this.texturesCount;
 
 
     this.addTexture( texture );
     this.addTexture( texture );
     return texture;
     return texture;