summaryrefslogtreecommitdiffstats
Unidiff
-rw-r--r--src/Makefile.am55
-rw-r--r--src/controller/README_controller.txt18
-rw-r--r--src/controller/actions/clear_selection.h (renamed from src/controller/clear_selection.h)0
-rw-r--r--src/controller/actions/clear_selection.sqc (renamed from src/controller/clear_selection.sqc)4
-rw-r--r--src/controller/actions/pan.c8
-rw-r--r--src/controller/actions/pan.h9
-rw-r--r--src/controller/actions/process_hits.c (renamed from src/controller/exp004processhits.c)12
-rw-r--r--src/controller/actions/process_hits.h8
-rw-r--r--src/controller/actions/sel_save.c141
-rw-r--r--src/controller/actions/sel_save.h9
-rw-r--r--src/controller/actions/sel_save.sqc (renamed from src/controller/selsave.sqc)8
-rw-r--r--src/controller/actions/selection_from_db.h (renamed from src/controller/selection_from_db.h)0
-rw-r--r--src/controller/actions/selection_from_db.sqc (renamed from src/controller/selection_from_db.sqc)8
-rw-r--r--src/controller/actions/set_ortho.h (renamed from src/controller/set_ortho.h)0
-rw-r--r--src/controller/actions/vis_sel_set.h (renamed from src/controller/vis_sel_set.h)0
-rw-r--r--src/controller/actions/zoom.c (renamed from src/controller/performzoom.c)12
-rw-r--r--src/controller/actions/zoom.h9
-rw-r--r--src/controller/callbacks/display.c (renamed from src/controller/exp004display.c)8
-rw-r--r--src/controller/callbacks/display.h9
-rw-r--r--src/controller/callbacks/keyboard.c (renamed from src/controller/keyboard.c)10
-rw-r--r--src/controller/callbacks/keyboard.h (renamed from src/controller/keyboard.h)0
-rw-r--r--src/controller/callbacks/mouse.c (renamed from src/controller/exp004mouse.c)36
-rw-r--r--src/controller/callbacks/mouse.h9
-rw-r--r--src/controller/callbacks/mouse_wheel.c (renamed from src/controller/mousewheel.c)22
-rw-r--r--src/controller/callbacks/mouse_wheel.h (renamed from src/controller/mousewheel.h)8
-rw-r--r--src/controller/callbacks/reshape.c (renamed from src/controller/exp004reshape.c)10
-rw-r--r--src/controller/callbacks/reshape.h6
-rw-r--r--src/controller/exp004display.h6
-rw-r--r--src/controller/exp004mouse.h6
-rw-r--r--src/controller/exp004processhits.h8
-rw-r--r--src/controller/exp004reshape.h6
-rw-r--r--src/controller/performzoom.h9
-rw-r--r--src/controller/selsave.h9
-rw-r--r--src/controller/set_ortho.c21
-rw-r--r--src/model/geometry/density_legend_geometry.c4
-rw-r--r--src/view/exp004view.c20
36 files changed, 332 insertions, 176 deletions
diff --git a/src/controller/actions/zoom.c b/src/controller/actions/zoom.c
new file mode 100644
index 0000000..e33dcb8
--- a/dev/null
+++ b/src/controller/actions/zoom.c
@@ -0,0 +1,65 @@
1#include "zoom.h"
2#include "../callbacks/reshape.h"
3#include "../../util/check_error.h"
4#include "../../view/exp004state0.h"
5#include <GL/glut.h>
6#include <math.h>
7
8/*
9 * A simple alias to make the code more readable.
10 */
11#define S exp004state0
12
13void
14zoom (int x1, int y1, int x2, int y2)
15{
16 /*
17 * Convert the selection boundary from window coordinates to
18 * world coordinates.
19 */
20 glMatrixMode (GL_MODELVIEW);
21 glLoadIdentity ();
22 GLdouble model[16];
23 glGetDoublev (GL_MODELVIEW_MATRIX, model);
24 GLdouble projection[16];
25 glGetDoublev (GL_PROJECTION_MATRIX, projection);
26 GLint viewport[4];
27 glGetIntegerv (GL_VIEWPORT, viewport);
28
29 check_error (__FILE__, __LINE__);
30
31 GLdouble start_position[3];
32 gluUnProject (x1,
33 y1,
34 0,
35 model,
36 projection,
37 viewport,
38 &start_position[0],
39 &start_position[1], &start_position[2]);
40
41 check_error (__FILE__, __LINE__);
42
43 GLdouble end_position[3];
44 gluUnProject (x2,
45 y2,
46 0,
47 model,
48 projection,
49 viewport,
50 &end_position[0], &end_position[1], &end_position[2]);
51
52 check_error (__FILE__, __LINE__);
53
54 S.zoom.active = true;
55 S.zoom.coords[0] = fmin (start_position[0], end_position[0]);
56 S.zoom.coords[1] = fmax (start_position[0], end_position[0]);
57 S.zoom.coords[2] = fmin (start_position[1], end_position[1]);
58 S.zoom.coords[3] = fmax (start_position[1], end_position[1]);
59
60 reshape (S.viewport.w, S.viewport.h);
61
62 glutPostRedisplay ();
63
64 return;
65}

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.