#ifndef EXP004STATE_H #define EXP004STATE_H #include /* * Buffer object identifiers. */ #define BASE_VERTICES 0 #define BASE_COLORS 1 /* * Vertices in the graph. */ #define ROWS 83905 #define DEFAULT_COLOR_R 0.2 #define DEFAULT_COLOR_G 0.2 #define DEFAULT_COLOR_B 0.2 #define SELECT_COLOR_R 1.0 #define SELECT_COLOR_G 1.0 #define SELECT_COLOR_B 1.0 /* * 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; /* * Points loaded. */ int points; /* * 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][3]; /* * Selection list. */ bool selection[ROWS]; } EXP004STATE; #endif // EXP004STATE_H