00001 #ifndef SFSCENEGRAPH_H 00002 #define SFSCENEGRAPH_H 00003 00004 #include "X3DTypes.h" 00005 00006 namespace X3DTK { 00007 00017 class SFSceneGraph 00018 { 00019 friend class SFComponent; 00020 00021 public: 00023 static SFSceneGraph *getSceneGraph(const SFString &name); 00024 00026 inline const SFString &getName() const {return _name;}; 00028 inline const MFComponent &getComponentList() const {return _componentList;}; 00029 00030 private: 00031 SFSceneGraph(const SFString &name); 00032 ~SFSceneGraph(); 00033 00035 void addComponent(SFComponent *component); 00037 void addOneReference(); 00039 static void removeOneReference(SFSceneGraph *sceneGraph); 00040 00041 SFString _name; 00042 int _refCount; 00043 MFComponent _componentList; 00044 00045 static MFSceneGraph _sceneGraphList; 00046 }; 00047 00048 } 00049 00050 #endif