From Paul Martz, "here's the osgDB::Registry changes to add Options to the read*File() interface. As we discussed, this preserves the old interface for backwards compatibility.
osgconv also changed to use the new Registry::writeNode() interface. No other applications or examples were affected."
This commit is contained in:
@@ -215,24 +215,24 @@ class OSGDB_EXPORT Registry : public osg::Referenced
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ReaderWriter::WriteResult writeObject(const osg::Object& obj, const std::string& fileName)
|
||||
virtual ReaderWriter::WriteResult writeObject(const osg::Object& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
return osgDB::Registry::instance()->writeObjectImplementation(obj,fileName);
|
||||
return osgDB::Registry::instance()->writeObjectImplementation(obj,fileName,options);
|
||||
}
|
||||
|
||||
virtual ReaderWriter::WriteResult writeImage(const osg::Image& obj, const std::string& fileName)
|
||||
virtual ReaderWriter::WriteResult writeImage(const osg::Image& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
return osgDB::Registry::instance()->writeImageImplementation(obj,fileName);
|
||||
return osgDB::Registry::instance()->writeImageImplementation(obj,fileName,options);
|
||||
}
|
||||
|
||||
virtual ReaderWriter::WriteResult writeHeightField(const osg::HeightField& obj, const std::string& fileName)
|
||||
virtual ReaderWriter::WriteResult writeHeightField(const osg::HeightField& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
return osgDB::Registry::instance()->writeHeightFieldImplementation(obj,fileName);
|
||||
return osgDB::Registry::instance()->writeHeightFieldImplementation(obj,fileName,options);
|
||||
}
|
||||
|
||||
virtual ReaderWriter::WriteResult writeNode(const osg::Node& obj, const std::string& fileName)
|
||||
virtual ReaderWriter::WriteResult writeNode(const osg::Node& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
return osgDB::Registry::instance()->writeNodeImplementation(obj,fileName);
|
||||
return osgDB::Registry::instance()->writeNodeImplementation(obj,fileName,options);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -249,33 +249,33 @@ class OSGDB_EXPORT Registry : public osg::Referenced
|
||||
const WriteFileCallback* getWriteFileCallback() const { return _writeFileCallback.get(); }
|
||||
|
||||
|
||||
ReaderWriter::WriteResult writeObject(const osg::Object& obj, const std::string& fileName)
|
||||
ReaderWriter::WriteResult writeObject(const osg::Object& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeObject(obj,fileName);
|
||||
else return writeObjectImplementation(obj,fileName);
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeObject(obj,fileName,options);
|
||||
else return writeObjectImplementation(obj,fileName,options);
|
||||
}
|
||||
ReaderWriter::WriteResult writeObjectImplementation(const osg::Object& obj, const std::string& fileName);
|
||||
ReaderWriter::WriteResult writeObjectImplementation(const osg::Object& obj, const std::string& fileName,const ReaderWriter::Options* options);
|
||||
|
||||
ReaderWriter::WriteResult writeImage(const osg::Image& obj, const std::string& fileName)
|
||||
ReaderWriter::WriteResult writeImage(const osg::Image& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeImage(obj,fileName);
|
||||
else return writeImageImplementation(obj,fileName);
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeImage(obj,fileName,options);
|
||||
else return writeImageImplementation(obj,fileName,options);
|
||||
}
|
||||
ReaderWriter::WriteResult writeImageImplementation(const osg::Image& obj, const std::string& fileName);
|
||||
ReaderWriter::WriteResult writeImageImplementation(const osg::Image& obj, const std::string& fileName,const ReaderWriter::Options* options);
|
||||
|
||||
ReaderWriter::WriteResult writeHeightField(const osg::HeightField& obj, const std::string& fileName)
|
||||
ReaderWriter::WriteResult writeHeightField(const osg::HeightField& obj, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeHeightField(obj,fileName);
|
||||
else return writeHeightFieldImplementation(obj,fileName);
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeHeightField(obj,fileName,options);
|
||||
else return writeHeightFieldImplementation(obj,fileName,options);
|
||||
}
|
||||
ReaderWriter::WriteResult writeHeightFieldImplementation(const osg::HeightField& obj, const std::string& fileName);
|
||||
ReaderWriter::WriteResult writeHeightFieldImplementation(const osg::HeightField& obj, const std::string& fileName,const ReaderWriter::Options* options);
|
||||
|
||||
ReaderWriter::WriteResult writeNode(const osg::Node& node, const std::string& fileName)
|
||||
ReaderWriter::WriteResult writeNode(const osg::Node& node, const std::string& fileName,const ReaderWriter::Options* options)
|
||||
{
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeNode(node,fileName);
|
||||
else return writeNodeImplementation(node,fileName);
|
||||
if (_writeFileCallback.valid()) return _writeFileCallback->writeNode(node,fileName,options);
|
||||
else return writeNodeImplementation(node,fileName,options);
|
||||
}
|
||||
ReaderWriter::WriteResult writeNodeImplementation(const osg::Node& node, const std::string& fileName);
|
||||
ReaderWriter::WriteResult writeNodeImplementation(const osg::Node& node, const std::string& fileName,const ReaderWriter::Options* options);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <osg/Node>
|
||||
|
||||
#include <osgDB/Export>
|
||||
#include <osgDB/Registry>
|
||||
|
||||
#include <string>
|
||||
|
||||
@@ -27,11 +28,31 @@ namespace osgDB {
|
||||
/** Write an osg::Object to file.
|
||||
* Return true on success,
|
||||
* return false on failure.
|
||||
* Use the Options object to control cache operations and file search paths in osgDB::Registry.
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeObjectFile(const osg::Object& object, const std::string& filename, const ReaderWriter::Options* options );
|
||||
|
||||
extern OSGDB_EXPORT bool writeObjectFile(const osg::Object& object, const std::string& filename);
|
||||
/** Write an osg::Object to file.
|
||||
* Return true on success,
|
||||
* return false on failure.
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
inline bool writeObjectFile(const osg::Object& object, const std::string& filename)
|
||||
{
|
||||
return writeObjectFile( object, filename, Registry::instance()->getOptions() );
|
||||
}
|
||||
|
||||
/** Write an osg::Image to file.
|
||||
* Return true on success,
|
||||
* return false on failure.
|
||||
* Use the Options object to control cache operations and file search paths in osgDB::Registry.
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeImageFile(const osg::Image& image, const std::string& filename, const ReaderWriter::Options* options );
|
||||
|
||||
/** Write an osg::Image to file.
|
||||
* Return true on success,
|
||||
@@ -39,7 +60,19 @@ extern OSGDB_EXPORT bool writeObjectFile(const osg::Object& object, const std::s
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeImageFile(const osg::Image& image, const std::string& filename);
|
||||
inline bool writeImageFile(const osg::Image& image, const std::string& filename)
|
||||
{
|
||||
return writeImageFile( image, filename, Registry::instance()->getOptions() );
|
||||
}
|
||||
|
||||
/** Write an osg::HeightField to file.
|
||||
* Return true on success,
|
||||
* return false on failure.
|
||||
* Use the Options object to control cache operations and file search paths in osgDB::Registry.
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeHeightFieldFile(const osg::HeightField& hf, const std::string& filename, const ReaderWriter::Options* options );
|
||||
|
||||
/** Write an osg::HeightField to file.
|
||||
* Return true on success,
|
||||
@@ -47,7 +80,19 @@ extern OSGDB_EXPORT bool writeImageFile(const osg::Image& image, const std::stri
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeHeightFieldFile(const osg::HeightField& hf, const std::string& filename);
|
||||
inline bool writeHeightFieldFile(const osg::HeightField& hf, const std::string& filename)
|
||||
{
|
||||
return writeHeightFieldFile( hf, filename, Registry::instance()->getOptions() );
|
||||
}
|
||||
|
||||
/** Write an osg::Node to file.
|
||||
* Return true on success,
|
||||
* return false on failure.
|
||||
* Use the Options object to control cache operations and file search paths in osgDB::Registry.
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeNodeFile(const osg::Node& node, const std::string& filename, const ReaderWriter::Options* options );
|
||||
|
||||
/** Write an osg::Node to file.
|
||||
* Return true on success,
|
||||
@@ -55,8 +100,10 @@ extern OSGDB_EXPORT bool writeHeightFieldFile(const osg::HeightField& hf, const
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to write the specified file.*/
|
||||
extern OSGDB_EXPORT bool writeNodeFile(const osg::Node& node, const std::string& filename);
|
||||
|
||||
inline bool writeNodeFile(const osg::Node& node, const std::string& filename)
|
||||
{
|
||||
return writeNodeFile( node, filename, Registry::instance()->getOptions() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user