WriteFile 5.44 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 
 *
 * This library is open source and may be redistributed and/or modified under  
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * OpenSceneGraph Public License for more details.
*/

#ifndef OSGDB_WRITEFILE
#define OSGDB_WRITEFILE 1

#include <osg/Image>
#include <osg/Shape>
#include <osg/Node>

#include <osgDB/Export>
#include <osgDB/Registry>

#include <string>

namespace osgDB {

/** Write an osg::Object to file. 
  * Return true on success,
  * return false on failure.
  * Use the Options object to control cache operations and file search paths in osgDB::Registry.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
extern OSGDB_EXPORT bool writeObjectFile(const osg::Object& object, const std::string& filename, const Options* options );

/** Write an osg::Object to file. 
  * Return true on success,
  * return false on failure.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
inline bool writeObjectFile(const osg::Object& object, const std::string& filename)
{
    return writeObjectFile( object, filename, Registry::instance()->getOptions() );
}

/** Write an osg::Image to file. 
  * Return true on success,
  * return false on failure.
  * Use the Options object to control cache operations and file search paths in osgDB::Registry.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
extern OSGDB_EXPORT bool writeImageFile(const osg::Image& image, const std::string& filename, const Options* options );

/** Write an osg::Image to file. 
  * Return true on success,
  * return false on failure.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
inline bool writeImageFile(const osg::Image& image, const std::string& filename)
{
    return writeImageFile( image, filename, Registry::instance()->getOptions() );
}

/** Write an osg::HeightField to file. 
  * Return true on success,
  * return false on failure.
  * Use the Options object to control cache operations and file search paths in osgDB::Registry.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
extern OSGDB_EXPORT bool writeHeightFieldFile(const osg::HeightField& hf, const std::string& filename, const Options* options );

/** Write an osg::HeightField to file. 
  * Return true on success,
  * return false on failure.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
inline bool writeHeightFieldFile(const osg::HeightField& hf, const std::string& filename)
{
    return writeHeightFieldFile( hf, filename, Registry::instance()->getOptions() );
}

/** Write an osg::Node to file. 
  * Return true on success,
  * return false on failure.
  * Use the Options object to control cache operations and file search paths in osgDB::Registry.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
extern OSGDB_EXPORT bool writeNodeFile(const osg::Node& node, const std::string& filename, const Options* options );

/** Write an osg::Node to file. 
  * Return true on success,
  * return false on failure.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
inline bool writeNodeFile(const osg::Node& node, const std::string& filename)
{
    return writeNodeFile( node, filename, Registry::instance()->getOptions() );
}

/** Write an osg::Shader to file. 
  * Return true on success,
  * return false on failure.
  * Use the Options object to control cache operations and file search paths in osgDB::Registry.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
extern OSGDB_EXPORT bool writeShaderFile(const osg::Shader& shader, const std::string& filename, const Options* options );

/** Write an osg::Shader to file. 
  * Return true on success,
  * return false on failure.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to write the specified file.*/
inline bool writeShaderFile(const osg::Shader& shader, const std::string& filename)
{
    return writeShaderFile( shader, filename, Registry::instance()->getOptions() );
}

}

#endif