2
#include "local_proto.h"
4
static int where_12(View *, int, int);
5
static int where_21(View *, int, int);
6
static int where_am_i(View *, int, int, Window *, double *, double *,
9
int where(int x, int y)
11
if (VIEW_MAP1->cell.configured && In_view(VIEW_MAP1, x, y))
12
where_12(VIEW_MAP1, x, y);
13
else if (VIEW_MAP1_ZOOM->cell.configured && In_view(VIEW_MAP1_ZOOM, x, y))
14
where_12(VIEW_MAP1_ZOOM, x, y);
15
else if (VIEW_MAP2->cell.configured && In_view(VIEW_MAP2, x, y))
16
where_21(VIEW_MAP2, x, y);
17
else if (VIEW_MAP2_ZOOM->cell.configured && In_view(VIEW_MAP2_ZOOM, x, y))
18
where_21(VIEW_MAP2_ZOOM, x, y);
19
return 0; /* return but don't quit */
22
static int where_12(View * view, int x, int y)
24
where_am_i(view, x, y, MENU_WINDOW, group.E12, group.N12, INFO_WINDOW);
29
static int where_21(View * view, int x, int y)
31
where_am_i(view, x, y, INFO_WINDOW, group.E21, group.N21, MENU_WINDOW);
36
static int where_am_i(View * view, int x, int y, Window * w1,
37
double *E, double *N, Window * w2)
39
double e1, n1, e2, n2;
44
/* convert x,y to east,north at center of cell */
45
col = view_to_col(view, x);
46
e1 = col_to_easting(&view->cell.head, col, 0.5);
47
row = view_to_row(view, y);
48
n1 = row_to_northing(&view->cell.head, row, 0.5);
50
Curses_clear_window(w1);
51
sprintf(buf, "East: %10.2f", e1);
52
Curses_write_window(w1, 3, 3, buf);
53
sprintf(buf, "North: %10.2f", n1);
54
Curses_write_window(w1, 4, 3, buf);
56
/* if transformation equation is useable, determine point via equation */
57
if (group.equation_stat <= 0)
60
I_georef(e1, n1, &e2, &n2, E, N);
61
Curses_clear_window(w2);
62
sprintf(buf, "East: %10.2f", e2);
63
Curses_write_window(w2, 3, 3, buf);
64
sprintf(buf, "North: %10.2f", n2);
65
Curses_write_window(w2, 4, 3, buf);