18 files changed, 106 insertions, 47 deletions
diff --git a/src/model/geometry/map_geometry.c b/src/model/geometry/map_geometry.c new file mode 100644 index 0000000..63e409d --- a/dev/null +++ b/src/model/geometry/map_geometry.c @@ -0,0 +1,40 @@ +#include "map_geometry.h" +#include "../../view/exp004state0.h" +#include <GL/glut.h> + +#define S exp004state0 + +void +map_geometry (void) +{ + glNewList (S.list_offset + MAP_GEOMETRY, GL_COMPILE); + glPolygonMode (GL_FRONT, GL_FILL); + + for (int i = 0; i < ROWS; i++) + { + glLoadName (i); + + // Draw the protein geometry. + glPushMatrix (); + glTranslatef (S.base_vertices_data[i][0], + S.base_vertices_data[i][1], 0.0); + glColor4fv (S.base_colors_data[i]); + glCallList (S.list_offset + PROTEIN_GEOMETRY); + glPopMatrix (); + + // If the object is selected, draw the selection geometry. + if (S.selection.set[i]) + { + glPushMatrix (); + glTranslatef (S.base_vertices_data[i][0], + S.base_vertices_data[i][1], 0.0); + glColor4f (0.5, 0.5, 0.5, 1.0); + glCallList (S.list_offset + PROTEIN_SELECTED_GEOMETRY); + glPopMatrix (); + } + } + + glEndList (); + + return; +} |