1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
/**
* @author mrdoob / http://mrdoob.com/
*/
var Toolbar = function ( editor ) {
var signals = editor.signals;
var strings = editor.strings;
var container = new UI.Panel();
container.setId( 'toolbar' );
container.setDisplay( 'none' );
var buttons = new UI.Panel();
container.add( buttons );
// translate / rotate / scale
var translate = new UI.Button( strings.getKey( 'toolbar/translate' ) );
translate.dom.className = 'Button selected';
translate.onClick( function () {
signals.transformModeChanged.dispatch( 'translate' );
} );
buttons.add( translate );
var rotate = new UI.Button( strings.getKey( 'toolbar/rotate' ) );
rotate.onClick( function () {
signals.transformModeChanged.dispatch( 'rotate' );
} );
buttons.add( rotate );
var scale = new UI.Button( strings.getKey( 'toolbar/scale' ) );
scale.onClick( function () {
signals.transformModeChanged.dispatch( 'scale' );
} );
buttons.add( scale );
var local = new UI.THREE.Boolean( false, strings.getKey( 'toolbar/local' ) );
local.onChange( function () {
signals.spaceChanged.dispatch( this.getValue() === true ? 'local' : 'world' );
} );
buttons.add( local );
//
signals.objectSelected.add( function ( object ) {
container.setDisplay( object === null ? 'none' : '' );
} );
signals.transformModeChanged.add( function ( mode ) {
translate.dom.classList.remove( 'selected' );
rotate.dom.classList.remove( 'selected' );
scale.dom.classList.remove( 'selected' );
switch ( mode ) {
case 'translate': translate.dom.classList.add( 'selected' ); break;
case 'rotate': rotate.dom.classList.add( 'selected' ); break;
case 'scale': scale.dom.classList.add( 'selected' ); break;
}
} );
return container;
};
|