1 |
|
2 | import { SWIPE, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN } from './config';
|
3 | function _calcTriangleDistance(x, y) {
|
4 | return Math.sqrt(x * x + y * y);
|
5 | }
|
6 | function _calcAngle(x, y) {
|
7 | var radian = Math.atan2(y, x);
|
8 | return 180 / (Math.PI / radian);
|
9 | }
|
10 | export function now() {
|
11 | return Date.now();
|
12 | }
|
13 | export function calcMutliFingerStatus(touches) {
|
14 | if (touches.length < 2) {
|
15 | return;
|
16 | }
|
17 | var _touches$ = touches[0],
|
18 | x1 = _touches$.x,
|
19 | y1 = _touches$.y;
|
20 | var _touches$2 = touches[1],
|
21 | x2 = _touches$2.x,
|
22 | y2 = _touches$2.y;
|
23 |
|
24 | var deltaX = x2 - x1;
|
25 | var deltaY = y2 - y1;
|
26 | return {
|
27 | x: deltaX,
|
28 | y: deltaY,
|
29 | z: _calcTriangleDistance(deltaX, deltaY),
|
30 | angle: _calcAngle(deltaX, deltaY)
|
31 | };
|
32 | }
|
33 | export function calcMoveStatus(startTouches, touches, time) {
|
34 | var _startTouches$ = startTouches[0],
|
35 | x1 = _startTouches$.x,
|
36 | y1 = _startTouches$.y;
|
37 | var _touches$3 = touches[0],
|
38 | x2 = _touches$3.x,
|
39 | y2 = _touches$3.y;
|
40 |
|
41 | var deltaX = x2 - x1;
|
42 | var deltaY = y2 - y1;
|
43 | var deltaZ = _calcTriangleDistance(deltaX, deltaY);
|
44 | return {
|
45 | x: deltaX,
|
46 | y: deltaY,
|
47 | z: deltaZ,
|
48 | time: time,
|
49 | velocity: deltaZ / time,
|
50 | angle: _calcAngle(deltaX, deltaY)
|
51 | };
|
52 | }
|
53 | export function calcRotation(startMutliFingerStatus, mutliFingerStatus) {
|
54 | var startAngle = startMutliFingerStatus.angle;
|
55 | var angle = mutliFingerStatus.angle;
|
56 |
|
57 | return angle - startAngle;
|
58 | }
|
59 | export function getEventName(prefix, status) {
|
60 | return prefix + status[0].toUpperCase() + status.slice(1);
|
61 | }
|
62 | export function shouldTriggerSwipe(delta, velocity) {
|
63 | return Math.abs(delta) >= SWIPE.threshold && Math.abs(velocity) > SWIPE.velocity;
|
64 | }
|
65 | export function shouldTriggerDirection(direction, directionSetting) {
|
66 | if (directionSetting & direction) {
|
67 | return true;
|
68 | }
|
69 | return false;
|
70 | }
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 | export function getDirection(x, y) {
|
79 | if (x === y) {
|
80 | return DIRECTION_NONE;
|
81 | }
|
82 | if (Math.abs(x) >= Math.abs(y)) {
|
83 | return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
|
84 | }
|
85 | return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;
|
86 | }
|
87 | export function getDirectionEventName(direction) {
|
88 | var name = void 0;
|
89 | switch (direction) {
|
90 | case DIRECTION_NONE:
|
91 | break;
|
92 | case DIRECTION_LEFT:
|
93 | name = 'left';
|
94 | break;
|
95 | case DIRECTION_RIGHT:
|
96 | name = 'right';
|
97 | break;
|
98 | case DIRECTION_UP:
|
99 | name = 'up';
|
100 | break;
|
101 | case DIRECTION_DOWN:
|
102 | name = 'down';
|
103 | break;
|
104 | default:
|
105 | }
|
106 | return name;
|
107 | } |
\ | No newline at end of file |