12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- Viewport.Info = function ( editor ) {
- var signals = editor.signals;
- var strings = editor.strings;
- var container = new UI.Panel();
- container.setId( 'info' );
- container.setPosition( 'absolute' );
- container.setLeft( '10px' );
- container.setBottom( '10px' );
- container.setFontSize( '12px' );
- container.setColor( '#fff' );
- var objectsText = new UI.Text( '0' ).setMarginLeft( '6px' );
- var verticesText = new UI.Text( '0' ).setMarginLeft( '6px' );
- var trianglesText = new UI.Text( '0' ).setMarginLeft( '6px' );
- container.add( new UI.Text( strings.getKey( 'viewport/info/objects' ) ).setTextTransform( 'lowercase' ) );
- container.add( objectsText, new UI.Break() );
- container.add( new UI.Text( strings.getKey( 'viewport/info/vertices' ) ).setTextTransform( 'lowercase' ) );
- container.add( verticesText, new UI.Break() );
- container.add( new UI.Text( strings.getKey( 'viewport/info/triangles' ) ).setTextTransform( 'lowercase' ) );
- container.add( trianglesText, new UI.Break() );
- signals.objectAdded.add( update );
- signals.objectRemoved.add( update );
- signals.geometryChanged.add( update );
- //
- function update() {
- var scene = editor.scene;
- var objects = 0, vertices = 0, triangles = 0;
- for ( var i = 0, l = scene.children.length; i < l; i ++ ) {
- var object = scene.children[ i ];
- object.traverseVisible( function ( object ) {
- objects ++;
- if ( object.isMesh ) {
- var geometry = object.geometry;
- if ( geometry.isGeometry ) {
- vertices += geometry.vertices.length;
- triangles += geometry.faces.length;
- } else if ( geometry.isBufferGeometry ) {
- vertices += geometry.attributes.position.count;
- if ( geometry.index !== null ) {
- triangles += geometry.index.count / 3;
- } else {
- triangles += geometry.attributes.position.count / 3;
- }
- }
- }
- } );
- }
- objectsText.setValue( objects.format() );
- verticesText.setValue( vertices.format() );
- trianglesText.setValue( triangles.format() );
- }
- return container;
- };
|