From 61d778784817e349e5ef7e419adfc0b521b7e33a Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Thu, 19 Aug 2010 21:38:54 +0200 Subject: Use the touch_caps directly rather than grail_get_units() --- src/grail-gestures.c | 8 ++++---- src/grail-inserter.c | 20 ++++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/grail-gestures.c b/src/grail-gestures.c index 95c1b57..1e89074 100644 --- a/src/grail-gestures.c +++ b/src/grail-gestures.c @@ -21,6 +21,7 @@ ****************************************************************************/ #include "grail-recognizer.h" +#include "grail-impl.h" #include static const float FM_SN[DIM_FM] = { 1000, 1000, 200, 1000 }; @@ -141,14 +142,13 @@ static void move_update(struct move_model *m, int i, float x, grail_time_t t) void gru_init_motion(struct grail *ge) { + struct touch_caps *caps = &ge->impl->dev.caps; struct gesture_recognizer *gru = ge->gru; struct move_model *m = &gru->move; - struct grail_coord min, max; float D[DIM_FM]; int i; - grail_get_units(ge, &min, &max); - D[FM_X] = max.x - min.x; - D[FM_Y] = max.y - min.y; + D[FM_X] = caps->max_x - caps->min_x; + D[FM_Y] = caps->max_y - caps->min_y; D[FM_R] = sqrt(D[FM_X] * D[FM_X] + D[FM_Y] * D[FM_Y]); D[FM_A] = 2 * M_PI; for (i = 0; i < DIM_FM; i++) { diff --git a/src/grail-inserter.c b/src/grail-inserter.c index 36ab570..2e5e7af 100644 --- a/src/grail-inserter.c +++ b/src/grail-inserter.c @@ -21,6 +21,7 @@ ****************************************************************************/ #include "grail-inserter.h" +#include "grail-impl.h" #include #include #include @@ -373,15 +374,18 @@ void grail_set_bbox(struct grail *ge, const struct grail_coord *tmin, const struct grail_coord *tmax) { + struct touch_caps *caps = &ge->impl->dev.caps; struct gesture_inserter *gin = ge->gin; - struct grail_coord dmin, dmax; - double sx, sy; - grail_get_units(ge, &dmin, &dmax); - sx = (tmax->x - tmin->x) / (dmax.x - dmin.x); - sy = (tmax->y - tmin->y) / (dmax.y - dmin.y); + double tx, ty, dx, dy, sx, sy; + tx = tmax->x - tmin->x; + ty = tmax->y - tmin->y; + dx = caps->max_x - caps->min_x; + dy = caps->max_y - caps->min_y; + sx = tx / dx; + sy = ty / dy; gin->scale_x = sx; gin->scale_y = sy; - gin->scale_r = sqrt((sx * sx + sy * sy) / 2); - gin->trans_x = tmin->x - dmin.x * sx; - gin->trans_y = tmin->y - dmin.y * sy; + gin->scale_r = sqrt((tx * tx + ty * ty) / (dx * dx + dy * dy)); + gin->trans_x = tmin->x - caps->min_x * sx; + gin->trans_y = tmin->y - caps->min_y * sy; } -- cgit v1.2.3