forked from ppfun/pixelplanet
VoxelPainterControls doesn't have to be an EventDispatcher imo
This commit is contained in:
parent
0abefce305
commit
ca067fa87d
|
@ -16,7 +16,6 @@
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
|
|
||||||
import {
|
import {
|
||||||
EventDispatcher,
|
|
||||||
MOUSE,
|
MOUSE,
|
||||||
Quaternion,
|
Quaternion,
|
||||||
Spherical,
|
Spherical,
|
||||||
|
@ -50,9 +49,6 @@ const STATE = {
|
||||||
TOUCH_DOLLY_PAN: 5,
|
TOUCH_DOLLY_PAN: 5,
|
||||||
TOUCH_DOLLY_ROTATE: 6,
|
TOUCH_DOLLY_ROTATE: 6,
|
||||||
};
|
};
|
||||||
const CHANGE_EVENT = { type: 'change' };
|
|
||||||
const START_EVENT = { type: 'start' };
|
|
||||||
const END_EVENT = { type: 'end' };
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* configuration
|
* configuration
|
||||||
|
@ -89,7 +85,7 @@ const screenSpacePanning = true; // if true, pan in screen-space
|
||||||
// Pan - right mouse, or left mouse + ctrl/meta/shiftKey,
|
// Pan - right mouse, or left mouse + ctrl/meta/shiftKey,
|
||||||
// or arrow keys / touch: two-finger move
|
// or arrow keys / touch: two-finger move
|
||||||
|
|
||||||
class VoxelPainterControls extends EventDispatcher {
|
class VoxelPainterControls {
|
||||||
store;
|
store;
|
||||||
camera;
|
camera;
|
||||||
renderer;
|
renderer;
|
||||||
|
@ -141,7 +137,6 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
vec = new Vector3();
|
vec = new Vector3();
|
||||||
|
|
||||||
constructor(renderer, camera, target, domElement, store) {
|
constructor(renderer, camera, target, domElement, store) {
|
||||||
super();
|
|
||||||
this.renderer = renderer;
|
this.renderer = renderer;
|
||||||
this.camera = camera;
|
this.camera = camera;
|
||||||
this.domElement = domElement;
|
this.domElement = domElement;
|
||||||
|
@ -550,7 +545,6 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
this.handleMouseUp(event);
|
this.handleMouseUp(event);
|
||||||
document.removeEventListener('mousemove', this.onMouseMove, false);
|
document.removeEventListener('mousemove', this.onMouseMove, false);
|
||||||
document.removeEventListener('mouseup', this.onMouseUp, false);
|
document.removeEventListener('mouseup', this.onMouseUp, false);
|
||||||
this.dispatchEvent(END_EVENT);
|
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,9 +560,7 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
this.dispatchEvent(START_EVENT);
|
|
||||||
this.handleMouseWheel(event);
|
this.handleMouseWheel(event);
|
||||||
this.dispatchEvent(END_EVENT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onTouchStart(event) {
|
onTouchStart(event) {
|
||||||
|
@ -580,67 +572,48 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
|
|
||||||
switch (event.touches.length) {
|
switch (event.touches.length) {
|
||||||
case 1:
|
case 1:
|
||||||
|
|
||||||
switch (TOUCHES.ONE) {
|
switch (TOUCHES.ONE) {
|
||||||
case TOUCH.ROTATE:
|
case TOUCH.ROTATE:
|
||||||
if (!enableRotate) {
|
if (!enableRotate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchStartRotate(event);
|
this.handleTouchStartRotate(event);
|
||||||
this.state = STATE.TOUCH_ROTATE;
|
this.state = STATE.TOUCH_ROTATE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TOUCH.PAN:
|
case TOUCH.PAN:
|
||||||
if (!enablePan) {
|
if (!enablePan) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchStartPan(event);
|
this.handleTouchStartPan(event);
|
||||||
this.state = STATE.TOUCH_PAN;
|
this.state = STATE.TOUCH_PAN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
|
||||||
switch (TOUCHES.TWO) {
|
switch (TOUCHES.TWO) {
|
||||||
case TOUCH.DOLLY_PAN:
|
case TOUCH.DOLLY_PAN:
|
||||||
if (!enableZoom && !enablePan) {
|
if (!enableZoom && !enablePan) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchStartDollyPan(event);
|
this.handleTouchStartDollyPan(event);
|
||||||
this.state = STATE.TOUCH_DOLLY_PAN;
|
this.state = STATE.TOUCH_DOLLY_PAN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TOUCH.DOLLY_ROTATE:
|
case TOUCH.DOLLY_ROTATE:
|
||||||
if (!enableZoom && !enableRotate) {
|
if (!enableZoom && !enableRotate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchStartDollyRotate(event);
|
this.handleTouchStartDollyRotate(event);
|
||||||
this.state = STATE.TOUCH_DOLLY_ROTATE;
|
this.state = STATE.TOUCH_DOLLY_ROTATE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.state !== STATE.NONE) {
|
|
||||||
this.dispatchEvent(START_EVENT);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onTouchMove(event) {
|
onTouchMove(event) {
|
||||||
|
@ -656,38 +629,30 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
if (!enableRotate) {
|
if (!enableRotate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchMoveRotate(event);
|
this.handleTouchMoveRotate(event);
|
||||||
this.update();
|
this.update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE.TOUCH_PAN:
|
case STATE.TOUCH_PAN:
|
||||||
if (!enablePan) {
|
if (!enablePan) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchMovePan(event);
|
this.handleTouchMovePan(event);
|
||||||
this.update();
|
this.update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE.TOUCH_DOLLY_PAN:
|
case STATE.TOUCH_DOLLY_PAN:
|
||||||
if (!enableZoom && !enablePan) {
|
if (!enableZoom && !enablePan) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchMoveDollyPan(event);
|
this.handleTouchMoveDollyPan(event);
|
||||||
this.update();
|
this.update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE.TOUCH_DOLLY_ROTATE:
|
case STATE.TOUCH_DOLLY_ROTATE:
|
||||||
if (!enableZoom && !enableRotate) {
|
if (!enableZoom && !enableRotate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchMoveDollyRotate(event);
|
this.handleTouchMoveDollyRotate(event);
|
||||||
this.update();
|
this.update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
@ -699,7 +664,6 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handleTouchEnd(event);
|
this.handleTouchEnd(event);
|
||||||
this.dispatchEvent(END_EVENT);
|
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -773,8 +737,6 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
if (this.state !== STATE.NONE) {
|
if (this.state !== STATE.NONE) {
|
||||||
document.addEventListener('mousemove', this.onMouseMove, false);
|
document.addEventListener('mousemove', this.onMouseMove, false);
|
||||||
document.addEventListener('mouseup', this.onMouseUp, false);
|
document.addEventListener('mouseup', this.onMouseUp, false);
|
||||||
|
|
||||||
this.dispatchEvent(START_EVENT);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -799,7 +761,6 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
this.camera.zoom = this.zoom0;
|
this.camera.zoom = this.zoom0;
|
||||||
|
|
||||||
this.camera.updateProjectionMatrix();
|
this.camera.updateProjectionMatrix();
|
||||||
this.dispatchEvent(CHANGE_EVENT);
|
|
||||||
this.update();
|
this.update();
|
||||||
this.state = STATE.NONE;
|
this.state = STATE.NONE;
|
||||||
}
|
}
|
||||||
|
@ -939,7 +900,6 @@ class VoxelPainterControls extends EventDispatcher {
|
||||||
panOffset.set(0, 0, 0);
|
panOffset.set(0, 0, 0);
|
||||||
this.scale = 1;
|
this.scale = 1;
|
||||||
|
|
||||||
this.dispatchEvent(CHANGE_EVENT);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user