source: branches/help/RNA3D/RNA3D_Global.hxx

Last change on this file was 16765, checked in by westram, 7 years ago
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
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
79struct 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
103class OpenGLGraphics;
104class Structure3D;
105class Texture2D;
106class GLRenderer;
107
108class AW_root;
109class AWT_canvas;
110struct ED4_plugin_host;
111
112struct RNA3D_Global : virtual Noncopyable {
113    Widget      glw;
114    AW_root    *root;
115    AWT_canvas *gl_Canvas;
116
117    int OpenGLEngineState;
118    int iRotateMolecule;
119
120    bool bPointSpritesSupported;
121    bool bAutoRotate;
122    bool bRotateMolecule;
123    bool bDisplayMask;
124    bool bDisplayComments;
125
126    bool bEColiRefInitialized;
127    bool bMapSearchStringsDispListCreated;
128    bool bMapSaiDispListCreated;
129
130    float ROTATION_SPEED;
131    float saved_x, saved_y;
132    float scale;
133
134    OpenGLGraphics *cGraphics;
135    Structure3D    *cStructure;
136    Texture2D      *cTexture;
137    GLRenderer     *cRenderer;
138
139    Vector3 Viewer;
140    Vector3 Center;
141    Vector3 Up;
142
143    RNA3D_Global(ED4_plugin_host& host);
144    ~RNA3D_Global();
145};
146
147// global variables
148
149extern RNA3D_Global *RNA3D;
150
151void RNA3D_init_global_data(ED4_plugin_host& host);
152
153#else
154#error RNA3D_Global.hxx included twice
155#endif // RNA3D_GLOBAL_HXX
Note: See TracBrowser for help on using the repository browser.