-rw-r--r-- | src/controller/clear_selection.h | 6 | ||||
-rw-r--r-- | src/controller/clear_selection.sqc | 45 | ||||
-rw-r--r-- | src/controller/keyboard.c | 28 | ||||
-rw-r--r-- | src/controller/keyboard.h | 6 | ||||
-rw-r--r-- | src/controller/selection_from_db.h | 9 | ||||
-rw-r--r-- | src/controller/selection_from_db.sqc | 21 | ||||
-rw-r--r-- | src/controller/selection_to_db.h | 9 | ||||
-rw-r--r-- | src/controller/selection_to_db.sqc | 38 | ||||
-rw-r--r-- | src/model/exp004base.sqc | 144 | ||||
-rw-r--r-- | src/util/pick_convert.c | 50 | ||||
-rw-r--r-- | src/util/pick_convert.h | 29 |
11 files changed, 385 insertions, 0 deletions
diff --git a/src/controller/clear_selection.sqc b/src/controller/clear_selection.sqc new file mode 100644 index 0000000..cf04681 --- a/dev/null +++ b/src/controller/clear_selection.sqc @@ -0,0 +1,45 @@ +/* I seem to need this for glGenBuffers as per + http://www.gamedev.net/community/forums/topic.asp?topic_id=422358 */ +#define GL_GLEXT_PROTOTYPES + +#include "clear_selection.h" +#include "../view/exp004state0.h" +#include <GL/glut.h> + +EXEC SQL INCLUDE sqlca; + +/* + * A simple alias to make the code more readable. + */ +#define S exp004state0 + +void +clear_selection (void) +{ + /* + * WHERE gi IS NOT NULL is added to prevent the PRECOMPILE command + * from throwing a warning about modifying an entire table. Since + * gi is defined as NOT NULL this will clear the entire table. + */ + EXEC SQL DELETE FROM vis_selection WHERE gi IS NOT NULL; + + EXEC SQL COMMIT; + + for (unsigned int i = 0; i < ROWS; i++) + { + S.selection[i] = false; + S.base_colors_data[i][0] = DEFAULT_COLOR_R; + S.base_colors_data[i][1] = DEFAULT_COLOR_G; + S.base_colors_data[i][2] = DEFAULT_COLOR_B; + } + + glBindBuffer (GL_ARRAY_BUFFER, S.buffers[BASE_COLORS]); + glColorPointer (3, GL_FLOAT, 0, 0); + glBufferData (GL_ARRAY_BUFFER, + sizeof (S.base_colors_data), S.base_colors_data, + GL_STATIC_DRAW); + + glutPostRedisplay (); + + return; +} |