path:
root/
src/
model/
state/
state.h (
plain)
blob: f432017f90ffb7ea715395906baf4dacdb5efd15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#ifndef STATE_H
#define STATE_H
#include "selection_info.h"
#include "zoom_info.h"
#include "pan_info.h"
/*
* Buffer object identifiers.
*/
#define NUM_BUFFERS 2
#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 (1.0 / 7.0)
#define SELECT_COLOR_R 0.00
#define SELECT_COLOR_G 0.00
#define SELECT_COLOR_B 0.00
#define SELECT_COLOR_A 0.75
typedef enum
{ PROTEIN_GEOMETRY, PROTEIN_SELECTED_GEOMETRY, DENSITY_LEGEND_GEOMETRY,
MAP_GEOMETRY, DATAROSE_GEOMETRY
} LISTS;
#define NUM_LISTS 5
/*
* Maintain state of the model.
*/
typedef struct
{
/*
* Number of nodes having coordinates assigned.
*/
unsigned int rows;
/*
* Display lists.
*/
unsigned int list_offset;
/*
* 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
{
double min_x;
double max_x;
double min_y;
double max_y;
} ortho;
/*
* Buffer objects.
*/
unsigned int buffers[NUM_BUFFERS];
/*
* GI Identifiers indexed by row. Storage is [rows][20].
*/
char *gi_data;
/*
* 2D coordinates for each protein. Storage is [rows][2].
*/
float *base_vertices_data;
/*
* RGB color for each protein. Storage is [rows][4].
*/
float *base_colors_data;
SELECTION_INFO selection;
ZOOM_INFO zoom;
PAN_INFO pan;
/*
* Display a legend on the map.
*/
bool legend;
/*
* Display data rose.
*/
bool datarose;
} STATE;
#endif // STATE_H
|