diff --git a/src/osgPlugins/dae/ReaderWriterDAE.cpp b/src/osgPlugins/dae/ReaderWriterDAE.cpp index 2d210af5c..d98736372 100644 --- a/src/osgPlugins/dae/ReaderWriterDAE.cpp +++ b/src/osgPlugins/dae/ReaderWriterDAE.cpp @@ -29,9 +29,8 @@ class ReaderWriterDAE : public osgDB::ReaderWriter { public: - ReaderWriterDAE() + ReaderWriterDAE() : dae_(NULL) { - dae_ = new DAE(); } ~ReaderWriterDAE() @@ -74,6 +73,9 @@ ReaderWriterDAE::readNode(const std::string& fname, osg::notify(osg::INFO) << "ReaderWriterDAE( \"" << fileName << "\" )" << std::endl; + if (dae_ == NULL) + const_cast(this)->dae_ = new DAE(); + osgdae::daeReader daeReader(dae_); std::string fileURI( osgDB::convertFileNameToUnixStyle(fileName) ); if ( ! daeReader.convert( fileURI ) ) @@ -117,6 +119,9 @@ ReaderWriterDAE::writeNode( const osg::Node& node, } } + if (dae_ == NULL) + const_cast(this)->dae_ = new DAE(); + osgdae::daeWriter daeWriter(dae_, fname, usePolygon ); daeWriter.setRootNode( node ); const_cast(&node)->accept( daeWriter );