29 files changed, 1185 insertions, 0 deletions
diff --git a/src/model/exp004state.h b/src/model/exp004state.h new file mode 100644 index 0000000..e45f679 --- a/dev/null +++ b/src/model/exp004state.h @@ -0,0 +1,101 @@ +#ifndef EXP004STATE_H +#define EXP004STATE_H + +#include <stdbool.h> + +/* + * 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 |