|
@@ -354,9 +354,8 @@
|
|
|
stats = new Stats();
|
|
|
container.appendChild( stats.dom );
|
|
|
|
|
|
- document.addEventListener( 'mousedown', onDocumentMouseDown, false );
|
|
|
- document.addEventListener( 'touchstart', onDocumentTouchStart, false );
|
|
|
- document.addEventListener( 'touchmove', onDocumentTouchMove, false );
|
|
|
+ container.style.touchAction = 'none';
|
|
|
+ container.addEventListener( 'pointerdown', onPointerDown, false );
|
|
|
|
|
|
//
|
|
|
|
|
@@ -366,6 +365,8 @@
|
|
|
|
|
|
function onWindowResize() {
|
|
|
|
|
|
+ windowHalfX = window.innerWidth / 2;
|
|
|
+
|
|
|
camera.aspect = window.innerWidth / window.innerHeight;
|
|
|
camera.updateProjectionMatrix();
|
|
|
|
|
@@ -375,66 +376,34 @@
|
|
|
|
|
|
//
|
|
|
|
|
|
- function onDocumentMouseDown( event ) {
|
|
|
-
|
|
|
- event.preventDefault();
|
|
|
+ function onPointerDown( event ) {
|
|
|
|
|
|
- document.addEventListener( 'mousemove', onDocumentMouseMove, false );
|
|
|
- document.addEventListener( 'mouseup', onDocumentMouseUp, false );
|
|
|
- document.addEventListener( 'mouseout', onDocumentMouseOut, false );
|
|
|
+ if ( event.isPrimary === false ) return;
|
|
|
|
|
|
mouseXOnMouseDown = event.clientX - windowHalfX;
|
|
|
targetRotationOnMouseDown = targetRotation;
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
- function onDocumentMouseMove( event ) {
|
|
|
-
|
|
|
- mouseX = event.clientX - windowHalfX;
|
|
|
-
|
|
|
- targetRotation = targetRotationOnMouseDown + ( mouseX - mouseXOnMouseDown ) * 0.02;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- function onDocumentMouseUp() {
|
|
|
-
|
|
|
- document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
|
|
|
- document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
|
|
|
- document.removeEventListener( 'mouseout', onDocumentMouseOut, false );
|
|
|
+ document.addEventListener( 'pointermove', onPointerMove, false );
|
|
|
+ document.addEventListener( 'pointerup', onPointerUp, false );
|
|
|
|
|
|
}
|
|
|
|
|
|
- function onDocumentMouseOut() {
|
|
|
+ function onPointerMove( event ) {
|
|
|
|
|
|
- document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
|
|
|
- document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
|
|
|
- document.removeEventListener( 'mouseout', onDocumentMouseOut, false );
|
|
|
+ if ( event.isPrimary === false ) return;
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
- function onDocumentTouchStart( event ) {
|
|
|
-
|
|
|
- if ( event.touches.length == 1 ) {
|
|
|
-
|
|
|
- event.preventDefault();
|
|
|
-
|
|
|
- mouseXOnMouseDown = event.touches[ 0 ].pageX - windowHalfX;
|
|
|
- targetRotationOnMouseDown = targetRotation;
|
|
|
+ mouseX = event.clientX - windowHalfX;
|
|
|
|
|
|
- }
|
|
|
+ targetRotation = targetRotationOnMouseDown + ( mouseX - mouseXOnMouseDown ) * 0.02;
|
|
|
|
|
|
}
|
|
|
|
|
|
- function onDocumentTouchMove( event ) {
|
|
|
-
|
|
|
- if ( event.touches.length == 1 ) {
|
|
|
+ function onPointerUp() {
|
|
|
|
|
|
- event.preventDefault();
|
|
|
+ if ( event.isPrimary === false ) return;
|
|
|
|
|
|
- mouseX = event.touches[ 0 ].pageX - windowHalfX;
|
|
|
- targetRotation = targetRotationOnMouseDown + ( mouseX - mouseXOnMouseDown ) * 0.05;
|
|
|
-
|
|
|
- }
|
|
|
+ document.removeEventListener( 'pointermove', onPointerMove );
|
|
|
+ document.removeEventListener( 'pointerup', onPointerUp );
|
|
|
|
|
|
}
|
|
|
|