OSG
3.4.0
|
#include <ExternalFileWriter.h>
Classes | |
struct | ObjectData |
Public Types | |
typedef std::map< const osg::Object *, ObjectData > | ObjectsSet |
Public Member Functions | |
ExternalFileWriter (const std::string &srcDirectory, const std::string &destDirectory, bool keepRelativePaths, unsigned int allowUpDirs=0) | |
ExternalFileWriter (const std::string &destDirectory) | |
Short constructor used when not relativising objects paths, or when having no initial model file (which is pretty the same here). More... | |
bool | write (const osg::Object &obj, const osgDB::Options *options, std::string *out_absolutePath=NULL, std::string *out_relativePath=NULL) |
const ObjectsSet & | getObjects () const |
Returns the written objects. More... | |
Protected Types | |
typedef std::multimap < unsigned int, const osg::Object * > | SearchMap |
typedef unsigned int | ObjectIndex |
Integer type used for indices of unnamed objects. More... | |
Protected Member Functions | |
void | generateObjectName (std::string &out_relativePath, std::string &out_absolutePath, int type) |
bool | absoluteObjectPathExists (const std::string &path) |
Protected Attributes | |
ObjectsSet | _objects |
SearchMap | _searchMap |
Map used to search by absolute file path. More... | |
ObjectIndex | _lastGeneratedObjectIndex |
const std::string | _srcDirectory |
const std::string | _destDirectory |
bool | _keepRelativePaths |
const unsigned int | _allowUpDirs |
Helper allowing 'intelligent' writing of external files (images, shaders, etc.), regarding to a main file (a scene), especially in plugins. Goals are:
Definition at line 42 of file ExternalFileWriter.h.
|
protected |
Integer type used for indices of unnamed objects.
Definition at line 84 of file ExternalFileWriter.h.
typedef std::map<const osg::Object*, ObjectData> osgDB::ExternalFileWriter::ObjectsSet |
Set of written objects, with their absolute writing path. Objects being passed to the write() method but which have failed to be effectively written are also included.
Definition at line 74 of file ExternalFileWriter.h.
|
protected |
Definition at line 83 of file ExternalFileWriter.h.
osgDB::ExternalFileWriter::ExternalFileWriter | ( | const std::string & | srcDirectory, |
const std::string & | destDirectory, | ||
bool | keepRelativePaths, | ||
unsigned int | allowUpDirs = 0 |
||
) |
Builds the helper class with all options.
srcDirectory | Directory of the initial main file (if any), used as a base when relativising objects names. Not used if keepRelativePaths==false. |
destDirectory | Directory where to write the main file. |
keepRelativePaths | If true, then relative paths of source objects are kept if possible (ex: If an image is initially "imageDir/image.jpg" relatively to the source dir, then we'd like to get "destDir/imageDir/image.jpg"). If false, then only the simple file name is used to write the object file. |
allowUpDirs | When relativising objects paths, sets the maximum number of directories the objects can be written "up" the destination directory. Not used if keepRelativePaths==false. Examples: If an image is initially "../image.jpg" relatively to the source dir AND if we allow one dir level up, then we'd like to get "destDirParent/destDir/../image.jpg" (= "destDirParent/image.jpg"). If we DO NOT allow one dir level up, then we'd like to get "destDir/image.jpg". |
osgDB::ExternalFileWriter::ExternalFileWriter | ( | const std::string & | destDirectory | ) |
Short constructor used when not relativising objects paths, or when having no initial model file (which is pretty the same here).
|
protected |
|
protected |
Generates a unique name for an object to be written on disk. Side effect: updates _lastGeneratedObjectIndex to the index associated with the returned name.
|
inline |
Returns the written objects.
Definition at line 77 of file ExternalFileWriter.h.
bool osgDB::ExternalFileWriter::write | ( | const osg::Object & | obj, |
const osgDB::Options * | options, | ||
std::string * | out_absolutePath = NULL , |
||
std::string * | out_relativePath = NULL |
||
) |
Writes the current object if not already done.
obj | Object to write, using corresponding osgDB::write method. | |
options | Writing options to pass to corresponding osgDB::write method. | |
[out] | out_absolutePath | Pointer to a string to be filled with absolute writing path, or NULL. |
[out] | out_relativePath | Pointer to a string to be filled with write path relative to the destination directory if possible (absolute path if not), or NULL. |
|
protected |
Definition at line 91 of file ExternalFileWriter.h.
|
protected |
Definition at line 89 of file ExternalFileWriter.h.
|
protected |
Definition at line 90 of file ExternalFileWriter.h.
|
protected |
Definition at line 87 of file ExternalFileWriter.h.
|
protected |
Definition at line 85 of file ExternalFileWriter.h.
|
protected |
Map used to search by absolute file path.
Definition at line 86 of file ExternalFileWriter.h.
|
protected |
Definition at line 88 of file ExternalFileWriter.h.