00001 00002 00003 00005 00006 00011 00016 00021 // SceneSaverGlobalVariables.h // 00023 00024 #ifndef SCENESAVERGLOBALVARIABLES_H 00025 #define SCENESAVERGLOBALVARIABLES_H 00026 00027 #include "GlobalVariables.h" 00028 #include "NameDict.h" 00029 00030 #include <list> 00031 00032 namespace X3DTK { 00033 namespace X3D { 00034 00036 00037 class SceneSaverGlobalVariables : public GlobalVariables 00038 { 00039 public: 00041 SceneSaverGlobalVariables(); 00043 virtual ~SceneSaverGlobalVariables(); 00044 00046 void pushHasUSE(bool value); 00047 00049 void newLine(); 00051 void pushCurrentLine(); 00053 void writeCurrentLine(const SFString &string); 00055 void writeOpeningLine(const SFString &string); 00056 00058 void addTab(); 00060 void removeTab(); 00061 00063 inline MFString getOutput() const {return _output;}; 00065 bool hasChild(); 00067 void popLine(); 00069 inline bool getHasUSE() const {return _hasUSEStack.front();}; 00071 void popHasUSE(); 00073 inline SFString getTab() const {return _tab;}; 00075 SFString getDEF(const SFNode &N); 00077 SFString getUSE(const SFNode &N) const; 00078 00079 private: 00080 int _lineNumber; 00081 MFString _output; 00082 SFString _tab; 00083 std::list<int> _lineStack; 00084 std::list<bool> _hasUSEStack; 00085 std::list<SFString> _DEFList; 00086 }; 00087 00088 } 00089 } 00090 00091 #endif