bool SceneFileHandlerBase::write(Node * const node, Char8 const *fileName, bool compress) { bool retCode = false; SceneFileType *type = getFileType(fileName); if(type != NULL) { updateWriteProgress(0); triggerWriteBegin(fileName); SINFO << "try to write " << fileName << " as " << type->getName() << std::endl; std::ofstream out(fileName, std::ios::binary); if(out) { retCode = write(node, out, fileName, compress); out.close(); } else { SWARNING << "Can not open output stream for file '" << fileName << "'!" << std::endl; } #ifndef OSG_DISABLE_DEPRECATED if(!retCode) { retCode = type->writeFile(node, fileName); } #endif if(!retCode) { SWARNING << "Couldn't write " << fileName << std::endl; } else { triggerWriteEnd(fileName); } } else SWARNING << "can't write " << fileName << "; unknown scene format" << std::endl; return retCode; }
bool SceneFileHandlerBase::write(Node * const node, std::ostream &os, Char8 const *fileNameOrExtension, bool compress ) { bool retCode = false; SceneFileType *type = getFileType(fileNameOrExtension); if(type != NULL) { updateWriteProgress(0); SINFO << "try to write stream as " << type->getName() << std::endl; if(_writeFP != NULL) { retCode = _writeFP(type, node, os, fileNameOrExtension, compress); } else { if(compress == true) { #ifdef OSG_WITH_ZLIB SINFO << "writing compressed stream." << std::endl; zip_ostream zipper(os, true); retCode = type->write(node, zipper, fileNameOrExtension); zipper.zflush(); #else SFATAL << "Compressed streams are not supported! Build " << "with zlib= options." << std::endl; #endif } else { retCode = type->write(node, os, fileNameOrExtension); } } } else { SWARNING << "can't write stream unknown scene format" << std::endl; } return retCode; }
//---------------------------- // Function name: write //---------------------------- // //Parameters: //p: const Scene &image, const char *fileName //GlobalVars: //g: //Returns: //r:bool // Caution //c: //Assumations: //a: //Describtions: //d: //SeeAlso: //s: // //------------------------------ bool SceneFileHandler::write(const NodePtr &node, std::ostream &os, const Char8 *fileNameOrExtension, bool compress) { bool retCode = false; SceneFileType *type = getFileType(fileNameOrExtension); if(type) { updateWriteProgress(0); SINFO << "try to write stream as " << type->getName() << std::endl; if(_writeFP != NULL) { retCode = _writeFP(type, node, os, fileNameOrExtension, compress); } else { if(compress) { #ifdef OSG_ZSTREAM_SUPPORTED SINFO << "writing compressed stream." << std::endl; zip_ostream zipper(os, true); retCode = type->write(node, zipper, fileNameOrExtension); zipper.zflush(); #else SFATAL << "Compressed streams are not supported! Configure with --enable-png --with-png=DIR options." << std::endl; #endif } else { retCode = type->write(node, os, fileNameOrExtension); } } } else SWARNING << "can't write stream unknown scene format" << std::endl; return retCode; }