Sidebar.Geometry.BufferGeometry.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. Sidebar.Geometry.BufferGeometry = function ( editor ) {
  5. var strings = editor.strings;
  6. var signals = editor.signals;
  7. var container = new UI.Row();
  8. function update( object ) {
  9. if ( object === null ) return; // objectSelected.dispatch( null )
  10. if ( object === undefined ) return;
  11. var geometry = object.geometry;
  12. if ( geometry && geometry.isBufferGeometry ) {
  13. container.clear();
  14. container.setDisplay( 'block' );
  15. var text = new UI.Text( strings.getKey( 'sidebar/geometry/buffer_geometry/attributes' ) ).setWidth( '90px' );
  16. container.add( text );
  17. var container2 = new UI.Span().setDisplay( 'inline-block' ).setWidth( '160px' );
  18. container.add( container2 );
  19. var index = geometry.index;
  20. if ( index !== null ) {
  21. container2.add( new UI.Text( strings.getKey( 'sidebar/geometry/buffer_geometry/index' ) ).setWidth( '80px' ) );
  22. container2.add( new UI.Text( ( index.count ).format() ).setFontSize( '12px' ) );
  23. container2.add( new UI.Break() );
  24. }
  25. var attributes = geometry.attributes;
  26. for ( var name in attributes ) {
  27. var attribute = attributes[ name ];
  28. container2.add( new UI.Text( name ).setWidth( '80px' ) );
  29. container2.add( new UI.Text( ( attribute.count ).format() + ' (' + attribute.itemSize + ')' ).setFontSize( '12px' ) );
  30. container2.add( new UI.Break() );
  31. }
  32. } else {
  33. container.setDisplay( 'none' );
  34. }
  35. }
  36. signals.objectSelected.add( update );
  37. signals.geometryChanged.add( update );
  38. return container;
  39. };