14#ifndef OSG_USERDATACONTAINER
15#define OSG_USERDATACONTAINER 1
40 virtual const char*
className()
const {
return "UserDataContainer"; }
91 virtual unsigned int getUserObjectIndex(
const std::string& name,
unsigned int startPos=0)
const = 0;
The core osg library provides the basic scene graph classes such as Nodes, State and Drawables,...
Definition AlphaFunc:19
Object * getUserObject(osg::Object *object, const std::string &name)
Convenience function for getting the User Object associated with specified name from an Object's User...
Definition UserDataContainer:207
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Base class/standard interface for objects which require IO support, cloning and reference counting.
Definition Object:61
Object()
Construct an object.
Definition Object:69
osg::UserDataContainer * getUserDataContainer()
get the UserDataContainer attached to this object.
Definition Object:243
virtual void setThreadSafeRefUnref(bool threadSafe)
Set whether to use a mutex to ensure ref() and unref() are thread safe.
virtual void setUserData(Referenced *obj)
Set user data, data must be subclassed from Referenced to allow automatic memory handling.
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
T * get() const
Definition ref_ptr:117
Base class for providing reference counted objects.
Definition Referenced:44
Internal structure for storing all user data.
Definition UserDataContainer:26
virtual UserDataContainer * asUserDataContainer()
Convert 'this' into a UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0.
Definition UserDataContainer:44
virtual bool isSameKindAs(const Object *obj) const
Definition UserDataContainer:31
virtual void addDescription(const std::string &desc)=0
Add a description string.
virtual const Referenced * getUserData() const =0
Get const user data.
virtual unsigned int addUserObject(Object *obj)=0
Add user data object.
virtual const char * libraryName() const
return the name of the object's library.
Definition UserDataContainer:36
virtual DescriptionList & getDescriptions()=0
Get the description list.
virtual const char * className() const
return the name of the object's class type.
Definition UserDataContainer:40
virtual unsigned int getNumUserObjects() const =0
Get number of user objects assigned to this object.
virtual unsigned int getNumDescriptions() const =0
Get number of description strings.
UserDataContainer(const UserDataContainer &udc, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
std::vector< std::string > DescriptionList
Definition UserDataContainer:101
virtual unsigned int getUserObjectIndex(const osg::Object *obj, unsigned int startPos=0) const =0
Get the index position of specified user data object.
virtual const Object * getUserObject(const std::string &name, unsigned int startPos=0) const
Get first const user data object with specified name.
virtual const DescriptionList & getDescriptions() const =0
Get the const description list.
virtual Referenced * getUserData()=0
Get user data.
unsigned int addUserObject(const osg::ref_ptr< T > &obj)
Definition UserDataContainer:69
virtual const Object * getUserObject(unsigned int i) const =0
Get const user data object as specified index position.
virtual void setUserData(Referenced *obj)=0
Set user data, data must be subclassed from Referenced to allow automatic memory handling.
virtual ~UserDataContainer()
Definition UserDataContainer:119
virtual void removeUserObject(unsigned int i)=0
Remove element from the list of user data objects.
virtual Object * getUserObject(const std::string &name, unsigned int startPos=0)
Get first user data object with specified name.
virtual unsigned int getUserObjectIndex(const std::string &name, unsigned int startPos=0) const =0
Get the index position of first user data object that matches specified name.
virtual void setDescriptions(const DescriptionList &descriptions)=0
Set the list of string descriptions.
virtual void setUserObject(unsigned int i, Object *obj)=0
Add element to list of user data objects.
virtual const UserDataContainer * asUserDataContainer() const
convert 'const this' into a const UserDataContainer pointer if Object is a UserDataContainer,...
Definition UserDataContainer:48
virtual Object * getUserObject(unsigned int i)=0
Get user data object as specified index position.
virtual const Object * getUserObject(unsigned int i) const
Get const user data object as specified index position.
virtual unsigned int getUserObjectIndex(const std::string &name, unsigned int startPos=0) const
Get the index position of first user data object that matches specified name.
ObjectList _objectList
Definition UserDataContainer:202
virtual void setUserObject(unsigned int i, Object *obj)
Add element to list of user data objects.
ref_ptr< Referenced > _userData
Definition UserDataContainer:200
virtual void removeUserObject(unsigned int i)
Remove element from the list of user data objects.
virtual void setDescriptions(const DescriptionList &descriptions)
Set the list of string descriptions.
virtual unsigned int getUserObjectIndex(const osg::Object *obj, unsigned int startPos=0) const
Get the index position of specified user data object.
virtual const Referenced * getUserData() const
Get const user data.
virtual const DescriptionList & getDescriptions() const
Get the const description list.
virtual unsigned int addUserObject(Object *obj)
Add user data object.
virtual Object * getUserObject(unsigned int i)
Get user data object as specified index position.
virtual unsigned int getNumUserObjects() const
Get number of user objects assigned to this object.
virtual void setUserData(Referenced *obj)
Set user data, data must be subclassed from Referenced to allow automatic memory handling.
virtual void addDescription(const std::string &desc)
Add a description string.
virtual DescriptionList & getDescriptions()
Get the description list.
META_Object(osg, DefaultUserDataContainer) virtual void setThreadSafeRefUnref(bool threadSafe)
virtual unsigned int getNumDescriptions() const
Get number of description strings.
DefaultUserDataContainer(const DefaultUserDataContainer &udc, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
DefaultUserDataContainer()
std::vector< osg::ref_ptr< osg::Object > > ObjectList
Definition UserDataContainer:198
DescriptionList _descriptionList
Definition UserDataContainer:201
virtual ~DefaultUserDataContainer()
Definition UserDataContainer:196
virtual Referenced * getUserData()
Get user data.
#define OSG_EXPORT
Definition Export:39