diff --git a/editor/js/Sidebar.Geometry.js b/editor/js/Sidebar.Geometry.js index bc3efd9e40e1be756d6da20ea40cc82fe62fe9fb..e051c66a1b2274056c9b2fea1cae27ab24672782 100644 --- a/editor/js/Sidebar.Geometry.js +++ b/editor/js/Sidebar.Geometry.js @@ -17,13 +17,14 @@ Sidebar.Geometry = function ( editor ) { var geometryType = new UI.Text().setTextTransform( 'uppercase' ); container.addStatic( geometryType ); - + // Actions - + var objectActions = new UI.Select().setPosition('absolute').setRight( '8px' ).setFontSize( '11px' ); objectActions.setOptions( { 'Actions': 'Actions', + 'Center': 'Center', 'Flatten': 'Flatten' } ); @@ -34,26 +35,35 @@ Sidebar.Geometry = function ( editor ) { } ); objectActions.onChange( function ( event ) { + var action = this.getValue(); + var object = editor.selected; + var geometry = object.geometry; - switch ( this.getValue() ) { + if ( confirm( action + ' ' + object.name + '?' ) === false ) return; - case 'Flatten': + switch ( action ) { + + case 'Center': - var object = editor.selected; + var offset = geometry.center(); - if ( confirm( 'Flatten ' + object.name + '?' ) === false ) return; + object.position.sub( offset ); - var geometry = object.geometry; + editor.signals.geometryChanged.dispatch( geometry ); + editor.signals.objectChanged.dispatch( object ); + + break; + + case 'Flatten': geometry.applyMatrix( object.matrix ); - geometry.verticesNeedUpdate = true; - geometry.normalsNeedUpdate = true; object.position.set( 0, 0, 0 ); object.rotation.set( 0, 0, 0 ); object.scale.set( 1, 1, 1 ); + editor.signals.geometryChanged.dispatch( geometry ); editor.signals.objectChanged.dispatch( object ); break;