#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 DEFAULT_COLOR_R 0.5 #define DEFAULT_COLOR_G 0.5 #define DEFAULT_COLOR_B 0.5 #define DEFAULT_COLOR_A 0.5 #define SELECT_COLOR_R 1.0 #define SELECT_COLOR_G 1.0 #define SELECT_COLOR_B 1.0 #define SELECT_COLOR_A 0.8 /* * 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