00001 00002 // GLBuilderGlobalVariables.h // 00004 00005 #ifndef GLBUILDERGLOBALVARIABLES_H 00006 #define GLBUILDERGLOBALVARIABLES_H 00007 00008 #include "GlobalVariables.h" 00009 #include "GL_X3DNode.h" 00010 00011 #include <map> 00012 00013 namespace X3DTK { 00014 namespace X3D { 00015 00017 00018 class GLBuilderGlobalVariables : public GlobalVariables 00019 { 00020 public: 00022 GLBuilderGlobalVariables(); 00024 virtual ~GLBuilderGlobalVariables(); 00026 void init(); 00028 virtual void finish(); 00029 00031 void addCoupleNode(SFNode N, GL::SFNode GN); 00033 void pushNode(GL::SFNode N); 00035 void popNode(); 00036 00038 inline GL::SFNode getRoot() const {return _root;}; 00040 inline GL::SFNode getTop() const {return (!_nodeStack.empty() ? _nodeStack.front() : 0);}; 00042 GL::SFNode getNode(SFNode N) const; 00043 00044 private: 00045 GL::SFNode _root; 00046 GL::MFNode _nodeStack; 00047 std::map<SFNode, GL::SFNode> _nodeCoupleMap; 00048 }; 00049 00050 } 00051 } 00052 00053 #endif