1 | #ifndef M_PI |
---|
2 | #define M_PI 3.14159265358979323846 |
---|
3 | #endif |
---|
4 | |
---|
5 | #define rna3d_assert(cond) arb_assert(cond) |
---|
6 | |
---|
7 | // Awars for SAI |
---|
8 | #define AWAR_3D_SAI_SELECTED "rna3d/sai_selected" |
---|
9 | |
---|
10 | // Awars for Helix |
---|
11 | #define AWAR_3D_DISPLAY_HELIX "rna3d/display_helix" |
---|
12 | #define AWAR_3D_HELIX_BACKBONE "rna3d/helix_backbone" |
---|
13 | #define AWAR_3D_HELIX_MIDPOINT "rna3d/helix_midpoint" |
---|
14 | #define AWAR_3D_HELIX_SIZE "rna3d/helix_size" |
---|
15 | #define AWAR_3D_HELIX_FROM "rna3d/helix_from" |
---|
16 | #define AWAR_3D_HELIX_TO "rna3d/helix_to" |
---|
17 | #define AWAR_3D_HELIX_NUMBER "rna3d/helix_number" |
---|
18 | |
---|
19 | #define AWAR_3D_DISPLAY_TERTIARY_INTRACTIONS "rna3d/tertiary_interactions" |
---|
20 | |
---|
21 | // Awars for Bases |
---|
22 | #define AWAR_3D_DISPLAY_BASES "rna3d/display_bases" |
---|
23 | #define AWAR_3D_DISPLAY_SIZE "rna3d/display_size" |
---|
24 | #define AWAR_3D_BASES_MODE "rna3d/bases_mode" |
---|
25 | #define AWAR_3D_BASES_HELIX "rna3d/bases_helix" |
---|
26 | #define AWAR_3D_BASES_UNPAIRED_HELIX "rna3d/bases_unpaired_helix" |
---|
27 | #define AWAR_3D_BASES_NON_HELIX "rna3d/bases_non_helix" |
---|
28 | #define AWAR_3D_SHAPES_HELIX "rna3d/shapes_helix" |
---|
29 | #define AWAR_3D_SHAPES_UNPAIRED_HELIX "rna3d/shapes_unpaired_helix" |
---|
30 | #define AWAR_3D_SHAPES_NON_HELIX "rna3d/shapes_non_helix" |
---|
31 | |
---|
32 | // Awars for General Molecule |
---|
33 | #define AWAR_3D_MOL_BACKBONE "rna3d/mol_backbone" |
---|
34 | #define AWAR_3D_MOL_COLORIZE "rna3d/mol_colorize" |
---|
35 | #define AWAR_3D_MOL_SIZE "rna3d/mol_size" |
---|
36 | #define AWAR_3D_MOL_DISP_POS "rna3d/mol_disp_pos" |
---|
37 | #define AWAR_3D_MOL_POS_INTERVAL "rna3d/mol_pos_interval" |
---|
38 | #define AWAR_3D_MOL_ROTATE "rna3d/mol_rotate" |
---|
39 | |
---|
40 | #define AWAR_3D_MAP_SPECIES "rna3d/mol_map_species" |
---|
41 | #define AWAR_3D_MAP_SPECIES_DISP_BASE "rna3d/mol_map_species_base" |
---|
42 | #define AWAR_3D_MAP_SPECIES_DISP_POS "rna3d/mol_map_species_pos" |
---|
43 | #define AWAR_3D_MAP_SPECIES_DISP_DELETIONS "rna3d/mol_map_species_deletions" |
---|
44 | #define AWAR_3D_MAP_SPECIES_DISP_MISSING "rna3d/mol_map_species_missing" |
---|
45 | #define AWAR_3D_MAP_SPECIES_DISP_INSERTIONS "rna3d/mol_map_species_insertions" |
---|
46 | #define AWAR_3D_MAP_SPECIES_DISP_INSERTIONS_INFO "rna3d/mol_map_species_insertions_info" |
---|
47 | |
---|
48 | #define AWAR_3D_SELECTED_SPECIES "rna3d/selected_species" |
---|
49 | #define AWAR_3D_CURSOR_POSITION "rna3d/cursor_postion" |
---|
50 | |
---|
51 | #define AWAR_3D_MAP_ENABLE "rna3d/map_enable" |
---|
52 | #define AWAR_3D_MAP_SAI "rna3d/map_sai" |
---|
53 | #define AWAR_3D_MAP_SEARCH_STRINGS "rna3d/map_search_strings" |
---|
54 | |
---|
55 | #define AWAR_3D_DISPLAY_MASK "rna3d/display_mask" |
---|
56 | #define AWAR_3D_23S_RRNA_MOL "rna3d/rrna_mol_23s" |
---|
57 | |
---|
58 | typedef struct Vector3 { |
---|
59 | public: |
---|
60 | float x, y, z; |
---|
61 | |
---|
62 | Vector3() {} // A default constructor |
---|
63 | Vector3(float X, float Y, float Z) { x = X; y = Y; z = Z; } |
---|
64 | |
---|
65 | // Overloading Operator(+,-,*,/) functions |
---|
66 | |
---|
67 | // adding 2 vectors |
---|
68 | Vector3 operator+(Vector3 v) { return Vector3(v.x + x, v.y + y, v.z + z); } |
---|
69 | |
---|
70 | // substracting 2 vectors |
---|
71 | Vector3 operator-(Vector3 v) { return Vector3(x - v.x, y - v.y, z - v.z); } |
---|
72 | |
---|
73 | //multiply by scalars |
---|
74 | Vector3 operator*(float num) { return Vector3(x * num, y * num, z * num); } |
---|
75 | |
---|
76 | // divide by scalars |
---|
77 | Vector3 operator/(float num) { return Vector3(x / num, y / num, z / num); } |
---|
78 | }; |
---|
79 | |
---|
80 | |
---|
81 | // Class to store all the GLOBAL variables that are used in the application |
---|
82 | |
---|
83 | class OpenGLGraphics; |
---|
84 | class Structure3D; |
---|
85 | class Texture2D; |
---|
86 | class GLRenderer; |
---|
87 | |
---|
88 | class AW_root; |
---|
89 | class AWT_canvas; |
---|
90 | |
---|
91 | class RNA3D_Global { |
---|
92 | public: |
---|
93 | Widget glw; |
---|
94 | AW_root *root; |
---|
95 | AWT_canvas *gl_Canvas; |
---|
96 | |
---|
97 | int OpenGLEngineState; |
---|
98 | int iRotateMolecule; |
---|
99 | |
---|
100 | bool bPointSpritesSupported; |
---|
101 | bool bAutoRotate; |
---|
102 | bool bRotateMolecule; |
---|
103 | bool bDisplayMask; |
---|
104 | bool bDisplayComments; |
---|
105 | |
---|
106 | bool bEColiRefInitialised; |
---|
107 | bool bMapSearchStringsDispListCreated; |
---|
108 | bool bMapSaiDispListCreated; |
---|
109 | |
---|
110 | float ROTATION_SPEED; |
---|
111 | float saved_x, saved_y; |
---|
112 | float scale; |
---|
113 | |
---|
114 | OpenGLGraphics *cGraphics; |
---|
115 | Structure3D *cStructure; |
---|
116 | Texture2D *cTexture; |
---|
117 | GLRenderer *cRenderer; |
---|
118 | |
---|
119 | Vector3 Viewer; |
---|
120 | Vector3 Center; |
---|
121 | Vector3 Up; |
---|
122 | |
---|
123 | RNA3D_Global(); |
---|
124 | ~RNA3D_Global(); |
---|
125 | }; |
---|
126 | |
---|
127 | // global variables |
---|
128 | |
---|
129 | extern RNA3D_Global *RNA3D; |
---|
130 | extern char globalComment[1000]; |
---|
131 | |
---|
132 | void RNA3D_init_global_data(); |
---|