14 #ifndef OSG_USERDATACONTAINER
15 #define OSG_USERDATACONTAINER 1
40 virtual const char*
className()
const {
return "UserDataContainer"; }
54 virtual const Referenced* getUserData()
const = 0;
57 virtual unsigned int addUserObject(
Object* obj) = 0;
60 virtual void setUserObject(
unsigned int i,
Object* obj) = 0;
63 virtual void removeUserObject(
unsigned int i) = 0;
73 virtual unsigned int getNumUserObjects()
const = 0;
76 virtual unsigned int getUserObjectIndex(
const osg::Object* obj,
unsigned int startPos=0)
const = 0;
79 virtual unsigned int getUserObjectIndex(
const std::string& name,
unsigned int startPos=0)
const = 0;
86 virtual const Object*
getUserObject(
const std::string& name,
unsigned int startPos=0)
const;
92 virtual void setDescriptions(
const DescriptionList& descriptions) = 0;
95 virtual DescriptionList& getDescriptions() = 0;
98 virtual const DescriptionList& getDescriptions()
const = 0;
101 virtual unsigned int getNumDescriptions()
const = 0;
104 virtual void addDescription(
const std::string& desc) = 0;
120 virtual void setThreadSafeRefUnref(
bool threadSafe);
134 virtual const Referenced* getUserData()
const;
137 virtual unsigned int addUserObject(
Object* obj);
140 virtual void setUserObject(
unsigned int i,
Object* obj);
143 virtual void removeUserObject(
unsigned int i);
153 virtual unsigned int getNumUserObjects()
const;
156 virtual unsigned int getUserObjectIndex(
const osg::Object* obj,
unsigned int startPos=0)
const;
159 virtual unsigned int getUserObjectIndex(
const std::string& name,
unsigned int startPos=0)
const;
165 virtual void setDescriptions(
const DescriptionList& descriptions);
168 virtual DescriptionList& getDescriptions();
171 virtual const DescriptionList& getDescriptions()
const;
174 virtual unsigned int getNumDescriptions()
const;
177 virtual void addDescription(
const std::string& desc);
std::vector< osg::ref_ptr< osg::Object > > ObjectList
std::vector< std::string > DescriptionList
Object * getUserObject(osg::Object *object, const std::string &name)
ref_ptr< Referenced > _userData
virtual ~UserDataContainer()
virtual Object * getUserObject(unsigned int i)=0
#define META_Object(library, name)
DescriptionList _descriptionList
virtual bool isSameKindAs(const Object *obj) const
virtual const char * libraryName() const
virtual const char * className() const
osg::UserDataContainer * getUserDataContainer()
virtual ~DefaultUserDataContainer()