28class UserDataContainer;
39#define _ADDQUOTES(def) #def
40#define ADDQUOTES(def) _ADDQUOTES(def)
46#define META_Object(library,name) \
47 virtual osg::Object* cloneType() const { return new name (); } \
48 virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new name (*this,copyop); } \
49 virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const name *>(obj)!=NULL; } \
50 virtual const char* libraryName() const { return #library; }\
51 virtual const char* className() const { return #name; }
54#define OSG_INIT_SINGLETON_PROXY(ProxyName, Func) static struct ProxyName{ ProxyName() { Func; } } s_##ProxyName;
71 inline explicit Object(
bool threadSafeRefUnref):
Referenced(threadSafeRefUnref),_dataVariance(UNSPECIFIED),_userDataContainer(0) {}
98 std::string
getCompoundClassName()
const {
return std::string(libraryName()) + std::string(
"::") + std::string(className()); }
203 virtual void setName(
const std::string& name ) { _name = name; }
208 if (name) setName(std::string(name));
209 else setName(std::string());
213 inline const std::string&
getName()
const {
return _name; }
280 void setUserValue(
const std::string& name,
const T& value);
321 T* ptr =
dynamic_cast<T*
>(obj.
get());
329 OSG_WARN<<
"Warning: osg::clone(const T*, osg::CopyOp&) cloned object not of type T, returning NULL."<<std::endl;
335 OSG_WARN<<
"Warning: osg::clone(const T*, osg::CopyOp&) passed null object to clone, returning NULL."<<std::endl;
346 newObject->setName(name);
351 OSG_WARN<<
"Warning: osg::clone(const T*, const std::string&, const osg::CopyOp) passed null object to clone, returning NULL."<<std::endl;
363 T* ptr =
dynamic_cast<T*
>(obj.
get());
371 OSG_WARN<<
"Warning: osg::cloneType(const T*) cloned object not of type T, returning NULL."<<std::endl;
377 OSG_WARN<<
"Warning: osg::cloneType(const T*) passed null object to clone, returning NULL."<<std::endl;
#define OSG_WARN
Definition Notify:85
@ SHALLOW_COPY
Definition CopyOp:47
DummyObject()
Definition Object:386
META_Object(osg, DummyObject) protected
Definition Object:390
DummyObject(const DummyObject &org, const CopyOp ©op)
Definition Object:387
Definition NodeVisitor:82
void setUserData(const ref_ptr< T > &ud)
Definition Object:261
virtual const char * libraryName() const =0
void setUserDataContainer(osg::UserDataContainer *udc)
void setDataVariance(DataVariance dv)
Definition Object:228
void setName(const char *name)
Definition Object:206
virtual const UserDataContainer * asUserDataContainer() const
Definition Object:179
virtual NodeVisitor * asNodeVisitor()
Definition Object:111
virtual void setName(const std::string &name)
Definition Object:203
virtual Drawable * asDrawable()
Definition Object:151
virtual const StateAttribute * asStateAttribute() const
Definition Object:131
virtual UserDataContainer * asUserDataContainer()
Definition Object:175
virtual ValueObject * asValueObject()
Definition Object:183
virtual const ValueObject * asValueObject() const
Definition Object:187
virtual const Image * asImage() const
Definition Object:195
virtual Object * clone(const CopyOp &) const =0
virtual bool isSameKindAs(const Object *) const
Definition Object:85
Object()
Definition Object:69
virtual Object * cloneType() const =0
Object(bool threadSafeRefUnref)
Definition Object:71
virtual const Uniform * asUniform() const
Definition Object:139
virtual CallbackObject * asCallbackObject()
Definition Object:167
virtual const Camera * asCamera() const
Definition Object:147
virtual StateSet * asStateSet()
Definition Object:119
DataVariance
Definition Object:217
@ DYNAMIC
Definition Object:218
@ STATIC
Definition Object:219
virtual const char * className() const =0
virtual Referenced * getUserData()
virtual Node * asNode()
Definition Object:103
osg::UserDataContainer * getUserDataContainer()
Definition Object:243
virtual StateAttribute * asStateAttribute()
Definition Object:127
void setUserDataContainer(const ref_ptr< T > &udc)
Definition Object:240
const osg::UserDataContainer * getUserDataContainer() const
Definition Object:246
virtual void computeDataVariance()
Definition Object:234
virtual Callback * asCallback()
Definition Object:159
virtual const Drawable * asDrawable() const
Definition Object:155
DataVariance _dataVariance
Definition Object:304
virtual const NodeVisitor * asNodeVisitor() const
Definition Object:115
virtual const Callback * asCallback() const
Definition Object:163
virtual void resizeGLObjectBuffers(unsigned int)
Definition Object:284
virtual const Referenced * getUserData() const
osg::UserDataContainer * _userDataContainer
Definition Object:306
virtual Image * asImage()
Definition Object:191
virtual const Node * asNode() const
Definition Object:107
virtual Uniform * asUniform()
Definition Object:135
std::string getCompoundClassName() const
Definition Object:98
virtual Camera * asCamera()
Definition Object:143
virtual const CallbackObject * asCallbackObject() const
Definition Object:171
const std::string & getName() const
Definition Object:213
virtual void setThreadSafeRefUnref(bool threadSafe)
Object(const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY)
virtual const StateSet * asStateSet() const
Definition Object:123
virtual void releaseGLObjects(osg::State *=0) const
Definition Object:289
bool getUserValue(const std::string &name, T &value) const
osg::UserDataContainer * getOrCreateUserDataContainer()
std::string _name
Definition Object:303
virtual void setUserData(Referenced *obj)
DataVariance getDataVariance() const
Definition Object:231
Definition StateAttribute:77
Definition UserDataContainer:26
Definition ValueObject:67
T * get() const
Definition ref_ptr:117
T * release()
Definition ref_ptr:126
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
void resizeGLObjectBuffers(osg::Object *object, unsigned int maxSize)
Definition Object:396
void releaseGLObjects(osg::Object *object, osg::State *state=0)
Definition Object:400
T * clone(const T *t, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
Definition Object:315
T * cloneType(const T *t)
Definition Object:357
#define OSG_EXPORT
Definition osg/Export:39