Sidebar.Geometry.BufferGeometry.js 1.2 KB

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