author | Don Pellegrino <don@drexel.edu> | 2009-06-16 23:26:27 (GMT) |
---|---|---|
committer | Don Pellegrino <don@drexel.edu> | 2009-06-16 23:26:27 (GMT) |
commit | e6656c361af46c47784f234af8289f81f2017c89 (patch) (side-by-side diff) | |
tree | dd0f32006a46ad32c1608a1d0ddbd7323510a20c | |
parent | a3cd765827764ec1f8789cc12946d56b1c52416f (diff) | |
download | exp005-e6656c361af46c47784f234af8289f81f2017c89.zip exp005-e6656c361af46c47784f234af8289f81f2017c89.tar.gz exp005-e6656c361af46c47784f234af8289f81f2017c89.tar.bz2 |
Added loading of a selection from the database.
-rw-r--r-- | src/controller/selection_from_db.sqc | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/src/controller/selection_from_db.sqc b/src/controller/selection_from_db.sqc index 20d277e..9467ab3 100644 --- a/src/controller/selection_from_db.sqc +++ b/src/controller/selection_from_db.sqc @@ -1,5 +1,7 @@ +#define GL_GLEXT_PROTOTYPES #include "selection_from_db.h" #include "../view/exp004state0.h" +#include <GL/glut.h> EXEC SQL INCLUDE sqlca; @@ -11,11 +13,51 @@ EXEC SQL INCLUDE sqlca; void selection_from_db (void) { + /* + * db2dclgn -d exp004 -t vis_sel_set + */ EXEC SQL BEGIN DECLARE SECTION; - + EXEC SQL INCLUDE 'controller/vis_sel_set.h'; EXEC SQL END DECLARE SECTION; + EXEC SQL DECLARE c3 CURSOR FOR + SELECT * FROM vis_sel_set + ORDER BY title, id DESC; + + EXEC SQL OPEN c3; + /* + * This loop currently assumes only one set in the table and does + * not use the title assigned to that set. This should be improved + * to allow the user to manage multiple sets by name. + */ + EXEC SQL FETCH c3 INTO :vis_sel_set; + while (sqlca.sqlcode != 100) + { + S.selection[vis_sel_set.id] = true; + S.base_colors_data[vis_sel_set.id][0] = vis_sel_set.r; + S.base_colors_data[vis_sel_set.id][1] = vis_sel_set.g; + S.base_colors_data[vis_sel_set.id][2] = vis_sel_set.b; + S.base_colors_data[vis_sel_set.id][3] = 0.6; + + EXEC SQL FETCH c3 INTO :vis_sel_set; + } + + EXEC SQL CLOSE c3; + + EXEC SQL COMMIT; + + /* + * Update the graphics memory. + */ + + glBindBuffer (GL_ARRAY_BUFFER, S.buffers[BASE_COLORS]); + glColorPointer (4, GL_FLOAT, 0, 0); + glBufferData (GL_ARRAY_BUFFER, + sizeof (S.base_colors_data), S.base_colors_data, + GL_STATIC_DRAW); + + glutPostRedisplay (); return; } |