Sidebar.Geometry.Modifiers.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. Sidebar.Geometry.Modifiers = function ( signals, object ) {
  5. var container = new UI.Panel().setPaddingLeft( '90px' );
  6. var geometry = object.geometry;
  7. // Compute Vertex Normals
  8. var button = new UI.Button( 'Compute Vertex Normals' );
  9. button.onClick( function () {
  10. geometry.computeVertexNormals();
  11. if ( geometry instanceof THREE.BufferGeometry ) {
  12. geometry.attributes.normal.needsUpdate = true;
  13. } else {
  14. geometry.normalsNeedUpdate = true;
  15. }
  16. signals.geometryChanged.dispatch( object );
  17. } );
  18. container.add( button );
  19. // Convert to Geometry/BufferGeometry
  20. var isBufferGeometry = geometry instanceof THREE.BufferGeometry;
  21. if ( geometry instanceof THREE.Geometry ) {
  22. var button = new UI.Button( 'Convert to BufferGeometry' );
  23. button.onClick( function () {
  24. if ( confirm( 'Are you sure?' ) === false ) return;
  25. object.geometry = new THREE.BufferGeometry().fromGeometry( object.geometry );
  26. signals.geometryChanged.dispatch( object );
  27. } );
  28. container.add( button );
  29. }
  30. //
  31. return container;
  32. }