2
0
Эх сурвалжийг харах

allow 2 fingers pan in TrackballControls.js

Nicolas Raynaud 11 жил өмнө
parent
commit
ffddb9061a

+ 10 - 1
examples/js/controls/TrackballControls.js

@@ -500,6 +500,9 @@ THREE.TrackballControls = function ( object, domElement ) {
 				var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
 				var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
 				var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
 				var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
 				_touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt( dx * dx + dy * dy );
 				_touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt( dx * dx + dy * dy );
+				var x = (event.touches[ 0 ].pageX + event.touches[ 1 ].pageX) / 2;
+                		var y = (event.touches[ 0 ].pageY + event.touches[ 1 ].pageY) / 2;
+                		_panStart = _panEnd = _this.getMouseOnScreen(x, y);
 				break;
 				break;
 
 
 			case 3:
 			case 3:
@@ -532,7 +535,10 @@ THREE.TrackballControls = function ( object, domElement ) {
 			case 2:
 			case 2:
 				var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
 				var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
 				var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
 				var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
-				_touchZoomDistanceEnd = Math.sqrt( dx * dx + dy * dy )
+				_touchZoomDistanceEnd = Math.sqrt( dx * dx + dy * dy );
+				var x = (event.touches[ 0 ].pageX + event.touches[ 1 ].pageX) / 2;
+                		var y = (event.touches[ 0 ].pageY + event.touches[ 1 ].pageY) / 2;
+                		_panEnd = _this.getMouseOnScreen(x, y);
 				break;
 				break;
 
 
 			case 3:
 			case 3:
@@ -558,6 +564,9 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 
 			case 2:
 			case 2:
 				_touchZoomDistanceStart = _touchZoomDistanceEnd = 0;
 				_touchZoomDistanceStart = _touchZoomDistanceEnd = 0;
+				var x = (event.touches[ 0 ].pageX + event.touches[ 1 ].pageX) / 2;
+                		var y = (event.touches[ 0 ].pageY + event.touches[ 1 ].pageY) / 2;
+                		_panStart = _panEnd = _this.getMouseOnScreen(x, y);
 				break;
 				break;
 
 
 			case 3:
 			case 3: