123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- Menubar.Edit = function ( editor ) {
- // event handlers
- // function onUndoOptionClick () {
- // console.log( 'UNDO not implemented yet' );
- // }
- // function onRedoOptionClick () {
- // console.log( 'REDO not implemented yet' );
- // }
- function onCloneOptionClick () {
- var object = editor.selected;
- if ( object.parent === undefined ) return; // avoid cloning the camera or scene
- object = object.clone();
- editor.addObject( object );
- editor.select( object );
- }
- function onDeleteOptionClick () {
- var parent = editor.selected.parent;
- editor.removeObject( editor.selected );
- editor.select( parent );
- }
- function onConvertOptionClick () {
- // convert to BufferGeometry
-
- var object = editor.selected;
- if ( object.geometry instanceof THREE.Geometry ) {
- if ( object.parent === undefined ) return; // avoid flattening the camera or scene
- if ( confirm( 'Convert ' + object.name + ' to BufferGeometry?' ) === false ) return;
- delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring) This is not yet fixed for buffergeometry
- object.geometry = new THREE.BufferGeometry().fromGeometry( object.geometry );
- editor.signals.objectChanged.dispatch( object );
- }
- }
- function onFlattenOptionClick () {
- var object = editor.selected;
- if ( object.parent === undefined ) return; // avoid flattening the camera or scene
- if ( confirm( 'Flatten ' + object.name + '?' ) === false ) return;
- //delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
- var geometry = object.geometry.clone();
- geometry.applyMatrix( object.matrix );
- object.geometry = geometry;
- object.position.set( 0, 0, 0 );
- object.rotation.set( 0, 0, 0 );
- object.scale.set( 1, 1, 1 );
-
- object.geometry.buffersNeedUpdate = true;
- editor.signals.objectChanged.dispatch( object );
- }
- // configure menu contents
- var createOption = UI.MenubarHelper.createOption;
- var createDivider = UI.MenubarHelper.createDivider;
- var menuConfig = [
- // createOption( 'Undo', onUndoOptionClick ),
- // createOption( 'Redo', onRedoOptionClick ),
- // createDivider(),
- createOption( 'Clone', onCloneOptionClick ),
- createOption( 'Delete', onDeleteOptionClick ),
- createDivider(),
- createOption( 'Convert', onConvertOptionClick ),
- createOption( 'Flatten', onFlattenOptionClick )
- ];
- var optionsPanel = UI.MenubarHelper.createOptionsPanel( menuConfig );
- return UI.MenubarHelper.createMenuContainer( 'Edit', optionsPanel );
- }
|