/
SDLPinchGesture.m
38 lines (33 loc) 路 1.28 KB
/
SDLPinchGesture.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//
// SDLPinchGesture.c
// SmartDeviceLink-iOS
//
// Created by Muller, Alexander (A.) on 6/14/16.
// Copyright 漏 2016 smartdevicelink. All rights reserved.
//
#include "SDLPinchGesture.h"
SDLPinchGesture SDLPinchGestureMake(SDLTouch firstTouch, SDLTouch secondTouch) {
SDLPinchGesture pinchGesture;
pinchGesture.firstTouch = firstTouch;
pinchGesture.secondTouch = secondTouch;
pinchGesture.center = CGPointCenterOfPoints(firstTouch.location, secondTouch.location);
pinchGesture.distance = CGPointDistanceBetweenPoints(firstTouch.location, secondTouch.location);
return pinchGesture;
}
const SDLPinchGesture SDLPinchGestureZero = {{-1, {0, 0}, 0}, {-1, {0, 0}, 0}, 0, {0, 0}};
SDLPinchGesture SDLPinchGestureUpdateFromTouch(SDLPinchGesture pinch, SDLTouch touch) {
switch (touch.identifier) {
case SDLTouchIdentifierFirstFinger:
return SDLPinchGestureMake(touch, pinch.secondTouch);
break;
case SDLTouchIdentifierSecondFinger:
return SDLPinchGestureMake(pinch.firstTouch, touch);
break;
default:
return SDLPinchGestureZero;
break;
}
}
bool SDLPinchGestureIsValid(SDLPinchGesture pinch) {
return SDLTouchIsValid(pinch.firstTouch) && SDLTouchIsValid(pinch.secondTouch);
}