layer0/Base.h (96 lines of code) (raw):

/* A* ------------------------------------------------------------------- B* This file contains source code for the PyMOL computer program C* Copyright (c) Schrodinger, LLC. D* ------------------------------------------------------------------- E* It is unlawful to modify or remove this copyright notice. F* ------------------------------------------------------------------- G* Please see the accompanying LICENSE file for further information. H* ------------------------------------------------------------------- I* Additional authors of this source file include: -* -* -* Z* ------------------------------------------------------------------- */ #ifndef _H_Base #define _H_Base #include "os_limits.h" #include "os_types.h" #include <vector> #ifndef PI #define PI 3.14159265358979323846 #endif typedef unsigned char uchar; typedef unsigned int uint; #define MAX_VDW 2.5F /* this has to go */ #ifndef MAXFLOAT #define MAXFLOAT FLT_MAX #endif #ifndef R_SMALL4 #define R_SMALL4 0.0001F #endif #ifndef R_SMALL8 #define R_SMALL8 0.00000001F #endif typedef struct { unsigned int index; /* atom index. NOTE: that first record contains the list count...not pick info */ int bond; /* bond index, >=0 for bond -1 for atom -2 for label -3 for gadget bond - first index in pickVLA defines what pick 0 - first pass 1 - second pass 2 - first pass, reload VBOs with pick colors 3 - second pass, reload VBOs with pick colors */ } Pickable; #define cPickableAtom -1 #define cPickableLabel -2 #define cPickableGadget -3 #define cPickableNoPick -4 #define cPuttyTransformNormalizedNonlinear 0 #define cPuttyTransformRelativeNonlinear 1 #define cPuttyTransformScaledNonlinear 2 #define cPuttyTransformAbsoluteNonlinear 3 #define cPuttyTransformNormalizedLinear 4 #define cPuttyTransformRelativeLinear 5 #define cPuttyTransformScaledLinear 6 #define cPuttyTransformAbsoluteLinear 7 #define cPuttyTransformImpliedRMS 8 typedef struct { void *object; int state; /* int instance; *//* to come... */ } PickContext; typedef struct { Pickable src; PickContext context; } Picking; typedef struct { int mode; int x, y, w, h; Picking *picked; } Multipick; typedef struct LabPosType { int mode; float pos[3]; float offset[3]; } LabPosType; typedef struct RefPosType { float coord[3]; int specified; } RefPosType; /* not a global, but CRay widely used and Ray.h definitely isn't a * lightweight include... */ typedef struct _CRay CRay; /* likewise */ #ifndef CGO_DEFINED class CGO; #define CGO_DEFINED #endif struct RenderInfo { int state; CRay *ray; CGO *alpha_cgo; std::vector<Picking>* pick = nullptr; int pass; int width_scale_flag; float front, back, stereo_front; float fog_start, fog_end; float view_normal[3]; float width_scale; float vertex_scale; /* how large is a screen pixel in model space at the origin */ int sampling; /* are we supersampling? */ int ortho; /* orthoscopic projection? */ int line_lighting; /* line lighting */ int dynamic_width; float dynamic_width_factor, dynamic_width_min, dynamic_width_max; int texture_font_size; int use_shaders; bool picking_32bit; void (*setUCColorFromIndex)(uchar *color, unsigned int idx); void (*setUCColorToZero)(uchar *color); }; #define MAXLINELEN 1024 #define PYMOL_MAX_THREADS 125 #ifndef _PYMOL_NO_XRAY #define _PYMOL_XRAY #endif // no MMLIBS in open-source #ifndef NO_MMLIBS #define NO_MMLIBS #endif #endif