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