Added readScript/writeScript methods to ReaderWriter

git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14366 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield
2014-07-14 15:59:06 +00:00
parent 5a7a20d01e
commit 50e63ad3ee
14 changed files with 314 additions and 68 deletions

View File

@@ -29,7 +29,20 @@ class ReaderWriterV8 : public osgDB::ReaderWriter
virtual const char* className() const { return "V8 JavaScript ScriptEngine plugin"; }
virtual ReadResult readObject(std::istream& fin,const osgDB::ReaderWriter::Options* options =NULL) const
virtual ReadResult readObject(std::istream& fin, const osgDB::ReaderWriter::Options* options =NULL) const
{
return readScript(fin, options);
}
virtual ReadResult readObject(const std::string& file, const osgDB::ReaderWriter::Options* options =NULL) const
{
if (file=="ScriptEngine.V8") return new v8::V8ScriptEngine();
if (file=="ScriptEngine.js") return new v8::V8ScriptEngine();
return readScript(file);
}
virtual ReadResult readScript(std::istream& fin,const osgDB::ReaderWriter::Options* options =NULL) const
{
osg::ref_ptr<osg::Script> script = new osg::Script;
script->setLanguage("js");
@@ -48,11 +61,8 @@ class ReaderWriterV8 : public osgDB::ReaderWriter
return script.release();
}
virtual ReadResult readObject(const std::string& file, const osgDB::ReaderWriter::Options* options =NULL) const
virtual ReadResult readScript(const std::string& file, const osgDB::ReaderWriter::Options* options =NULL) const
{
if (file=="ScriptEngine.V8") return new v8::V8ScriptEngine();
if (file=="ScriptEngine.js") return new v8::V8ScriptEngine();
std::string ext = osgDB::getLowerCaseFileExtension(file);
if (!acceptsExtension(ext)) return ReadResult::FILE_NOT_HANDLED;
@@ -62,9 +72,8 @@ class ReaderWriterV8 : public osgDB::ReaderWriter
osgDB::ifstream istream(fileName.c_str(), std::ios::in);
if(!istream) return ReadResult::FILE_NOT_HANDLED;
return readObject(istream, options);
return readScript(istream, options);
}
};
// now register with Registry to instantiate the above