1 
2 
3 /*
4 A* -------------------------------------------------------------------
5 B* This file contains source code for the PyMOL computer program
6 C* Copyright (c) Schrodinger, LLC.
7 D* -------------------------------------------------------------------
8 E* It is unlawful to modify or remove this copyright notice.
9 F* -------------------------------------------------------------------
10 G* Please see the accompanying LICENSE file for further information.
11 H* -------------------------------------------------------------------
12 I* Additional authors of this source file include:
13 -*
14 -*
15 -*
16 Z* -------------------------------------------------------------------
17 */
18 #ifndef _H_Base
19 #define _H_Base
20 
21 #include "os_limits.h"
22 #include "os_types.h"
23 #include "Picking.h"
24 #include <vector>
25 
26 #ifndef PI
27 #define PI 3.14159265358979323846
28 #endif
29 
30 typedef unsigned char uchar;
31 
32 typedef unsigned int uint;
33 
34 #define MAX_VDW 2.5F            /* this has to go */
35 
36 #ifndef R_SMALL4
37 #define R_SMALL4 0.0001F
38 #endif
39 
40 #ifndef R_SMALL8
41 #define R_SMALL8 0.00000001F
42 #endif
43 
44 #define cPuttyTransformNormalizedNonlinear 0
45 #define cPuttyTransformRelativeNonlinear   1
46 #define cPuttyTransformScaledNonlinear     2
47 #define cPuttyTransformAbsoluteNonlinear   3
48 
49 #define cPuttyTransformNormalizedLinear    4
50 #define cPuttyTransformRelativeLinear      5
51 #define cPuttyTransformScaledLinear        6
52 #define cPuttyTransformAbsoluteLinear      7
53 
54 #define cPuttyTransformImpliedRMS          8
55 
56 typedef struct LabPosType {
57   int mode;
58   float pos[3];
59   float offset[3];
60 } LabPosType;
61 
62 typedef struct RefPosType {
63   float coord[3];
64   int specified;
65 } RefPosType;
66 
67 
68 /* not a global, but CRay widely used and Ray.h definitely isn't a
69  * lightweight include... */
70 
71 typedef struct _CRay CRay;
72 
73 
74 /* likewise */
75 
76 #ifndef CGO_DEFINED
77 class CGO;
78 #define CGO_DEFINED
79 #endif
80 
81 struct RenderInfo {
82   int state;
83   CRay *ray;
84   CGO *alpha_cgo;
85   PickColorManager* pick = nullptr;
86   int pass;
87   int width_scale_flag;
88   float front, back, stereo_front;
89   float fog_start, fog_end;
90   float view_normal[3];
91   float width_scale;
92   float vertex_scale;           /* how large is a screen pixel in model space at the origin */
93   int sampling;                 /* are we supersampling? */
94   int ortho;                    /* orthoscopic projection? */
95   int line_lighting;            /* line lighting */
96   int dynamic_width;
97   float dynamic_width_factor, dynamic_width_min, dynamic_width_max;
98   int texture_font_size;
99   int use_shaders;
100 };
101 
102 #define MAXLINELEN 1024
103 
104 #define PYMOL_MAX_THREADS 125
105 
106 #ifndef _PYMOL_NO_XRAY
107 #define _PYMOL_XRAY
108 #endif
109 
110 // no MMLIBS in open-source
111 #ifndef NO_MMLIBS
112 #define NO_MMLIBS
113 #endif
114 
115 #endif
116