# osgDB Namespace Reference

The osgDB library provides support for reading and writing scene graphs, providing a plugin framework and file utility classes. More...

## Classes

class | Archive
| Base class for implementing database Archives. More...
class | Block
class | DatabasePager
| Database paging class which manages the loading of files in a background thread, and syncronizing of loaded models with the main scene graph. More...
class | DotOsgWrapper
| Wrapper class for specifying read and write functions for extending the .osg file format. More...
class | DynamicLibrary
| DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for loading ReaderWriter plug-ins. More...
class | Field
class | FieldReader
class | FieldReaderIterator
class | ImageOptions
class | Input
| Class for managing the reading of ASCII .osg files. More...
class | Output
| ofstream wrapper class for adding support for indenting. More...
class | ParameterOutput
class | ReaderWriter
| pure virtual base class for reading and writing of non native formats. More...
class | ReentrantMutex
struct | basic_type_wrapper
| basic structure for custom runtime inheritance checking More...
struct | type_wrapper
| a class template that checks inheritance between a given Object's class and a class defined at compile time through the template parameter T. More...
class | Registry
| Registry is a singleton factory which stores the reader/writers which are linked in at runtime for reading non-native file formats. More...
class | RegisterDotOsgWrapperProxy
| Proxy class for automatic registration of DotOsgWrappers with the Registry. More...
class | RegisterReaderWriterProxy
| Proxy class for automatic registration of reader/writers with the Registry. More...
class | SharedStateManager

## Typedefs

typedef std::vector< std::string > | DirectoryContents
| simple list of names to represent a directory's contents.

## Enumerations

enum | CaseSensitivity { CASE_SENSITIVE, CASE_INSENSITIVE }
enum | FileType { FILE_NOT_FOUND, REGULAR_FILE, DIRECTORY }

## Functions

