view.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <string.h>
  2. #include <grass/display.h>
  3. #include "globals.h"
  4. #include "local_proto.h"
  5. int Configure_view(View * view, char *name, char *mapset, double ns_res, double ew_res /* original map resolution */
  6. )
  7. {
  8. Erase_view(view);
  9. view->cell.configured = 0;
  10. /* copy the cell name into the view */
  11. strcpy(view->cell.name, name);
  12. strcpy(view->cell.mapset, mapset);
  13. /* determine the map edges */
  14. view->cell.left = view->left + (view->ncols - view->cell.head.cols) / 2;
  15. view->cell.right = view->cell.left + view->cell.head.cols - 1;
  16. view->cell.top = view->top + (view->nrows - view->cell.head.rows) / 2;
  17. view->cell.bottom = view->cell.top + view->cell.head.rows - 1;
  18. /* remember original resolutions */
  19. view->cell.ns_res = ns_res;
  20. view->cell.ew_res = ew_res;
  21. view->cell.configured = 1;
  22. return 0;
  23. }
  24. int In_view(View * view, int x, int y)
  25. {
  26. return (x >= view->left && x <= view->right && y >= view->top &&
  27. y <= view->bottom);
  28. }
  29. int Erase_view(View * view)
  30. {
  31. R_standard_color(WHITE);
  32. R_box_abs(view->left, view->top, view->right, view->bottom);
  33. return 0;
  34. }
  35. double magnification(View * view)
  36. {
  37. if (!view->cell.configured)
  38. return ((double)0.0);
  39. return (view->cell.ew_res / view->cell.head.ew_res);
  40. }