You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
691 B
C++
27 lines
691 B
C++
8 years ago
|
#include "writescene.hpp"
|
||
|
|
||
|
#include <stdexcept>
|
||
|
|
||
|
#include <osgDB/Registry>
|
||
|
|
||
|
#include <boost/filesystem/fstream.hpp>
|
||
|
|
||
|
#include "serialize.hpp"
|
||
|
|
||
|
void SceneUtil::writeScene(osg::Node *node, const std::string& filename, const std::string& format)
|
||
|
{
|
||
|
registerSerializers();
|
||
|
|
||
|
osgDB::ReaderWriter* rw = osgDB::Registry::instance()->getReaderWriterForExtension("osgt");
|
||
|
if (!rw)
|
||
|
throw std::runtime_error("can not find readerwriter for " + format);
|
||
|
|
||
|
boost::filesystem::ofstream stream;
|
||
|
stream.open(filename);
|
||
|
|
||
|
osg::ref_ptr<osgDB::Options> options = new osgDB::Options;
|
||
|
options->setPluginStringData("fileType", format);
|
||
|
|
||
|
rw->writeNode(*node, stream, options);
|
||
|
}
|