OSGDB_EXPORT Archive * | openArchive (const std::string &filename, Archive::ArchiveStatus status, unsigned int indexBlockSizeHint=4096)
| Open an archive for reading or writing.
OSGDB_EXPORT Archive * | openArchive (const std::string &filename, Archive::ArchiveStatus status, unsigned int indexBlockSizeHint, ReaderWriter::Options *options)
| Open an archive for reading or writing.
OSGDB_EXPORT std::string | getFilePath (const std::string &filename)
OSGDB_EXPORT std::string | getFileExtension (const std::string &filename)
OSGDB_EXPORT std::string | getLowerCaseFileExtension (const std::string &filename)
OSGDB_EXPORT std::string | getSimpleFileName (const std::string &fileName)
OSGDB_EXPORT std::string | getNameLessExtension (const std::string &fileName)
OSGDB_EXPORT std::string | getStrippedName (const std::string &fileName)
OSGDB_EXPORT bool | equalCaseInsensitive (const std::string &lhs, const std::string &rhs)
OSGDB_EXPORT bool | equalCaseInsensitive (const std::string &lhs, const char *rhs)
OSGDB_EXPORT bool | containsServerAddress (const std::string &filename)
OSGDB_EXPORT std::string | getServerAddress (const std::string &filename)
OSGDB_EXPORT std::string | getServerFileName (const std::string &filename)
OSGDB_EXPORT bool | makeDirectory (const std::string &directoryPath)
OSGDB_EXPORT bool | makeDirectoryForFile (const std::string &filePath)
OSGDB_EXPORT bool | fileExists (const std::string &filename)
| return true if a file exisits.
OSGDB_EXPORT FileType | fileType (const std::string &filename)
| return type of file.
OSGDB_EXPORT std::string | findFileInPath (const std::string &filename, const FilePathList &filePath, CaseSensitivity caseSensitivity=CASE_SENSITIVE)
| find specified file in specified file path.
OSGDB_EXPORT std::string | findFileInDirectory (const std::string &fileName, const std::string &dirName, CaseSensitivity caseSensitivity=CASE_SENSITIVE)
| return the directory/filename of a file if its is contained within specified directory.
OSGDB_EXPORT DirectoryContents | getDirectoryContents (const std::string &dirName)
| return the contents of a directory.
void | setDataFilePathList (const FilePathList &filepath)
void | setDataFilePathList (const std::string &paths)
FilePathList & | getDataFilePathList ()
OSGDB_EXPORT std::string | findDataFile (const std::string &filename, CaseSensitivity caseSensitivity=CASE_SENSITIVE)
| Search for specified file in file system, checking the DataFilePathList for possible paths, returning the full path of the first valid file found, return an empty string if no string is found.
OSGDB_EXPORT std::string | findDataFile (const std::string &filename, const ReaderWriter::Options *options, CaseSensitivity caseSensitivity=CASE_SENSITIVE)
| Search for specified file in file system, checking first the database path set in the Options structure, then the DataFilePathList for possible paths, returning the full path of the first valid file found, return an empty string if no string is found.
void | setLibraryFilePathList (const FilePathList &filepaths)
void | setLibraryFilePathList (const std::string &paths)
FilePathList & | getLibraryFilePathList ()
OSGDB_EXPORT std::string | findLibraryFile (const std::string &filename, CaseSensitivity caseSensitivity=CASE_SENSITIVE)
OSGDB_EXPORT void | convertStringPathIntoFilePathList (const std::string &paths, FilePathList &filepath)
| convert a string containing a list of paths deliminated either with ';' (Windows) or ':' (All other platforms) into FilePath represetation.
OSGDB_EXPORT void | appendPlatformSpecificLibraryFilePaths (FilePathList &filepath)
template<class Iterator>
void | writeArray (Output &fw, Iterator first, Iterator last, int noItemsPerLine=0)
template<class Iterator>
void | writeArrayAsInts (Output &fw, Iterator first, Iterator last, int noItemsPerLine=0)
OSGDB_EXPORT osg::Object * | readObjectFile (const std::string &filename, const ReaderWriter::Options *options)
| Read an osg::Object from file.
osg::Object * | readObjectFile (const std::string &filename)
| Read an osg::Object from file.
OSGDB_EXPORT osg::Image * | readImageFile (const std::string &filename, const ReaderWriter::Options *options)
| Read an osg::Image from file.
osg::Image * | readImageFile (const std::string &filename)
| Read an osg::Image from file.
OSGDB_EXPORT osg::HeightField * | readHeightFieldFile (const std::string &filename, const ReaderWriter::Options *options)
| Read an osg::HeightField from file.
osg::HeightField * | readHeightFieldFile (const std::string &filename)
| Read an osg::HeightField from file.
OSGDB_EXPORT osg::Node * | readNodeFile (const std::string &filename, const ReaderWriter::Options *options)
| Read an osg::Node from file.
osg::Node * | readNodeFile (const std::string &filename)
| Read an osg::Node from file.
OSGDB_EXPORT osg::Node * | readNodeFiles (std::vector< std::string > &commandLine, const ReaderWriter::Options *options)
| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded.
osg::Node * | readNodeFiles (std::vector< std::string > &commandLine)
| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded.
OSGDB_EXPORT osg::Node * | readNodeFiles (osg::ArgumentParser &parser, const ReaderWriter::Options *options)
| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded.
osg::Node * | readNodeFiles (osg::ArgumentParser &parser)
| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded.
void | readCommandLine (osg::ArgumentParser &parser)
| read the command line arguments.
OSGDB_EXPORT bool | writeObjectFile (const osg::Object &object, const std::string &filename)
| Write an osg::Object to file.
OSGDB_EXPORT bool | writeImageFile (const osg::Image &image, const std::string &filename)
| Write an osg::Image to file.
OSGDB_EXPORT bool | writeHeightFieldFile (const osg::HeightField &hf, const std::string &filename)
| Write an osg::HeightField to file.
OSGDB_EXPORT bool | writeNodeFile (const osg::Node &node, const std::string &filename)
| Write an osg::Node to file.

## Variables

typedef std::deque< std::string > | FilePathList
| list of directories to search through which searching for files.

## Detailed Description

The osgDB library provides support for reading and writing scene graphs, providing a plugin framework and file utility classes.

The plugin framework in centred around the osgDB::Registry, and allows plugins which provide specific file format support to be dynamically loaded on demand.

## Typedef Documentation

typedef std::vector<std::string> osgDB::DirectoryContents

| simple list of names to represent a directory's contents.

