ARB
RNA3D_Global.hxx
Go to the documentation of this file.
1 // ============================================================= //
2 // //
3 // File : RNA3D_Global.hxx //
4 // Purpose : //
5 // //
6 // Institute of Microbiology (Technical University Munich) //
7 // http://www.arb-home.de/ //
8 // //
9 // ============================================================= //
10 
11 #ifndef RNA3D_GLOBAL_HXX
12 #define RNA3D_GLOBAL_HXX
13 
14 #ifndef ARBTOOLS_H
15 #include <arbtools.h>
16 #endif
17 
18 #ifndef ARB_OPENGL
19 #error shall only be compiled in ARB_OPENGL mode
20 #endif // ARB_OPENGL
21 
22 #ifndef M_PI
23 #define M_PI 3.14159265358979323846
24 #endif
25 
26 #define rna3d_assert(cond) arb_assert(cond)
27 
28 // Awars for SAI
29 #define AWAR_3D_SAI_SELECTED "rna3d/sai_selected"
30 
31 // Awars for Helix
32 #define AWAR_3D_DISPLAY_HELIX "rna3d/display_helix"
33 #define AWAR_3D_HELIX_BACKBONE "rna3d/helix_backbone"
34 #define AWAR_3D_HELIX_MIDPOINT "rna3d/helix_midpoint"
35 #define AWAR_3D_HELIX_SIZE "rna3d/helix_size"
36 #define AWAR_3D_HELIX_FROM "rna3d/helix_from"
37 #define AWAR_3D_HELIX_TO "rna3d/helix_to"
38 #define AWAR_3D_HELIX_NUMBER "rna3d/helix_number"
39 
40 #define AWAR_3D_DISPLAY_TERTIARY_INTRACTIONS "rna3d/tertiary_interactions"
41 
42 // Awars for Bases
43 #define AWAR_3D_DISPLAY_BASES "rna3d/display_bases"
44 #define AWAR_3D_DISPLAY_SIZE "rna3d/display_size"
45 #define AWAR_3D_BASES_MODE "rna3d/bases_mode"
46 #define AWAR_3D_BASES_HELIX "rna3d/bases_helix"
47 #define AWAR_3D_BASES_UNPAIRED_HELIX "rna3d/bases_unpaired_helix"
48 #define AWAR_3D_BASES_NON_HELIX "rna3d/bases_non_helix"
49 #define AWAR_3D_SHAPES_HELIX "rna3d/shapes_helix"
50 #define AWAR_3D_SHAPES_UNPAIRED_HELIX "rna3d/shapes_unpaired_helix"
51 #define AWAR_3D_SHAPES_NON_HELIX "rna3d/shapes_non_helix"
52 
53 // Awars for General Molecule
54 #define AWAR_3D_MOL_BACKBONE "rna3d/mol_backbone"
55 #define AWAR_3D_MOL_COLORIZE "rna3d/mol_colorize"
56 #define AWAR_3D_MOL_SIZE "rna3d/mol_size"
57 #define AWAR_3D_MOL_DISP_POS "rna3d/mol_disp_pos"
58 #define AWAR_3D_MOL_POS_INTERVAL "rna3d/mol_pos_interval"
59 #define AWAR_3D_MOL_ROTATE "rna3d/mol_rotate"
60 
61 #define AWAR_3D_MAP_SPECIES "rna3d/mol_map_species"
62 #define AWAR_3D_MAP_SPECIES_DISP_BASE "rna3d/mol_map_species_base"
63 #define AWAR_3D_MAP_SPECIES_DISP_POS "rna3d/mol_map_species_pos"
64 #define AWAR_3D_MAP_SPECIES_DISP_DELETIONS "rna3d/mol_map_species_deletions"
65 #define AWAR_3D_MAP_SPECIES_DISP_MISSING "rna3d/mol_map_species_missing"
66 #define AWAR_3D_MAP_SPECIES_DISP_INSERTIONS "rna3d/mol_map_species_insertions"
67 #define AWAR_3D_MAP_SPECIES_DISP_INSERTIONS_INFO "rna3d/mol_map_species_insertions_info"
68 
69 #define AWAR_3D_SELECTED_SPECIES "rna3d/selected_species"
70 #define AWAR_3D_CURSOR_POSITION "rna3d/cursor_postion"
71 
72 #define AWAR_3D_MAP_ENABLE "rna3d/map_enable"
73 #define AWAR_3D_MAP_SAI "rna3d/map_sai"
74 #define AWAR_3D_MAP_SEARCH_STRINGS "rna3d/map_search_strings"
75 
76 #define AWAR_3D_DISPLAY_MASK "rna3d/display_mask"
77 #define AWAR_3D_23S_RRNA_MOL "rna3d/rrna_mol_23s"
78 
79 struct Vector3 {
80  float x, y, z;
81 
82  Vector3() : x(0), y(0), z(0) {} // default is zero vector
83  Vector3(float X, float Y, float Z) : x(X), y(Y), z(Z) {}
84 
85  // Overloading Operator(+,-,*,/) functions
86 
87  // adding 2 vectors
88  Vector3 operator+(Vector3 v) { return Vector3(v.x + x, v.y + y, v.z + z); }
89 
90  // subtracting 2 vectors
91  Vector3 operator-(Vector3 v) { return Vector3(x - v.x, y - v.y, z - v.z); }
92 
93  // multiply by scalars
94  Vector3 operator*(float num) { return Vector3(x * num, y * num, z * num); }
95 
96  // divide by scalars
97  Vector3 operator/(float num) { return Vector3(x / num, y / num, z / num); }
98 };
99 
100 
101 // Class to store all the GLOBAL variables that are used in the application
102 
103 class OpenGLGraphics;
104 class Structure3D;
105 class Texture2D;
106 class GLRenderer;
107 
108 class AW_root;
109 class AWT_canvas;
110 struct ED4_plugin_host;
111 
112 struct RNA3D_Global : virtual Noncopyable {
116 
119 
125 
129 
131  float saved_x, saved_y;
132  float scale;
133 
134  OpenGLGraphics *cGraphics;
136  Texture2D *cTexture;
137  GLRenderer *cRenderer;
138 
142 
144  ~RNA3D_Global();
145 };
146 
147 // global variables
148 
149 extern RNA3D_Global *RNA3D;
150 
152 
153 #else
154 #error RNA3D_Global.hxx included twice
155 #endif // RNA3D_GLOBAL_HXX
Texture2D * cTexture
Structure3D * cStructure
Vector3 operator/(float num)
float ROTATION_SPEED
bool bEColiRefInitialized
Vector3 operator+(Vector3 v)
static Island * Z
Definition: align.cxx:71
Vector3 operator*(float num)
bool bMapSearchStringsDispListCreated
AWT_canvas * gl_Canvas
bool bMapSaiDispListCreated
Vector3 operator-(Vector3 v)
GLRenderer * cRenderer
Vector3(float X, float Y, float Z)
void RNA3D_init_global_data(ED4_plugin_host &host)
RNA3D_Global(ED4_plugin_host &host)
bool bPointSpritesSupported
RNA3D_Global * RNA3D
OpenGLGraphics * cGraphics
struct _WidgetRec * Widget
Definition: aw_base.hxx:48
AW_root * root