43RealTimeMouseGestureRecognizer::RealTimeMouseGestureRecognizer(
int minimumMovement,
double minimumMatch,
bool allowDiagonals)
44 : minimumMatch(minimumMatch), allowDiagonals(allowDiagonals)
46 minimumMovement2 = minimumMovement * minimumMovement;
78 if (dx * dx + dy * dy < minimumMovement2) {
84 const int _directions[8][2] = {
97 for (
int i = 0;
i < (allowDiagonals ? 8 : 4);
i++) {
98 int value = dx * _directions[
i][0] + dy * _directions[
i][1];
99 if (
value > maxValue) {
105 direction =
dirsD[maxIndex];
107 if (direction != lastDirection) {
115 lastDirection = direction;
126 gestures.push_back(gesture);
127 std::sort(gestures.begin(), gestures.end(),
DirectionSort());
135void RealTimeMouseGestureRecognizer::recognizeGesture()
137 int first = gestures.size();
139 for (GestureList::const_iterator gi = gestures.begin(); gi != gestures.end(); ++gi) {
145 for (DirectionList::const_iterator di = gi->directions.begin(); di != gi->directions.end() && match; ++di) {
153 if (gi->callbackClass) {
154 gi->callbackClass->callback();
163 catch (
const std::exception &) {
void clearGestureDefinitions()
~RealTimeMouseGestureRecognizer()
void addGestureDefinition(const GestureDefinition &gesture)
void addPoint(int x, int y)
void setReadPointerTo(int index)
int value(const QColor &c)
bool operator()(const GestureDefinition &a, const GestureDefinition &b)