## Enumeration Type Documentation

enum osgDB::CaseSensitivity

Enumeration values:

  CASE_SENSITIVE |
  CASE_INSENSITIVE |

enum osgDB::FileType

Enumeration values:

  FILE_NOT_FOUND |
  REGULAR_FILE |
  DIRECTORY |

## Function Documentation

void osgDB::appendPlatformSpecificLibraryFilePaths | ( | FilePathList & | filepath | ) |

bool osgDB::containsServerAddress | ( | const std::string & | filename | ) |

void osgDB::convertStringPathIntoFilePathList | ( | const std::string & | paths,
|  | FilePathList & | filepath
| ) |

| convert a string containing a list of paths deliminated either with ';' (Windows) or ':' (All other platforms) into FilePath represetation.

bool osgDB::equalCaseInsensitive | ( | const std::string & | lhs,
|  | const char * | rhs
| ) |

bool osgDB::equalCaseInsensitive | ( | const std::string & | lhs,
|  | const std::string & | rhs
| ) |

bool OSGA_Archive::fileExists | ( | const std::string & | filename | ) |

| return true if a file exisits.

osgDB::FileType osgDB::fileType | ( | const std::string & | filename | ) |

| return type of file.

OSGDB_EXPORT std::string osgDB::findDataFile | ( | const std::string & | filename,
|  | const ReaderWriter::Options * | options,
|  | CaseSensitivity | caseSensitivity = `CASE_SENSITIVE`
| ) |

| Search for specified file in file system, checking first the database path set in the Options structure, then the DataFilePathList for possible paths, returning the full path of the first valid file found, return an empty string if no string is found.

std::string osgDB::findDataFile | ( | const std::string & | filename,
|  | CaseSensitivity | caseSensitivity = `CASE_SENSITIVE`
| ) |

| Search for specified file in file system, checking the DataFilePathList for possible paths, returning the full path of the first valid file found, return an empty string if no string is found.

std::string osgDB::findFileInDirectory | ( | const std::string & | fileName,
|  | const std::string & | dirName,
|  | CaseSensitivity | caseSensitivity = `CASE_SENSITIVE`
| ) |

| return the directory/filename of a file if its is contained within specified directory. return "" if directory does not contain file. If caseInsensitive is set to true then a case insensitive comparison is used to compare fileName to directory contents. This is useful when unix programs attempt read case insentive windows filenames.

std::string osgDB::findFileInPath | ( | const std::string & | filename,
|  | const FilePathList & | filePath,
|  | CaseSensitivity | caseSensitivity = `CASE_SENSITIVE`
| ) |

| find specified file in specified file path.

std::string osgDB::findLibraryFile | ( | const std::string & | filename,
|  | CaseSensitivity | caseSensitivity = `CASE_SENSITIVE`
| ) |

FilePathList& getDataFilePathList | ( |  | ) | `[inline]`

osgDB::DirectoryContents osgDB::getDirectoryContents | ( | const std::string & | dirName | ) |

| return the contents of a directory. returns an empty array on any error.

std::string osgDB::getFileExtension | ( | const std::string & | filename | ) |

std::string osgDB::getFilePath | ( | const std::string & | filename | ) |

FilePathList& getLibraryFilePathList | ( |  | ) | `[inline]`

std::string osgDB::getLowerCaseFileExtension | ( | const std::string & | filename | ) |

std::string osgDB::getNameLessExtension | ( | const std::string & | fileName | ) |

std::string osgDB::getServerAddress | ( | const std::string & | filename | ) |

std::string osgDB::getServerFileName | ( | const std::string & | filename | ) |

std::string osgDB::getSimpleFileName | ( | const std::string & | fileName | ) |

std::string osgDB::getStrippedName | ( | const std::string & | fileName | ) |

bool osgDB::makeDirectory | ( | const std::string & | directoryPath | ) |

bool osgDB::makeDirectoryForFile | ( | const std::string & | filePath | ) |

osgDB::Archive * osgDB::openArchive | ( | const std::string & | filename,
|  | Archive::ArchiveStatus | status,
|  | unsigned int | indexBlockSizeHint,
|  | ReaderWriter::Options * | options
| ) |

