Browse Source

Editor: Added support for BufferGeometries.

Mr.doob 12 years ago
parent
commit
e13dc297fd
2 changed files with 42 additions and 13 deletions
  1. 14 3
      editor/js/Sidebar.Geometry.js
  2. 28 10
      editor/js/Viewport.js

+ 14 - 3
editor/js/Sidebar.Geometry.js

@@ -21,7 +21,8 @@ Sidebar.Geometry = function ( editor ) {
 		"TorusGeometry": THREE.TorusGeometry,
 		"TorusKnotGeometry": THREE.TorusKnotGeometry,
 		"TubeGeometry": THREE.TubeGeometry,
-		"Geometry": THREE.Geometry
+		"Geometry": THREE.Geometry,
+		"BufferGeometry": THREE.BufferGeometry
 
 	};
 
@@ -174,8 +175,18 @@ Sidebar.Geometry = function ( editor ) {
 
 		geometryUUID.setValue( geometry.uuid );
 		geometryName.setValue( geometry.name );
-		geometryVertices.setValue( geometry.vertices.length );
-		geometryFaces.setValue( geometry.faces.length );
+
+		if ( geometry instanceof THREE.Geometry ) {
+
+			geometryVertices.setValue( geometry.vertices.length );
+			geometryFaces.setValue( geometry.faces.length );
+
+		} else if ( geometry instanceof THREE.BufferGeometry ) {
+
+			geometryVertices.setValue( geometry.attributes.position.numItems / 3 );
+			geometryFaces.setValue( geometry.attributes.index.numItems / 3 );
+
+		}
 
 	}
 

+ 28 - 10
editor/js/Viewport.js

@@ -12,6 +12,7 @@ var Viewport = function ( editor ) {
 	info.setBottom( '5px' );
 	info.setFontSize( '12px' );
 	info.setColor( '#ffffff' );
+	info.setValue( 'objects: 0, vertices: 0, faces: 0' );
 	container.add( info );
 
 	var scene = editor.scene;
@@ -256,22 +257,27 @@ var Viewport = function ( editor ) {
 
 	signals.objectChanged.add( function ( object ) {
 
-		if ( object.geometry !== undefined ) {
+		transformControls.update();
 
-			selectionBox.update( object );
+		if ( object !== camera ) {
 
-		}
+			if ( object.geometry !== undefined ) {
+
+				selectionBox.update( object );
 
-		if ( editor.helpers[ object.id ] !== undefined ) {
+			}
 
-			editor.helpers[ object.id ].update();
+			if ( editor.helpers[ object.id ] !== undefined ) {
 
-		}
+				editor.helpers[ object.id ].update();
 
-		transformControls.update();
+			}
+
+			updateInfo();
+
+		}
 
 		render();
-		updateInfo();
 
 	} );
 
@@ -426,8 +432,20 @@ var Viewport = function ( editor ) {
 			if ( object instanceof THREE.Mesh ) {
 
 				objects ++;
-				vertices += object.geometry.vertices.length;
-				faces += object.geometry.faces.length;
+
+				var geometry = object.geometry;
+
+				if ( geometry instanceof THREE.Geometry ) {
+
+					vertices += geometry.vertices.length;
+					faces += geometry.faces.length;
+
+				} else if ( geometry instanceof THREE.BufferGeometry ) {
+
+					vertices += geometry.attributes.position.numItems / 3;
+					faces += geometry.attributes.index.numItems / 3;
+
+				}
 
 			}