Toolbar.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var Toolbar = function ( signals ) {
  2. var container = new UI.Panel();
  3. container.setPosition( 'absolute' );
  4. container.setClass( 'toolbar' );
  5. var buttons = new UI.Panel();
  6. buttons.setPadding( '7px' );
  7. container.add( buttons );
  8. // axis
  9. var x = new UI.Checkbox( true ).onChange( update );
  10. buttons.add( x );
  11. buttons.add( new UI.Text( 'x' ) );
  12. var y = new UI.Checkbox( true ).setMarginLeft( '10px' ).onChange( update );
  13. buttons.add( y );
  14. buttons.add( new UI.Text( 'y ' ) );
  15. var z = new UI.Checkbox( true ).setMarginLeft( '10px' ).onChange( update );
  16. buttons.add( z );
  17. buttons.add( new UI.Text( 'z ' ) );
  18. buttons.add( new UI.Text().setWidth( '25px' ) );
  19. // grid
  20. var grid = new UI.Number( 25 ).onChange( update );
  21. grid.dom.style.width = '42px';
  22. buttons.add( new UI.Text( 'Grid: ' ) );
  23. buttons.add( grid );
  24. var snap = new UI.Checkbox( false ).onChange( update );
  25. buttons.add( snap );
  26. buttons.add( new UI.Text( 'snap' ) );
  27. function update() {
  28. var axis = new THREE.Vector3();
  29. axis.x = x.getValue() === true ? 1 : 0;
  30. axis.y = y.getValue() === true ? 1 : 0;
  31. axis.z = z.getValue() === true ? 1 : 0;
  32. signals.modifierAxisChanged.dispatch( axis );
  33. signals.snapChanged.dispatch( snap.getValue() === true ? grid.getValue() : null );
  34. }
  35. update();
  36. return container;
  37. }