| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- class Selector {
- constructor( editor ) {
- const signals = editor.signals;
- this.editor = editor;
- this.config = editor.config;
- this.signals = signals;
- // signals
- signals.intersectionsDetected.add( ( intersects ) => {
- if ( intersects.length > 0 ) {
- const object = intersects[ 0 ].object;
- if ( object.userData.object !== undefined ) {
- // helper
- this.select( object.userData.object );
- } else {
- this.select( object );
- }
- } else {
- this.select( null );
- }
- } );
- }
- select( object ) {
- if ( this.editor.selected === object ) return;
- let uuid = null;
- if ( object !== null ) {
- uuid = object.uuid;
- }
- this.editor.selected = object;
- this.config.setKey( 'selected', uuid );
- this.signals.objectSelected.dispatch( object );
- }
- deselect() {
- this.select( null );
- }
- }
- export { Selector };
|