00001
00002
00003
00005
00006
00011
00016
00021
00023
00024 #ifndef COMPONENT_H
00025 #define COMPONENT_H
00026
00027 #include "X3DTypes.h"
00028
00029 namespace X3DTK {
00030
00033
00034 class Component
00035 {
00036 friend class Type;
00037 friend class X3DComponent;
00038
00039 public:
00041 static Component *getComponent(const SFString &name);
00042
00044 inline SFString getName() const {return _name;};
00046 inline MFType getTypeList() const {return _typeList;};
00047
00048 private:
00049 Component(const SFString &name);
00050 ~Component();
00051
00053 void addType(Type *type);
00055 void addOneReference();
00057 static void removeOneReference(Component *component);
00058
00059 SFString _name;
00060 int _refCount;
00061 MFType _typeList;
00062
00063 static MFComponent _componentList;
00064 };
00065
00066 }
00067
00068 #endif