00001 #ifndef X3DTK_X3D_INLINELOADERSTATEVARIABLES_H 00002 #define X3DTK_X3D_INLINELOADERSTATEVARIABLES_H 00003 00004 #include "StateVariables.h" 00005 #include "X3D_X3DNode.h" 00006 00007 #include <list> 00008 00009 namespace X3DTK { 00010 namespace X3D { 00011 00018 class InlineLoaderStateVariables : public StateVariables 00019 { 00020 public: 00022 InlineLoaderStateVariables(); 00024 virtual ~InlineLoaderStateVariables(); 00026 virtual void init(); 00028 virtual void finish(); 00029 00031 void addVisitedNode(SFNode N); 00033 void pushNode(SFNode N); 00035 void popNode(); 00037 void setForce(bool force); 00039 void setPath(const SFString &path); 00040 00042 inline bool hasInline() const {return _hasInline;}; 00044 inline SFNode getTop() const {return (!_nodeStack.empty() ? _nodeStack.front() : 0);}; 00046 inline bool isForced() const {return _force;}; 00048 inline SFString getPath() const {return _path;}; 00049 00050 private: 00051 bool _hasInline; 00052 bool _force; 00053 MFNode _nodeStack; 00054 std::list<SFNode> _visitedNodeList; 00055 SFString _path; 00056 }; 00057 00058 } 00059 } 00060 00061 #endif