| Open an archive for reading or writing.

osgDB::Archive * osgDB::openArchive | ( | const std::string & | filename,
|  | Archive::ArchiveStatus | status,
|  | unsigned int | indexBlockSizeHint = `4096`
| ) |

| Open an archive for reading or writing.

void Registry::readCommandLine | ( | osg::ArgumentParser & | arguments | ) | `[inline]`

| read the command line arguments.

osg::HeightField* readHeightFieldFile | ( | const std::string & | filename | ) | `[inline]`

| Read an osg::HeightField from file. Return valid osg::HeightField on success, return NULL 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 read the specified file.

HeightField * osgDB::readHeightFieldFile | ( | const std::string & | filename,
|  | const ReaderWriter::Options * | options
| ) |

| Read an osg::HeightField from file. Return valid osg::HeightField on success, return NULL 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 read the specified file.

osg::Image* readImageFile | ( | const std::string & | filename | ) | `[inline]`

| Read an osg::Image from file. Return valid osg::Image on success, return NULL 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 read the specified file.

Image * osgDB::readImageFile | ( | const std::string & | filename,
|  | const ReaderWriter::Options * | options
| ) |

| Read an osg::Image from file. Return valid osg::Image on success, return NULL 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 read the specified file.

osg::Node* readNodeFile | ( | const std::string & | filename | ) | `[inline]`

| Read an osg::Node from file. Return valid osg::Node on success, return NULL 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 read the specified file.

Node * osgDB::readNodeFile | ( | const std::string & | filename,
|  | const ReaderWriter::Options * | options
| ) |

| Read an osg::Node from file. Return valid osg::Node on success, return NULL 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 read the specified file.

osg::Node* readNodeFiles | ( | osg::ArgumentParser & | parser | ) | `[inline]`

| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded.

Node * osgDB::readNodeFiles | ( | osg::ArgumentParser & | parser,
|  | const ReaderWriter::Options * | options
| ) |

| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded. Use the Options object to control cache operations and file search paths in osgDB::Registry.

osg::Node* readNodeFiles | ( | std::vector< std::string > & | commandLine | ) | `[inline]`

| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded.

Node * osgDB::readNodeFiles | ( | std::vector< std::string > & | commandLine,
|  | const ReaderWriter::Options * | options
| ) |

| Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more than one subgraph has been loaded. Use the Options object to control cache operations and file search paths in osgDB::Registry.

osg::Object* readObjectFile | ( | const std::string & | filename | ) | `[inline]`

| Read an osg::Object from file. Return valid osg::Object on success, return NULL 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 read the specified file.

Object * osgDB::readObjectFile | ( | const std::string & | filename,
|  | const ReaderWriter::Options * | options
| ) |

| Read an osg::Object from file. Return valid osg::Object on success, return NULL 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 read the specified file.

void Registry::setDataFilePathList | ( | const std::string & | paths | ) | `[inline]`

void setDataFilePathList | ( | const FilePathList & | filepath | ) | `[inline]`

void Registry::setLibraryFilePathList | ( | const std::string & | paths | ) | `[inline]`

void setLibraryFilePathList | ( | const FilePathList & | filepaths | ) | `[inline]`

template<class Iterator>
void writeArray | ( | Output & | fw,
|  | Iterator | first,
|  | Iterator | last,
|  | int | noItemsPerLine = `0`
| ) |

template<class Iterator>
void writeArrayAsInts | ( | Output & | fw,
|  | Iterator | first,
|  | Iterator | last,
|  | int | noItemsPerLine = `0`
| ) |

bool osgDB::writeHeightFieldFile | ( | const osg::HeightField & | hf,
|  | const std::string & | filename
| ) |

| 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.

bool osgDB::writeImageFile | ( | const osg::Image & | image,
|  | const std::string & | filename
| ) |

| 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.

bool osgDB::writeNodeFile | ( | const osg::Node & | node,
|  | const std::string & | filename
| ) |

| 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.

bool osgDB::writeObjectFile | ( | const osg::Object & | object,
|  | const std::string & | filename
| ) |

| 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.

## Variable Documentation

class typedef std::deque<std::string> osgDB::FilePathList

| list of directories to search through which searching for files.