Go to the documentation of this file.00001
00087 #pragma once
00088
00089 #include <string.h>
00090
00091
00093 #define MAGIC_MT_TRACKPAD_INTERPRETER 1
00094
00095 #define STARCRAFT2_INTERPRETER 2
00096
00097
00098 #define SG_ABSOLUTE_MODE 1
00099 #define SG_RELATIVE_MODE 2
00100
00101
00102 #if(_DEBUG)
00103 #define DEBUG printf
00104 #else
00105 #define DEBUG (void)
00106 #endif
00107
00108
00109
00110 void InitializeSMTG(void);
00111 void initializeSGParameter(void);
00112 void initializeSGTouchSet(void);
00113 void initializeSGTouchStroke(void);
00114 void initializeSGEventLish(void);
00115 void initializeSGNFingerTap(void);
00116
00117
00118
00119 void sgRecognizeGesture(int nBlobsSize, int* pid, float* pfx, float* pfy, float* pfdx, float* pfdy);
00120 void sgInterpreteGesture(int application);
00121 void interpreter_magic_mt_trackpad();
00122 void interpreter_starcraft2();
00123
00124 void sg_updatetouchset();
00125 void sg_blobstotouchset(int nBlobsSize, int* pid, float* pfx, float* pfy, float* pfdx, float* pfdy);
00126 void sg_statemachine();
00127
00128
00129
00130 bool check_Nfinger_tap();
00131 bool check_Nfinger_move();
00132 bool check_Nfinger_swipe();
00133 bool check_pinch_and_rotation();
00134
00135
00136 void find_firstandlast_index(int &f_index, int &l_index, int max_touch);
00137 void euclidian_distance(float &dx, float &dy, float &pd, int f_index, int l_index);
00138 bool judge_Nfinger_tap(float d, int f_index, int l_index, int ntouch);
00139 bool judge_Nfinger_swipe(float dx, float dy, float d, int f_index, int l_index, int ntouch);
00140 bool judge_Nfinger_move(float cos_theta, int nfinger, float cx, float cy, float dx, float dy);
00141 int sg_scale(void);
00142 int sg_rotate(void);
00143
00144
00145
00146 void sg_mtpETAP(int index);
00147 void sg_mtpEDTAP(int index);
00148 void sg_mtpEPINCH(int index);
00149 void sg_mtpEROTATE(int index);
00150 void sg_mtpNFINGERMOVE(int index);
00151 void sg_mtpNFINGERSWIPE(int index);
00152 void sg_mtpNFINGERHOLD(int index);
00153
00154 void sg_mtpETAP_1touch(int index);
00155 void sg_mtpETAP_2touch(int index);
00156 void sg_mtpETAP_3touch(int index);
00157 void sg_mtpETAP_4touch(int index);
00158 void sg_mtpEDTAP_1touch(int index);
00159
00160 void sg_mtpNFINGERSWIPE_2touch(int index);
00161 void sg_mtpNFINGERSWIPE_3touch(int index);
00162 void sg_mtpNFINGERSWIPE_4touch(int index);
00163 void sg_mtp_PRETOUCH_NFINGERSWIPE_2touch();
00164 void sg_mtp_PRETOUCH_NFINGERSWIPE_3touch();
00165 void sg_mtp_PRETOUCH_NFINGERSWIPE_4touch();
00166
00167
00168 void sg_mtp1FingerTap_move();
00169 void sg_mtp1FingerDTap_move();
00170
00171 void sg_mtp_interpreter_statemachine();
00172
00173
00174
00175 void sg_star2ETAP(int index);
00176 void sg_star2EDTAP(int index);
00177 void sg_star2EPINCH(int index);
00178 void sg_star2EROTATE(int index);
00179 void sg_star2NFINGERMOVE(int index);
00180 void sg_star2NFINGERSWIPE(int index);
00181 void sg_star2NFINGERHOLD(int index);
00182
00183
00184 void save_nfingertap(bool _flag, float _cx, float _cy, int _ntouch);
00185
00186 void middle_button_up();
00187 void wm_Lbutton_down(int index);
00188 void wm_Lbutton_up(int index);
00189 void wm_Rbutton_down(int index);
00190 void wm_Rbutton_up(int index);
00191 void wm_mouse_move(int index);
00192 void wm_mouse_wheel(int index);
00193
00194 void wm_mtp_rotation(int index);
00195
00196 void scroll_up();
00197 void scroll_down();
00198 void scroll_left();
00199 void scroll_right();
00200
00201 void SetCoordinateMode(int mode);