|
|
@@ -2,7 +2,7 @@ import * as THREE from 'three';
|
|
|
|
|
|
class EditorControls extends THREE.EventDispatcher {
|
|
|
|
|
|
- constructor( object, domElement ) {
|
|
|
+ constructor( object ) {
|
|
|
|
|
|
super();
|
|
|
|
|
|
@@ -34,6 +34,8 @@ class EditorControls extends THREE.EventDispatcher {
|
|
|
var pointers = [];
|
|
|
var pointerPositions = {};
|
|
|
|
|
|
+ var domElement = null;
|
|
|
+
|
|
|
// events
|
|
|
|
|
|
var changeEvent = { type: 'change' };
|
|
|
@@ -269,7 +271,21 @@ class EditorControls extends THREE.EventDispatcher {
|
|
|
|
|
|
}
|
|
|
|
|
|
- this.dispose = function () {
|
|
|
+ this.connect = function ( element ) {
|
|
|
+
|
|
|
+ if ( domElement !== null ) this.disconnect();
|
|
|
+
|
|
|
+ domElement = element;
|
|
|
+
|
|
|
+ domElement.addEventListener( 'contextmenu', contextmenu );
|
|
|
+ domElement.addEventListener( 'dblclick', onMouseUp );
|
|
|
+ domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } );
|
|
|
+
|
|
|
+ domElement.addEventListener( 'pointerdown', onPointerDown );
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ this.disconnect = function () {
|
|
|
|
|
|
domElement.removeEventListener( 'contextmenu', contextmenu );
|
|
|
domElement.removeEventListener( 'dblclick', onMouseUp );
|
|
|
@@ -277,13 +293,9 @@ class EditorControls extends THREE.EventDispatcher {
|
|
|
|
|
|
domElement.removeEventListener( 'pointerdown', onPointerDown );
|
|
|
|
|
|
- };
|
|
|
+ domElement = null;
|
|
|
|
|
|
- domElement.addEventListener( 'contextmenu', contextmenu );
|
|
|
- domElement.addEventListener( 'dblclick', onMouseUp );
|
|
|
- domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } );
|
|
|
-
|
|
|
- domElement.addEventListener( 'pointerdown', onPointerDown );
|
|
|
+ };
|
|
|
|
|
|
// touch
|
|
|
|