|
From: Dave R. <tr...@us...> - 2004-09-30 10:42:53
|
Update of /cvsroot/bzflag/bzflag/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22361/include Modified Files: TankGeometryMgr.h TankSceneNode.h Log Message: - converted TankGeometryMgr into a namespace with static data members - threw some DEBUG3's into TankGeometryMgr - re-added the contextInitializer test key with shift-alt-X (when DEBUG_RENDERING is defined) Index: TankGeometryMgr.h =================================================================== RCS file: /cvsroot/bzflag/bzflag/include/TankGeometryMgr.h,v retrieving revision 1.4 retrieving revision 1.5 diff -w -u -r1.4 -r1.5 --- TankGeometryMgr.h 29 Sep 2004 14:20:11 -0000 1.4 +++ TankGeometryMgr.h 30 Sep 2004 10:42:36 -0000 1.5 @@ -21,9 +21,6 @@ #include "SceneNode.h" -extern class TankGeometryMgr TANKGEOMMGR; - - namespace TankGeometryEnums { enum TankShadow { @@ -75,89 +72,21 @@ } -class TankGeometryMgr { - - public: - TankGeometryMgr(); - ~TankGeometryMgr(); +namespace TankGeometryMgr { - // rebuild the display lists - void rebuildLists(); - - // grab a list, make dem graphics - GLuint getPartList(TankGeometryEnums::TankShadow shadow, - TankGeometryEnums::TankPart part, - TankGeometryEnums::TankSize size, - TankGeometryEnums::TankLOD lod) const; - - // for doVertex3f(), doNormal3f(), and doTexCoord2f() - static TankGeometryEnums::TankShadow getShadowMode(); // const - static const float* currentScaleFactor(); // const - static const float* getScaleFactor( - TankGeometryEnums::TankSize size); // const - - - private: - // delete the display lists + void init(); + void kill(); + void buildLists(); void deleteLists(); - // setup the scaling factors, and a callback BZDB - static void setupScales(const std::string& name, void *data); - - // for the OpenGLGState callback - static void initContext(void*); - - private: - // display lists for drawing each part at different - // sizes and at different Levels Of Detail - static GLuint displayLists[TankGeometryEnums::LastTankShadow] - [TankGeometryEnums::LastTankLOD] - [TankGeometryEnums::LastTankSize] - [TankGeometryEnums::LastTankPart]; - - // scaling factors for the different sizes - static GLfloat scaleFactors[TankGeometryEnums::LastTankSize][3]; - - // for currentVertexScale() and currentNormalScale() - static const float* scaleFactor; - - // shadow mode - static TankGeometryEnums::TankShadow shadowMode; - - // functions that make the basic tank parts - typedef void (*PartFunction)(void); - static const PartFunction partFunctions[TankGeometryEnums::LastTankLOD] - [TankGeometryEnums::BasicTankParts]; - - // BZDB callback status - bool callbacksInstalled; -}; - -inline GLuint TankGeometryMgr::getPartList(TankGeometryEnums::TankShadow shadow, + GLuint getPartList(TankGeometryEnums::TankShadow shadow, TankGeometryEnums::TankPart part, TankGeometryEnums::TankSize size, - TankGeometryEnums::TankLOD lod) const -{ - return displayLists[shadow][lod][size][part]; -} + TankGeometryEnums::TankLOD lod); -inline TankGeometryEnums::TankShadow TankGeometryMgr::getShadowMode() -{ - return shadowMode; + const float* getScaleFactor(TankGeometryEnums::TankSize size); } -inline const float* TankGeometryMgr::getScaleFactor( - TankGeometryEnums::TankSize size) -{ - return scaleFactors[size]; -} - -inline const float* TankGeometryMgr::currentScaleFactor() -{ - return scaleFactor; -} - - namespace TankGeometryUtils { @@ -191,8 +120,8 @@ void buildHighBody (void); void buildHighBarrel (void); void buildHighTurret (void); - void buildHighLCasing (int divs); - void buildHighRCasing (int divs); + void buildHighLCasing (void); + void buildHighRCasing (void); void buildHighLTread (int divs); void buildHighRTread (int divs); Index: TankSceneNode.h =================================================================== RCS file: /cvsroot/bzflag/bzflag/include/TankSceneNode.h,v retrieving revision 1.30 retrieving revision 1.31 diff -w -u -r1.30 -r1.31 --- TankSceneNode.h 29 Sep 2004 14:20:11 -0000 1.30 +++ TankSceneNode.h 30 Sep 2004 10:42:36 -0000 1.31 @@ -94,14 +94,15 @@ void setThief(); void setExplodeFraction(float t); void setClipPlane(const GLfloat* plane); + void setDrawClose(bool close); void addTreadOffsets(float left, float right); // hidden still renders shadow (turns off cloaked) - void setHidden(bool hidden = true); + void setHidden(bool hidden); // cloaked renders nothing if color[3] = 0.0f (turns off hidden) - void setCloaked(bool cloaked = true); + void setCloaked(bool cloaked); static void setMaxLOD(int maxLevel); @@ -154,6 +155,7 @@ bool transparent, sort; float explodeFraction; bool clip; + bool drawClose; GLfloat colorOverride[4]; GLfloat color[4]; GLdouble clipPlane[4]; |