ObjectWrapper
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
// Written by Wang Rui, (C) 2010
#ifndef OSGDB_OBJECTWRAPPER
#define OSGDB_OBJECTWRAPPER
#include <OpenThreads/ReentrantMutex>
#include <osgDB/Serializer>
#include <osg/ScriptEngine>
namespace osgDB
{
struct MethodObject : public osg::Referenced
{
typedef std::vector< osg::ref_ptr<osg::Object> > Parameters;
virtual bool run(void* objectPtr, osg::Parameters& inputParameters, osg::Parameters& outputParameters) const = 0;
virtual ~MethodObject() {}
};
class OSGDB_EXPORT BaseCompressor : public osg::Referenced
{
public:
BaseCompressor() {}
void setName( const std::string& name ) { _name = name; }
const std::string& getName() const { return _name; }
virtual bool compress( std::ostream&, const std::string& ) = 0;
virtual bool decompress( std::istream&, std::string& ) = 0;
protected:
std::string _name;
};
struct FinishedObjectReadCallback : public osg::Referenced
{
virtual void objectRead(osgDB::InputStream& is, osg::Object& obj) = 0;
};
struct OSGDB_EXPORT ObjectWrapperAssociate
{
ObjectWrapperAssociate(std::string name):_firstVersion(0),_lastVersion(INT_MAX),_name(name){}
int _firstVersion;
int _lastVersion;
std::string _name;
};
class OSGDB_EXPORT ObjectWrapper : public osg::Referenced
{
public:
typedef std::vector< BaseSerializer::Type > TypeList;
typedef std::vector< osg::ref_ptr<BaseSerializer> > SerializerList;
typedef std::vector< osg::ref_ptr<FinishedObjectReadCallback> > FinishedObjectReadCallbackList;
typedef std::list<ObjectWrapperAssociate> RevisionAssociateList;
typedef osg::Object* CreateInstanceFunc();
ObjectWrapper( CreateInstanceFunc* createInstanceFunc, const std::string& name,
const std::string& associates );
ObjectWrapper( CreateInstanceFunc* createInstanceFunc, const std::string& domain, const std::string& name,
const std::string& associates );
void setUpdatedVersion( int ver ) { _version = ver; }
int getUpdatedVersion() const { return _version; }
osg::Object* createInstance() const { return _createInstanceFunc(); }
const std::string& getDomain() const { return _domain; }
const std::string& getName() const { return _name; }
const RevisionAssociateList& getAssociates() const { return _associates; }
SerializerList& getSerializerList() { return _serializers; }
const SerializerList& getSerializerList() const { return _serializers; }
TypeList& getTypeList() { return _typeList; }
const TypeList& getTypeList() const { return _typeList; }
void addSerializer( BaseSerializer* s, BaseSerializer::Type t=BaseSerializer::RW_UNDEFINED );
void markSerializerAsRemoved( const std::string& name );
void markAssociateAsRemoved(const std::string& name);
void markAssociateAsAdded(const std::string& name);
BaseSerializer* getLastSerializer() { return _serializers.empty() ? 0 : _serializers.back().get(); }
BaseSerializer* getSerializer( const std::string& name );
BaseSerializer* getSerializer( const std::string& name, BaseSerializer::Type& type);
void addFinishedObjectReadCallback ( FinishedObjectReadCallback* forc) { _finishedObjectReadCallbacks.push_back(forc); }
bool read( InputStream&, osg::Object& );
bool write( OutputStream&, const osg::Object& );
bool readSchema( const StringList& properties, const TypeList& types );
void writeSchema( StringList& properties, TypeList& types );
void resetSchema() { if ( _backupSerializers.size()>0 ) _serializers = _backupSerializers; }
void addMethodObject(const std::string& methodName, MethodObject* mo);
typedef std::multimap< std::string, osg::ref_ptr<MethodObject> > MethodObjectMap;
MethodObjectMap& getMethodObjectMap() { return _methodObjectMap; }
const MethodObjectMap& getMethodObjectMap() const { return _methodObjectMap; }
void setupAssociatesRevisionsInheritanceIfRequired();
protected:
ObjectWrapper() : _version(0) {}
virtual ~ObjectWrapper() {}
CreateInstanceFunc* _createInstanceFunc;
std::string _domain;
std::string _name;
RevisionAssociateList _associates;
SerializerList _serializers;
SerializerList _backupSerializers;
TypeList _typeList;
FinishedObjectReadCallbackList _finishedObjectReadCallbacks;
MethodObjectMap _methodObjectMap;
int _version; // Last updated version of the wrapper
//simulate associate revisions inheritance
bool _isAssociatesRevisionsInheritanceDone;
static void splitAssociates( const std::string& src, ObjectWrapper::RevisionAssociateList& list, char separator=' ' );
};
struct UpdateWrapperVersionProxy
{
UpdateWrapperVersionProxy( ObjectWrapper* w, int v ): _wrapper(w)
{
_lastVersion = w->getUpdatedVersion();
w->setUpdatedVersion(v);
}
~UpdateWrapperVersionProxy()
{
_wrapper->setUpdatedVersion(_lastVersion);
}
ObjectWrapper* _wrapper;
int _lastVersion;
};
class Registry;
class OSGDB_EXPORT ObjectWrapperManager : public osg::Referenced
{
public:
// Wrapper handlers
void addWrapper( ObjectWrapper* wrapper );
void removeWrapper( ObjectWrapper* wrapper );
ObjectWrapper* findWrapper( const std::string& name );
typedef std::map< std::string, osg::ref_ptr<ObjectWrapper> > WrapperMap;
WrapperMap& getWrapperMap() { return _wrappers; }
const WrapperMap& getWrapperMap() const { return _wrappers; }
// Compressor handlers
void addCompressor( BaseCompressor* compressor );
void removeCompressor( BaseCompressor* compressor );
BaseCompressor* findCompressor( const std::string& name );
typedef std::map< std::string, osg::ref_ptr<BaseCompressor> > CompressorMap;
CompressorMap& getCompressorMap() { return _compressors; }
const CompressorMap& getCompressorMap() const { return _compressors; }
typedef std::map<std::string, IntLookup> IntLookupMap;
IntLookup::Value getValue( const std::string& group, const std::string& str ) { return findLookup(group).getValue(str.c_str()); }
const std::string& getString( const std::string& group, IntLookup::Value value ) { return findLookup(group).getString(value); }
IntLookupMap& getLookupMap() { return _globalMap; }
const IntLookupMap& getLookupMap() const { return _globalMap; }
protected:
friend class osgDB::Registry;
ObjectWrapperManager();
virtual ~ObjectWrapperManager();
OpenThreads::ReentrantMutex _wrapperMutex;
WrapperMap _wrappers;
CompressorMap _compressors;
IntLookup& findLookup( const std::string& group )
{
IntLookupMap::iterator itr = _globalMap.find(group);
if ( itr!=_globalMap.end() ) return itr->second;
else return _globalMap["GL"];
}
IntLookupMap _globalMap;
};
class OSGDB_EXPORT RegisterWrapperProxy
{
public:
typedef void (*AddPropFunc)( ObjectWrapper* );
RegisterWrapperProxy( ObjectWrapper::CreateInstanceFunc *createInstanceFunc, const std::string& name,
const std::string& associates, AddPropFunc func );
virtual ~RegisterWrapperProxy();
protected:
osg::ref_ptr<ObjectWrapper> _wrapper;
};
class OSGDB_EXPORT RegisterCustomWrapperProxy
{
public:
typedef void (*AddPropFunc)( const char*, ObjectWrapper* );
RegisterCustomWrapperProxy( ObjectWrapper::CreateInstanceFunc *createInstanceFunc, const std::string& domain, const std::string& name,
const std::string& associates, AddPropFunc func );
virtual ~RegisterCustomWrapperProxy();
protected:
osg::ref_ptr<ObjectWrapper> _wrapper;
};
#define REGISTER_OBJECT_WRAPPER(NAME, CREATEINSTANCE, CLASS, ASSOCIATES) \
extern "C" void wrapper_serializer_##NAME(void) {} \
extern void wrapper_propfunc_##NAME(osgDB::ObjectWrapper*); \
static osg::Object* wrapper_createinstancefunc##NAME() { return CREATEINSTANCE; } \
static osgDB::RegisterWrapperProxy wrapper_proxy_##NAME( \
wrapper_createinstancefunc##NAME, #CLASS, ASSOCIATES, &wrapper_propfunc_##NAME); \
typedef CLASS MyClass; \
void wrapper_propfunc_##NAME(osgDB::ObjectWrapper* wrapper)
#define REGISTER_OBJECT_WRAPPER2(NAME, CREATEINSTANCE, CLASS, CLASSNAME, ASSOCIATES) \
extern "C" void wrapper_serializer_##NAME(void) {} \
extern void wrapper_propfunc_##NAME(osgDB::ObjectWrapper*); \
static osg::Object* wrapper_createinstancefunc##NAME() { return CREATEINSTANCE; } \
static osgDB::RegisterWrapperProxy wrapper_proxy_##NAME( \
wrapper_createinstancefunc##NAME, CLASSNAME, ASSOCIATES, &wrapper_propfunc_##NAME); \
typedef CLASS MyClass; \
void wrapper_propfunc_##NAME(osgDB::ObjectWrapper* wrapper)
#define REGISTER_CUSTOM_OBJECT_WRAPPER(DOMAIN, NAME, CREATEINSTANCE, CLASS, ASSOCIATES) \
extern "C" void wrapper_serializer_##NAME(void) {} \
extern void wrapper_propfunc_##NAME(const char*, osgDB::ObjectWrapper*); \
static osg::Object* wrapper_createinstancefunc##NAME() { return CREATEINSTANCE; } \
static osgDB::RegisterCustomWrapperProxy wrapper_proxy_##NAME( \
wrapper_createinstancefunc##NAME, #DOMAIN, #CLASS, ASSOCIATES, &wrapper_propfunc_##NAME); \
typedef CLASS MyClass; \
void wrapper_propfunc_##NAME(const char* domain, osgDB::ObjectWrapper* wrapper)
#define REGISTER_CUSTOM_OBJECT_WRAPPER2(DOMAIN, NAME, CREATEINSTANCE, CLASS, CLASSNAME, ASSOCIATES) \
extern "C" void wrapper_serializer_##NAME(void) {} \
extern void wrapper_propfunc_##NAME(const char*, osgDB::ObjectWrapper*); \
static osg::Object* wrapper_createinstancefunc##NAME() { return CREATEINSTANCE; } \
static osgDB::RegisterCustomWrapperProxy wrapper_proxy_##NAME( \
wrapper_createinstancefunc##NAME, #DOMAIN, CLASSNAME, ASSOCIATES, &wrapper_propfunc_##NAME); \
typedef CLASS MyClass; \
void wrapper_propfunc_##NAME(const char* domain, osgDB::ObjectWrapper* wrapper)
class OSGDB_EXPORT RegisterCompressorProxy
{
public:
RegisterCompressorProxy( const std::string& name, BaseCompressor* compressor );
~RegisterCompressorProxy();
protected:
osg::ref_ptr<BaseCompressor> _compressor;
};
#define REGISTER_COMPRESSOR(NAME, CLASS) \
extern "C" void wrapper_compressor_##CLASS(void) {} \
static osgDB::RegisterCompressorProxy compressor_proxy_##CLASS(NAME, new CLASS);
}
#endif
ReentrantMutex
Serializer
OpenThreads::ReentrantMutex
Definition ReentrantMutex:24
osgDB::BaseCompressor
Definition ObjectWrapper:35
osgDB::BaseCompressor::BaseCompressor
BaseCompressor()
Definition ObjectWrapper:37
osgDB::BaseCompressor::setName
void setName(const std::string &name)
Definition ObjectWrapper:38
osgDB::BaseCompressor::decompress
virtual bool decompress(std::istream &, std::string &)=0
osgDB::BaseCompressor::compress
virtual bool compress(std::ostream &, const std::string &)=0
osgDB::BaseCompressor::getName
const std::string & getName() const
Definition ObjectWrapper:39
osgDB::BaseCompressor::_name
std::string _name
Definition ObjectWrapper:45
osgDB::BaseSerializer
Definition Serializer:141
osgDB::BaseSerializer::Type
Type
Definition Serializer:145
osgDB::BaseSerializer::RW_UNDEFINED
@ RW_UNDEFINED
Definition Serializer:146
osgDB::InputStream
Definition InputStream:64
osgDB::IntLookup
Definition Serializer:40
osgDB::IntLookup::Value
int Value
Definition Serializer:42
osgDB::ObjectWrapperManager::findLookup
IntLookup & findLookup(const std::string &group)
Definition ObjectWrapper:197
osgDB::ObjectWrapperManager::WrapperMap
std::map< std::string, osg::ref_ptr< ObjectWrapper > > WrapperMap
Definition ObjectWrapper:165
osgDB::ObjectWrapperManager::findWrapper
ObjectWrapper * findWrapper(const std::string &name)
osgDB::ObjectWrapperManager::getString
const std::string & getString(const std::string &group, IntLookup::Value value)
Definition ObjectWrapper:180
osgDB::ObjectWrapperManager::_wrapperMutex
OpenThreads::ReentrantMutex _wrapperMutex
Definition ObjectWrapper:192
osgDB::ObjectWrapperManager::getLookupMap
IntLookupMap & getLookupMap()
Definition ObjectWrapper:182
osgDB::ObjectWrapperManager::getCompressorMap
const CompressorMap & getCompressorMap() const
Definition ObjectWrapper:176
osgDB::ObjectWrapperManager::addCompressor
void addCompressor(BaseCompressor *compressor)
osgDB::ObjectWrapperManager::findCompressor
BaseCompressor * findCompressor(const std::string &name)
osgDB::ObjectWrapperManager::getLookupMap
const IntLookupMap & getLookupMap() const
Definition ObjectWrapper:183
osgDB::ObjectWrapperManager::removeWrapper
void removeWrapper(ObjectWrapper *wrapper)
osgDB::ObjectWrapperManager::getCompressorMap
CompressorMap & getCompressorMap()
Definition ObjectWrapper:175
osgDB::ObjectWrapperManager::ObjectWrapperManager
ObjectWrapperManager()
osgDB::ObjectWrapperManager::_compressors
CompressorMap _compressors
Definition ObjectWrapper:195
osgDB::ObjectWrapperManager::_wrappers
WrapperMap _wrappers
Definition ObjectWrapper:194
osgDB::ObjectWrapperManager::CompressorMap
std::map< std::string, osg::ref_ptr< BaseCompressor > > CompressorMap
Definition ObjectWrapper:174
osgDB::ObjectWrapperManager::removeCompressor
void removeCompressor(BaseCompressor *compressor)
osgDB::ObjectWrapperManager::_globalMap
IntLookupMap _globalMap
Definition ObjectWrapper:204
osgDB::ObjectWrapperManager::getWrapperMap
WrapperMap & getWrapperMap()
Definition ObjectWrapper:166
osgDB::ObjectWrapperManager::IntLookupMap
std::map< std::string, IntLookup > IntLookupMap
Definition ObjectWrapper:178
osgDB::ObjectWrapperManager::~ObjectWrapperManager
virtual ~ObjectWrapperManager()
osgDB::ObjectWrapperManager::addWrapper
void addWrapper(ObjectWrapper *wrapper)
osgDB::ObjectWrapperManager::getValue
IntLookup::Value getValue(const std::string &group, const std::string &str)
Definition ObjectWrapper:179
osgDB::ObjectWrapperManager::getWrapperMap
const WrapperMap & getWrapperMap() const
Definition ObjectWrapper:167
osgDB::ObjectWrapper
Definition ObjectWrapper:62
osgDB::ObjectWrapper::_serializers
SerializerList _serializers
Definition ObjectWrapper:126
osgDB::ObjectWrapper::_createInstanceFunc
CreateInstanceFunc * _createInstanceFunc
Definition ObjectWrapper:122
osgDB::ObjectWrapper::resetSchema
void resetSchema()
Definition ObjectWrapper:107
osgDB::ObjectWrapper::getName
const std::string & getName() const
Definition ObjectWrapper:80
osgDB::ObjectWrapper::_typeList
TypeList _typeList
Definition ObjectWrapper:128
osgDB::ObjectWrapper::_finishedObjectReadCallbacks
FinishedObjectReadCallbackList _finishedObjectReadCallbacks
Definition ObjectWrapper:129
osgDB::ObjectWrapper::addSerializer
void addSerializer(BaseSerializer *s, BaseSerializer::Type t=BaseSerializer::RW_UNDEFINED)
osgDB::ObjectWrapper::setupAssociatesRevisionsInheritanceIfRequired
void setupAssociatesRevisionsInheritanceIfRequired()
osgDB::ObjectWrapper::getSerializerList
SerializerList & getSerializerList()
Definition ObjectWrapper:84
osgDB::ObjectWrapper::readSchema
bool readSchema(const StringList &properties, const TypeList &types)
osgDB::ObjectWrapper::SerializerList
std::vector< osg::ref_ptr< BaseSerializer > > SerializerList
Definition ObjectWrapper:65
osgDB::ObjectWrapper::write
bool write(OutputStream &, const osg::Object &)
osgDB::ObjectWrapper::ObjectWrapper
ObjectWrapper(CreateInstanceFunc *createInstanceFunc, const std::string &domain, const std::string &name, const std::string &associates)
osgDB::ObjectWrapper::getSerializerList
const SerializerList & getSerializerList() const
Definition ObjectWrapper:85
osgDB::ObjectWrapper::ObjectWrapper
ObjectWrapper(CreateInstanceFunc *createInstanceFunc, const std::string &name, const std::string &associates)
osgDB::ObjectWrapper::getTypeList
TypeList & getTypeList()
Definition ObjectWrapper:87
osgDB::ObjectWrapper::getTypeList
const TypeList & getTypeList() const
Definition ObjectWrapper:88
osgDB::ObjectWrapper::_associates
RevisionAssociateList _associates
Definition ObjectWrapper:125
osgDB::ObjectWrapper::getAssociates
const RevisionAssociateList & getAssociates() const
Definition ObjectWrapper:82
osgDB::ObjectWrapper::addMethodObject
void addMethodObject(const std::string &methodName, MethodObject *mo)
osgDB::ObjectWrapper::RevisionAssociateList
std::list< ObjectWrapperAssociate > RevisionAssociateList
Definition ObjectWrapper:67
osgDB::ObjectWrapper::getMethodObjectMap
const MethodObjectMap & getMethodObjectMap() const
Definition ObjectWrapper:114
osgDB::ObjectWrapper::getDomain
const std::string & getDomain() const
Definition ObjectWrapper:79
osgDB::ObjectWrapper::addFinishedObjectReadCallback
void addFinishedObjectReadCallback(FinishedObjectReadCallback *forc)
Definition ObjectWrapper:100
osgDB::ObjectWrapper::createInstance
osg::Object * createInstance() const
Definition ObjectWrapper:78
osgDB::ObjectWrapper::_name
std::string _name
Definition ObjectWrapper:124
osgDB::ObjectWrapper::~ObjectWrapper
virtual ~ObjectWrapper()
Definition ObjectWrapper:120
osgDB::ObjectWrapper::getLastSerializer
BaseSerializer * getLastSerializer()
Definition ObjectWrapper:96
osgDB::ObjectWrapper::writeSchema
void writeSchema(StringList &properties, TypeList &types)
osgDB::ObjectWrapper::getSerializer
BaseSerializer * getSerializer(const std::string &name)
osgDB::ObjectWrapper::read
bool read(InputStream &, osg::Object &)
osgDB::ObjectWrapper::MethodObjectMap
std::multimap< std::string, osg::ref_ptr< MethodObject > > MethodObjectMap
Definition ObjectWrapper:111
osgDB::ObjectWrapper::markSerializerAsRemoved
void markSerializerAsRemoved(const std::string &name)
osgDB::ObjectWrapper::_domain
std::string _domain
Definition ObjectWrapper:123
osgDB::ObjectWrapper::TypeList
std::vector< BaseSerializer::Type > TypeList
Definition ObjectWrapper:64
osgDB::ObjectWrapper::CreateInstanceFunc
osg::Object * CreateInstanceFunc()
Definition ObjectWrapper:68
osgDB::ObjectWrapper::FinishedObjectReadCallbackList
std::vector< osg::ref_ptr< FinishedObjectReadCallback > > FinishedObjectReadCallbackList
Definition ObjectWrapper:66
osgDB::ObjectWrapper::_version
int _version
Definition ObjectWrapper:131
osgDB::ObjectWrapper::getUpdatedVersion
int getUpdatedVersion() const
Definition ObjectWrapper:76
osgDB::ObjectWrapper::_methodObjectMap
MethodObjectMap _methodObjectMap
Definition ObjectWrapper:130
osgDB::ObjectWrapper::markAssociateAsRemoved
void markAssociateAsRemoved(const std::string &name)
osgDB::ObjectWrapper::ObjectWrapper
ObjectWrapper()
Definition ObjectWrapper:119
osgDB::ObjectWrapper::splitAssociates
static void splitAssociates(const std::string &src, ObjectWrapper::RevisionAssociateList &list, char separator=' ')
osgDB::ObjectWrapper::setUpdatedVersion
void setUpdatedVersion(int ver)
Definition ObjectWrapper:75
osgDB::ObjectWrapper::_backupSerializers
SerializerList _backupSerializers
Definition ObjectWrapper:127
osgDB::ObjectWrapper::_isAssociatesRevisionsInheritanceDone
bool _isAssociatesRevisionsInheritanceDone
Definition ObjectWrapper:133
osgDB::ObjectWrapper::getSerializer
BaseSerializer * getSerializer(const std::string &name, BaseSerializer::Type &type)
osgDB::ObjectWrapper::getMethodObjectMap
MethodObjectMap & getMethodObjectMap()
Definition ObjectWrapper:113
osgDB::ObjectWrapper::markAssociateAsAdded
void markAssociateAsAdded(const std::string &name)
osgDB::OutputStream
Definition OutputStream:57
osgDB::RegisterCompressorProxy::_compressor
osg::ref_ptr< BaseCompressor > _compressor
Definition ObjectWrapper:279
osgDB::RegisterCompressorProxy::~RegisterCompressorProxy
~RegisterCompressorProxy()
osgDB::RegisterCompressorProxy::RegisterCompressorProxy
RegisterCompressorProxy(const std::string &name, BaseCompressor *compressor)
osgDB::RegisterCustomWrapperProxy::AddPropFunc
void(* AddPropFunc)(const char *, ObjectWrapper *)
Definition ObjectWrapper:225
osgDB::RegisterCustomWrapperProxy::RegisterCustomWrapperProxy
RegisterCustomWrapperProxy(ObjectWrapper::CreateInstanceFunc *createInstanceFunc, const std::string &domain, const std::string &name, const std::string &associates, AddPropFunc func)
osgDB::RegisterCustomWrapperProxy::~RegisterCustomWrapperProxy
virtual ~RegisterCustomWrapperProxy()
osgDB::RegisterCustomWrapperProxy::_wrapper
osg::ref_ptr< ObjectWrapper > _wrapper
Definition ObjectWrapper:233
osgDB::RegisterWrapperProxy::RegisterWrapperProxy
RegisterWrapperProxy(ObjectWrapper::CreateInstanceFunc *createInstanceFunc, const std::string &name, const std::string &associates, AddPropFunc func)
osgDB::RegisterWrapperProxy::_wrapper
osg::ref_ptr< ObjectWrapper > _wrapper
Definition ObjectWrapper:219
osgDB::RegisterWrapperProxy::~RegisterWrapperProxy
virtual ~RegisterWrapperProxy()
osgDB::RegisterWrapperProxy::AddPropFunc
void(* AddPropFunc)(ObjectWrapper *)
Definition ObjectWrapper:211
osgDB::Registry
Definition osgDB/Registry:54
osg::Object
Definition Object:61
osg::Referenced
Definition Referenced:44
osg::ref_ptr
Definition ref_ptr:32
osgDB
Definition Archive:24
osgDB::StringList
std::vector< std::string > StringList
Definition Serializer:31
osg::Parameters
std::vector< osg::ref_ptr< osg::Object > > Parameters
Definition Callback:130
OSGDB_EXPORT
#define OSGDB_EXPORT
Definition osgDB/Export:39
ScriptEngine
osgDB::FinishedObjectReadCallback
Definition ObjectWrapper:49
osgDB::FinishedObjectReadCallback::objectRead
virtual void objectRead(osgDB::InputStream &is, osg::Object &obj)=0
osgDB::MethodObject
Definition ObjectWrapper:26
osgDB::MethodObject::~MethodObject
virtual ~MethodObject()
Definition ObjectWrapper:31
osgDB::MethodObject::Parameters
std::vector< osg::ref_ptr< osg::Object > > Parameters
Definition ObjectWrapper:27
osgDB::MethodObject::run
virtual bool run(void *objectPtr, osg::Parameters &inputParameters, osg::Parameters &outputParameters) const =0
osgDB::ObjectWrapperAssociate::_firstVersion
int _firstVersion
Definition ObjectWrapper:56
osgDB::ObjectWrapperAssociate::_lastVersion
int _lastVersion
Definition ObjectWrapper:57
osgDB::ObjectWrapperAssociate::_name
std::string _name
Definition ObjectWrapper:58
osgDB::ObjectWrapperAssociate::ObjectWrapperAssociate
ObjectWrapperAssociate(std::string name)
Definition ObjectWrapper:55
osgDB::UpdateWrapperVersionProxy::UpdateWrapperVersionProxy
UpdateWrapperVersionProxy(ObjectWrapper *w, int v)
Definition ObjectWrapper:139
osgDB::UpdateWrapperVersionProxy::_lastVersion
int _lastVersion
Definition ObjectWrapper:151
osgDB::UpdateWrapperVersionProxy::~UpdateWrapperVersionProxy
~UpdateWrapperVersionProxy()
Definition ObjectWrapper:145
osgDB::UpdateWrapperVersionProxy::_wrapper
ObjectWrapper * _wrapper
Definition ObjectWrapper:150