Gesture Library
multidrag.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "gesturelib.h"
4 #include "recognizer.h"
5 #include "stroke.h"
6 
8 typedef struct multidrag {
9  // recognizer state
11  // user id of tracked group
12  int uid;
13  // number of tracked strokes
14  int size;
15  // translation
16  float dx;
17  float dy;
18  // rotation counterclockwise in radians
19  float rotation;
20  // scale factor
21  float scale;
22 
23  // 1 if stroke is tracked, else 0
25  // last complete translation
26  float dx0;
27  float dy0;
28  // last rotation
29  float rotation0;
30  // last scaling
31  float scale0;
32  // last positions
33  float px[MAX_TOUCHES];
34  float py[MAX_TOUCHES];
35  // center position of time of last touch change
36  float cx;
37  float cy;
38  // scaled offsets since last center change
39  float sx[MAX_TOUCHES];
40  float sy[MAX_TOUCHES];
42 
44 void init_multidrag();
45 
48 void recognize_multidrag(const touch_event_t* event);
49 
52 const multidrag_t* get_multidrag();
#define MAX_TOUCHES
Definition: gestureparams.h:5
struct multidrag multidrag_t
Data structure for multidrag gesture data.
const multidrag_t * get_multidrag()
Access array of multidrag_t of size MAX_TOUCHES.
Definition: multidrag.c:53
void init_multidrag()
Initialize multidrag data structures.
Definition: multidrag.c:9
void recognize_multidrag(const touch_event_t *event)
Recognize multidrag gesture. This gesture locks the number of fingers once any finger starts moving.
Definition: multidrag.c:37
enum state state_t
This represents the state of individual gesture recognizers.
Data structure for multidrag gesture data.
Definition: multidrag.h:8
float sy[MAX_TOUCHES]
Definition: multidrag.h:40
float scale
Definition: multidrag.h:21
float rotation
Definition: multidrag.h:19
float scale0
Definition: multidrag.h:31
char strokes[MAX_TOUCHES]
Definition: multidrag.h:24
float dx0
Definition: multidrag.h:26
int size
Definition: multidrag.h:14
float py[MAX_TOUCHES]
Definition: multidrag.h:34
state_t state
Definition: multidrag.h:10
float cx
Definition: multidrag.h:36
int uid
Definition: multidrag.h:12
float cy
Definition: multidrag.h:37
float rotation0
Definition: multidrag.h:29
float dy
Definition: multidrag.h:17
float sx[MAX_TOUCHES]
Definition: multidrag.h:39
float dx
Definition: multidrag.h:16
float dy0
Definition: multidrag.h:27
float px[MAX_TOUCHES]
Definition: multidrag.h:33
To use the gesture library, users create touch events and fill in the appropriate fields.
Definition: gesturelib.h:17