Skip to content

Commit

Permalink
EditorControls: Implemented Pointer Events.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrdoob committed Aug 24, 2020
1 parent 8f499c7 commit e55b718
Showing 1 changed file with 59 additions and 20 deletions.
79 changes: 59 additions & 20 deletions editor/js/EditorControls.js
Expand Up @@ -112,12 +112,64 @@ function EditorControls( object, domElement ) {

};

// mouse
//

function onMouseDown( event ) {
function onPointerDown( event ) {

if ( scope.enabled === false ) return;

switch ( event.pointerType ) {

case 'mouse':
onMouseDown( event );
break;

// TODO touch

}

domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );

}

function onPointerMove( event ) {

if ( scope.enabled === false ) return;

switch ( event.pointerType ) {

case 'mouse':
onMouseMove( event );
break;

// TODO touch

}

}

function onPointerUp( event ) {

switch ( event.pointerType ) {

case 'mouse':
onMouseUp( event );
break;

// TODO touch

}

domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove, false );
domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp, false );

}

// mouse

function onMouseDown( event ) {

if ( event.button === 0 ) {

state = STATE.ROTATE;
Expand All @@ -134,17 +186,10 @@ function EditorControls( object, domElement ) {

pointerOld.set( event.clientX, event.clientY );

domElement.addEventListener( 'mousemove', onMouseMove, false );
domElement.addEventListener( 'mouseup', onMouseUp, false );
domElement.addEventListener( 'mouseout', onMouseUp, false );
domElement.addEventListener( 'dblclick', onMouseUp, false );

}

function onMouseMove( event ) {

if ( scope.enabled === false ) return;

pointer.set( event.clientX, event.clientY );

var movementX = pointer.x - pointerOld.x;
Expand All @@ -170,11 +215,6 @@ function EditorControls( object, domElement ) {

function onMouseUp( /* event */ ) {

domElement.removeEventListener( 'mousemove', onMouseMove, false );
domElement.removeEventListener( 'mouseup', onMouseUp, false );
domElement.removeEventListener( 'mouseout', onMouseUp, false );
domElement.removeEventListener( 'dblclick', onMouseUp, false );

state = STATE.NONE;

}
Expand All @@ -199,23 +239,22 @@ function EditorControls( object, domElement ) {
this.dispose = function () {

domElement.removeEventListener( 'contextmenu', contextmenu, false );
domElement.removeEventListener( 'mousedown', onMouseDown, false );
domElement.removeEventListener( 'dblclick', onMouseUp, false );
domElement.removeEventListener( 'wheel', onMouseWheel, false );

domElement.removeEventListener( 'mousemove', onMouseMove, false );
domElement.removeEventListener( 'mouseup', onMouseUp, false );
domElement.removeEventListener( 'mouseout', onMouseUp, false );
domElement.removeEventListener( 'dblclick', onMouseUp, false );
domElement.removeEventListener( 'pointerdown', onPointerDown, false );

domElement.removeEventListener( 'touchstart', touchStart, false );
domElement.removeEventListener( 'touchmove', touchMove, false );

};

domElement.addEventListener( 'contextmenu', contextmenu, false );
domElement.addEventListener( 'mousedown', onMouseDown, false );
domElement.addEventListener( 'dblclick', onMouseUp, false );
domElement.addEventListener( 'wheel', onMouseWheel, false );

domElement.addEventListener( 'pointerdown', onPointerDown, false );

// touch

var touches = [ new THREE.Vector3(), new THREE.Vector3(), new THREE.Vector3() ];
Expand Down

0 comments on commit e55b718

Please sign in to comment.