14 #ifndef OSGDB_READERWRITER
15 #define OSGDB_READERWRITER 1
20 #include <osg/ScriptEngine>
22 #include <osgDB/AuthenticationMap>
48 osg::Object(rw,copyop) {}
64 virtual const FormatDescriptionMap&
supportedOptions()
const {
return _supportedOptions; }
67 virtual bool acceptsExtension(
const std::string& )
const;
69 virtual bool acceptsProtocol(
const std::string& protocol)
const;
75 FEATURE_READ_OBJECT = 1<<0,
76 FEATURE_READ_IMAGE = 1<<1,
77 FEATURE_READ_HEIGHT_FIELD = 1<<2,
78 FEATURE_READ_NODE = 1<<3,
79 FEATURE_READ_SHADER = 1<<4,
80 FEATURE_WRITE_OBJECT = 1<<5,
81 FEATURE_WRITE_IMAGE = 1<<6,
82 FEATURE_WRITE_HEIGHT_FIELD = 1<<7,
83 FEATURE_WRITE_NODE = 1<<8,
84 FEATURE_WRITE_SHADER = 1<<9,
85 FEATURE_READ_SCRIPT = 1<<10,
86 FEATURE_WRITE_SCRIPT = 1<<11,
87 FEATURE_ALL = FEATURE_READ_OBJECT |
89 FEATURE_READ_HEIGHT_FIELD |
93 FEATURE_WRITE_OBJECT |
95 FEATURE_WRITE_HEIGHT_FIELD |
97 FEATURE_WRITE_SHADER |
101 virtual Features supportedFeatures()
const;
104 static FeatureList featureAsString(Features feature);
121 INSUFFICIENT_MEMORY_TO_LOAD
125 ReadResult(
const std::string& m):_status(ERROR_IN_READING_FILE),_message(m) {}
158 const std::string&
message()
const {
return _message; }
161 bool success()
const {
return _status==FILE_LOADED || _status==FILE_LOADED_FROM_CACHE ; }
163 bool error()
const {
return _status==ERROR_IN_READING_FILE; }
164 bool notHandled()
const {
return _status==FILE_NOT_HANDLED || _status==NOT_IMPLEMENTED; }
189 WriteResult(
const std::string& m):_status(ERROR_IN_WRITING_FILE),_message(m) {}
197 const std::string&
message()
const {
return _message; }
200 bool success()
const {
return _status==FILE_SAVED; }
201 bool error()
const {
return _status==ERROR_IN_WRITING_FILE; }
202 bool notHandled()
const {
return _status==FILE_NOT_HANDLED || _status==NOT_IMPLEMENTED; }
221 virtual bool fileExists(
const std::string& filename,
const Options* options)
const;
262 void supportsProtocol(
const std::string& fmt,
const std::string& description);
269 void supportsExtension(
const std::string& ext,
const std::string& description);
273 void supportsOption(
const std::string& opt,
const std::string& description);
284 #endif // OSGDB_READERWRITER
virtual WriteResult writeScript(const osg::Script &, std::ostream &, const Options *=NULL) const
Features
Bit mask for setting up which feature types are available for read and/or write.
ReaderWriter(const ReaderWriter &rw, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
virtual const FormatDescriptionMap & supportedExtensions() const
std::list< std::string > FeatureList
virtual ReadResult readImage(const std::string &, const Options *=NULL) const
virtual WriteResult writeImage(const osg::Image &, const std::string &, const Options *=NULL) const
ReadResult(osg::Object *obj, ReadStatus status=FILE_LOADED)
virtual ReadResult readObject(std::istream &, const Options *=NULL) const
write*() method not implemented in concrete ReaderWriter.
virtual WriteResult writeHeightField(const osg::HeightField &, std::ostream &, const Options *=NULL) const
virtual WriteResult writeObject(const osg::Object &, std::ostream &, const Options *=NULL) const
virtual ReadResult readScript(const std::string &, const Options *=NULL) const
virtual ReadResult readObject(const std::string &, const Options *=NULL) const
osg::ref_ptr< osg::Object > _object
WriteResult(WriteStatus status=FILE_NOT_HANDLED)
virtual ReadResult readHeightField(const std::string &, const Options *=NULL) const
std::map< std::string, std::string > FormatDescriptionMap
WriteResult(const std::string &m)
const std::string & message() const
virtual const FormatDescriptionMap & supportedProtocols() const
ReadResult(ReadStatus status=FILE_NOT_HANDLED)
virtual ReadResult readNode(const std::string &, const Options *=NULL) const
FormatDescriptionMap _supportedOptions
virtual ReadResult readNode(std::istream &, const Options *=NULL) const
File could not be found or could not be read.
WriteResult(const WriteResult &rr)
#define META_Object(library, name)
bool notEnoughMemory() const
File found in cache and returned.
bool loadedFromCache() const
virtual WriteResult writeImage(const osg::Image &, std::ostream &, const Options *=NULL) const
virtual ReadResult readScript(std::istream &, const Options *=NULL) const
virtual ReadResult readShader(std::istream &, const Options *=NULL) const
OSGDB_EXPORT bool fileExists(const std::string &filename)
Asynchronous file read has been requested, but returning immediately, keep polling plugin until file ...
virtual ReadResult readShader(const std::string &, const Options *=NULL) const
File is not appropriate for this file reader, due to some incompatibility, but not a read error...
std::deque< std::string > FilePathList
const std::string & message() const
virtual WriteResult writeScript(const osg::Script &, const std::string &, const Options *=NULL) const
File found, loaded, but an error was encountered during processing.
virtual WriteResult writeHeightField(const osg::HeightField &, const std::string &, const Options *=NULL) const
virtual WriteResult writeShader(const osg::Shader &, std::ostream &, const Options *=NULL) const
read*() method not implemented in concrete ReaderWriter.
ReadResult(const std::string &m)
ReadResult(const ReadResult &rr)
ReadStatus status() const
File successfully found, loaded, and converted into osg.
virtual ReadResult openArchive(const std::string &, ArchiveStatus, unsigned int=4096, const Options *=NULL) const
WriteStatus status() const
virtual ReadResult readImage(std::istream &, const Options *=NULL) const
virtual ReadResult readHeightField(std::istream &, const Options *=NULL) const
virtual WriteResult writeNode(const osg::Node &, const std::string &, const Options *=NULL) const
FormatDescriptionMap _supportedExtensions
virtual ReadResult openArchive(std::istream &, const Options *=NULL) const
FormatDescriptionMap _supportedProtocols
virtual WriteResult writeShader(const osg::Shader &, const std::string &, const Options *=NULL) const
virtual const FormatDescriptionMap & supportedOptions() const
virtual WriteResult writeNode(const osg::Node &, std::ostream &, const Options *=NULL) const
virtual WriteResult writeObject(const osg::Object &, const std::string &, const Options *=NULL) const