Sidebar.Geometry.BufferGeometry.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. Sidebar.Geometry.BufferGeometry = function ( signals ) {
  5. var container = new UI.Panel();
  6. // vertices
  7. var verticesRow = new UI.Panel();
  8. var vertices = new UI.Text().setColor( '#444' ).setFontSize( '12px' );
  9. verticesRow.add( new UI.Text( 'Vertices' ).setWidth( '90px' ) );
  10. verticesRow.add( vertices );
  11. container.add( verticesRow );
  12. // faces
  13. var facesRow = new UI.Panel();
  14. var faces = new UI.Text().setColor( '#444' ).setFontSize( '12px' );
  15. facesRow.add( new UI.Text( 'Faces' ).setWidth( '90px' ) );
  16. facesRow.add( faces );
  17. container.add( facesRow );
  18. //
  19. var update = function ( object ) {
  20. if ( object === null ) return;
  21. var geometry = object.geometry;
  22. if ( geometry instanceof THREE.BufferGeometry ) {
  23. container.setDisplay( 'block' );
  24. vertices.setValue( ( geometry.attributes.position.array.length / 3 ).format() );
  25. if ( geometry.attributes.index !== undefined ) {
  26. faces.setValue( ( geometry.attributes.index.array.length / 3 ).format() );
  27. } else {
  28. faces.setValue( ( geometry.attributes.position.array.length / 9 ).format() );
  29. }
  30. } else {
  31. container.setDisplay( 'none' );
  32. }
  33. };
  34. signals.objectSelected.add( update );
  35. signals.geometryChanged.add( update );
  36. return container;
  37. }