#ifndef EXP004STATE_H #define EXP004STATE_H #include "selection_info.h" #include "zoom_info.h" /* * Buffer object identifiers. */ #define BASE_VERTICES 0 #define BASE_COLORS 1 #define CLEAR_COLOR 1.0, 1.0, 1.0, 1.0 #define DRAW_COLOR 0.0, 0.0, 0.0 #define DEFAULT_COLOR_R 0.00 #define DEFAULT_COLOR_G 0.00 #define DEFAULT_COLOR_B 0.01 #define DEFAULT_COLOR_A 0.25 #define SELECT_COLOR_R 0.00 #define SELECT_COLOR_G 0.00 #define SELECT_COLOR_B 0.00 #define SELECT_COLOR_A 0.75 /* * Maintain state of the model. */ typedef struct { /* * Track the bounding box of the points. */ struct { float min_x; float max_x; float min_y; float max_y; } bb; /* * Minimum coordinate for the orthographic projection. */ float ortho_min; /* * Maximum coordinate for the orthographic projection. */ float ortho_max; /* * Orthographic coordinates after aspect preserving scaling. */ struct { float min_x; float max_x; float min_y; float max_y; } ortho; /* * Viewport size. */ struct { int w; int h; } viewport; /* * Buffer objects. */ unsigned int buffers[1]; /* * GI Identifiers indexed by row. */ char gi_data[ROWS][20]; /* * 2D coordinates for each protein. */ float base_vertices_data[ROWS][2]; /* * RGB color for each protein. */ float base_colors_data[ROWS][4]; SELECTION_INFO selection; ZOOM_INFO zoom; } EXP004STATE; #endif // EXP004STATE_H