|
@@ -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;
|