14 #ifndef OSGDB_DOTOSGWRAPPER
15 #define OSGDB_DOTOSGWRAPPER 1
17 #include <osg/ref_ptr>
20 #include <osgDB/Input>
21 #include <osgDB/Output>
45 const std::string& name,
46 const std::string& associates,
49 ReadWriteMode readWriteMode=READ_AND_WRITE);
52 inline const osg::Object*
getPrototype()
const {
return _prototype.get(); }
53 inline const std::string&
getName()
const {
return _name; }
106 bool getLibraryFileNamesToTry(
const std::string& name, FileNames& fileNames);
112 typedef std::map< std::string, osg::ref_ptr<DotOsgWrapper> > DotOsgWrapperMap;
115 void eraseWrapper(DotOsgWrapperMap& wrappermap,
DotOsgWrapper* wrapper);
117 DotOsgWrapperMap _objectWrapperMap;
118 DotOsgWrapperMap _imageWrapperMap;
119 DotOsgWrapperMap _drawableWrapperMap;
120 DotOsgWrapperMap _stateAttrWrapperMap;
121 DotOsgWrapperMap _uniformWrapperMap;
122 DotOsgWrapperMap _nodeWrapperMap;
123 DotOsgWrapperMap _shaderWrapperMap;
125 DotOsgWrapperMap _classNameWrapperMap;
136 const std::string& name,
137 const std::string& associates,
155 const std::string& name,
156 const std::string& associates,
165 #define REGISTER_DOTOSGWRAPPER(classname) \
166 extern "C" void dotosgwrapper_##classname(void) {} \
167 static osgDB::RegisterDotOsgWrapperProxy dotosgwrapper_proxy_##classname
bool(* WriteFunc)(const osg::Object &, osgDB::Output &)
std::vector< std::string > Associates
osg::ref_ptr< osg::Object > _prototype
const std::string & getName() const
ReadWriteMode getReadWriteMode() const
const osg::Object * getPrototype() const
ReadWriteMode _readWriteMode
DeprecatedDotOsgWrapperManager()
DotOsgWrapper()
protected to prevent inappropriate creation of wrappers.
DotOsgWrapper(DotOsgWrapper &)
protected to prevent inappropriate creation of wrappers.
std::list< std::string > FileNames
bool(* ReadFunc)(osg::Object &, osgDB::Input &)
WriteFunc getWriteFunc() const
ReadFunc getReadFunc() const
TemplateRegisterDotOsgWrapperProxy(osg::Object *proto, const std::string &name, const std::string &associates, DotOsgWrapper::ReadFunc readFunc, DotOsgWrapper::WriteFunc writeFunc, DotOsgWrapper::ReadWriteMode readWriteMode=DotOsgWrapper::READ_AND_WRITE)
virtual ~DotOsgWrapper()
protected to prevent wrapper being created on stack.
const Associates & getAssociates() const
osg::ref_ptr< DotOsgWrapper > _wrapper
void readImage(const osg::Image *image, O &operation)