OpenVDB  1.1.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
File Class Reference

Grid archive associated with a file on disk. More...

#include <File.h>

Inherits Archive.

Classes

class  NameIterator
 

Public Types

typedef std::multimap< Name,
GridDescriptor
NameMap
 
typedef NameMap::const_iterator NameMapCIter
 

Public Member Functions

 File (const std::string &filename)
 
 ~File ()
 
const std::string & filename () const
 
bool open ()
 
bool isOpen () const
 Return true if the file has been opened for reading, false otherwise. More...
 
void close ()
 Close the file once we are done reading from it. More...
 
bool hasGrid (const Name &) const
 Return true if a grid of the given name exists in this file. More...
 
MetaMap::Ptr getMetadata () const
 Return (in a newly created MetaMap) the file-level metadata. More...
 
GridPtrVecPtr getGrids () const
 Read the entire contents of the file and return a list of grid pointers. More...
 
GridPtrVecPtr readAllGridMetadata ()
 Read just the grid metadata and transforms from the file and return a list of pointers to grids that are empty except for their metadata and transforms. More...
 
GridBase::Ptr readGridMetadata (const Name &)
 Read a grid's metadata and transform only. More...
 
GridBase::ConstPtr readGridPartial (const Name &)
 Read a grid's metadata, topology, transform, etc., but not any of its leaf node data blocks. More...
 
GridBase::Ptr readGrid (const Name &)
 Read an entire grid, including all of its data blocks. More...
 
template<typename GridPtrContainerT >
void write (const GridPtrContainerT &, const MetaMap &=MetaMap()) const
 Write the grids in the given container to the file whose name was given in the constructor. More...
 
NameIterator beginName () const
 
NameIterator endName () const
 
template<>
void write (const GridCPtrVec &grids, const MetaMap &metadata) const
 
std::string getUniqueTag () const
 Return the UUID that was most recently written (or read, if no UUID has been written yet). More...
 
bool isIdentical (const std::string &uuidStr) const
 Return true if the given UUID matches this archive's UUID. More...
 
uint32_t fileVersion () const
 Return the file format version number of the input stream. More...
 
VersionId libraryVersion () const
 Return the (major, minor) version number of the library that was used to write the input stream. More...
 
std::string version () const
 Return a string of the form "<major>.<minor>/<format>", giving the library and file format version numbers associated with the input stream. More...
 
bool isInstancingEnabled () const
 Return true if trees shared by multiple grids are written out only once, false if they are written out once per grid. More...
 
void setInstancingEnabled (bool b)
 Specify whether trees shared by multiple grids should be written out only once (true) or once per grid (false). More...
 
bool isCompressionEnabled () const
 Return true if the data stream is Zip-compressed. More...
 
void setCompressionEnabled (bool)
 Specify whether the data stream should be Zip-compressed. More...
 
uint32_t compressionFlags () const
 Return a bit mask specifying compression options for the data stream. More...
 
void setCompressionFlags (uint32_t c)
 Specify whether and how the data stream should be compressed. [Mainly for internal use]. More...
 
bool isGridStatsMetadataEnabled () const
 Return true if grid statistics (active voxel count and bounding box, etc.) are computed and written as grid metadata. More...
 
void setGridStatsMetadataEnabled (bool b)
 Specify whether grid statistics (active voxel count and bounding box, etc.) should be computed and written as grid metadata. More...
 

Static Public Attributes

static const int sFormatVersionIndex
 
static const int sLibraryMajorVersionIndex
 
static const int sLibraryMinorVersionIndex
 
static const int sDataCompressionIndex
 
static const int sWriteGridStatsMetadataIndex
 
static const int sGridBackgroundIndex
 
static const int sGridClassIndex
 
static const uint32_t DEFAULT_COMPRESSION_FLAGS
 

Protected Types

typedef std::map< Name,
GridBase::Ptr
NamedGridMap
 

Protected Member Functions

bool inputHasGridOffsets () const
 Return true if the input stream contains grid offsets that allow for random access or partial reading. More...
 
void setInputHasGridOffsets (bool b)
 
void setFormatVersion (std::istream &)
 Tag the given input stream with the input file format version number. More...
 
void setLibraryVersion (std::istream &)
 Tag the given input stream with the version number of the library with which the input stream was created. More...
 
void setDataCompression (std::istream &)
 Tag the given input stream with flags indicating whether the input stream contains compressed data and how it is compressed. More...
 
void setGridCompression (std::ostream &, const GridBase &) const
 Tag an output stream with flags specifying only those compression options that are applicable to the given grid. More...
 
void setWriteGridStatsMetadata (std::ostream &)
 Tag the given output stream with a flag indicating whether to compute and write grid statistics metadata. More...
 
void connectInstance (const GridDescriptor &, const NamedGridMap &) const
 If the grid represented by the given grid descriptor is an instance, connect it with its instance parent. More...
 
void writeGrid (GridDescriptor &, GridBase::ConstPtr, std::ostream &, bool seekable) const
 
void writeGridInstance (GridDescriptor &, GridBase::ConstPtr, std::ostream &, bool seekable) const
 
bool readHeader (std::istream &)
 Read the magic number, version numbers, UUID, etc. from the given input stream. More...
 
void writeHeader (std::ostream &, bool seekable) const
 Write the magic number, version numbers, UUID, etc. to the given output stream. More...
 
void write (std::ostream &, const GridPtrVec &, bool seekable, const MetaMap &=MetaMap()) const
 Write the given grids to an output stream. More...
 
void write (std::ostream &, const GridCPtrVec &, bool seekable, const MetaMap &=MetaMap()) const
 Write the given grids to an output stream. More...
 

Static Protected Member Functions

static void readGridCompression (std::istream &)
 Read in the compression flags for a grid and tag the given input stream with those flags. More...
 
static int readGridCount (std::istream &)
 Read in and return the number of grids on the input stream. More...
 
static void readGrid (GridBase::Ptr, const GridDescriptor &, std::istream &)
 Populate the given grid from the input stream. More...
 

Friends

class ::TestFile
 
class ::TestStream
 

Detailed Description

Grid archive associated with a file on disk.

Member Typedef Documentation

typedef std::map<Name , GridBase::Ptr> NamedGridMap
protectedinherited
typedef std::multimap<Name, GridDescriptor> NameMap
typedef NameMap::const_iterator NameMapCIter

Constructor & Destructor Documentation

File ( const std::string &  filename)
explicit
~File ( )

Member Function Documentation

NameIterator beginName ( ) const
Returns
a NameIterator to iterate over all grid names in the file.
void close ( )

Close the file once we are done reading from it.

uint32_t compressionFlags ( ) const
inlineinherited

Return a bit mask specifying compression options for the data stream.

void connectInstance ( const GridDescriptor ,
const NamedGridMap  
) const
protectedinherited

If the grid represented by the given grid descriptor is an instance, connect it with its instance parent.

NameIterator endName ( ) const
Returns
the ending iterator for all grid names in the file.
const std::string& filename ( ) const
inline
uint32_t fileVersion ( ) const
inlineinherited

Return the file format version number of the input stream.

GridPtrVecPtr getGrids ( ) const

Read the entire contents of the file and return a list of grid pointers.

MetaMap::Ptr getMetadata ( ) const

Return (in a newly created MetaMap) the file-level metadata.

std::string getUniqueTag ( ) const
inherited

Return the UUID that was most recently written (or read, if no UUID has been written yet).

bool hasGrid ( const Name ) const

Return true if a grid of the given name exists in this file.

bool inputHasGridOffsets ( ) const
inlineprotectedinherited

Return true if the input stream contains grid offsets that allow for random access or partial reading.

bool isCompressionEnabled ( ) const
inherited

Return true if the data stream is Zip-compressed.

bool isGridStatsMetadataEnabled ( ) const
inlineinherited

Return true if grid statistics (active voxel count and bounding box, etc.) are computed and written as grid metadata.

bool isIdentical ( const std::string &  uuidStr) const
inherited

Return true if the given UUID matches this archive's UUID.

bool isInstancingEnabled ( ) const
inlineinherited

Return true if trees shared by multiple grids are written out only once, false if they are written out once per grid.

bool isOpen ( ) const
inline

Return true if the file has been opened for reading, false otherwise.

VersionId libraryVersion ( ) const
inlineinherited

Return the (major, minor) version number of the library that was used to write the input stream.

bool open ( )

Open the file, read the file header and the file-level metadata, and populate the grid descriptors, but do not load any grids into memory.

Exceptions
IoErrorif the file is not a valid VDB file.
Returns
true if the file's UUID has changed since it was last read.
GridPtrVecPtr readAllGridMetadata ( )

Read just the grid metadata and transforms from the file and return a list of pointers to grids that are empty except for their metadata and transforms.

Exceptions
IoErrorif this file is not open for reading.
GridBase::Ptr readGrid ( const Name )

Read an entire grid, including all of its data blocks.

static void readGrid ( GridBase::Ptr  ,
const GridDescriptor ,
std::istream &   
)
staticprotectedinherited

Populate the given grid from the input stream.

static void readGridCompression ( std::istream &  )
staticprotectedinherited

Read in the compression flags for a grid and tag the given input stream with those flags.

static int readGridCount ( std::istream &  )
staticprotectedinherited

Read in and return the number of grids on the input stream.

GridBase::Ptr readGridMetadata ( const Name )

Read a grid's metadata and transform only.

Returns
A pointer to a grid that is empty except for its metadata and transform.
Exceptions
IoErrorif this file is not open for reading.
KeyErrorif no grid with the given name exists in this file.
GridBase::ConstPtr readGridPartial ( const Name )

Read a grid's metadata, topology, transform, etc., but not any of its leaf node data blocks.

Returns
the grid pointer to the partially loaded grid.
Note
This returns a const pointer, so that the grid can't be changed before its data blocks have been loaded. A non-const pointer is only returned when readGrid() is called.
bool readHeader ( std::istream &  )
protectedinherited

Read the magic number, version numbers, UUID, etc. from the given input stream.

Returns
true if the input UUID differs from the previously-read UUID.
void setCompressionEnabled ( bool  )
inherited

Specify whether the data stream should be Zip-compressed.

Enabling Zip compression makes I/O slower, but saves space. Disable it only if raw I/O speed is a concern.

void setCompressionFlags ( uint32_t  c)
inlineinherited

Specify whether and how the data stream should be compressed. [Mainly for internal use].

Parameters
cbitwise OR (e.g., COMPRESS_ZIP | COMPRESS_ACTIVE_MASK) of compression option flags (see Compression.h for the available flags)
Note
Not all combinations of compression options are supported.
void setDataCompression ( std::istream &  )
protectedinherited

Tag the given input stream with flags indicating whether the input stream contains compressed data and how it is compressed.

void setFormatVersion ( std::istream &  )
protectedinherited

Tag the given input stream with the input file format version number.

The tag can be retrieved with getFormatVersion().

See Also
getFormatVersion()
void setGridCompression ( std::ostream &  ,
const GridBase  
) const
protectedinherited

Tag an output stream with flags specifying only those compression options that are applicable to the given grid.

void setGridStatsMetadataEnabled ( bool  b)
inlineinherited

Specify whether grid statistics (active voxel count and bounding box, etc.) should be computed and written as grid metadata.

void setInputHasGridOffsets ( bool  b)
inlineprotectedinherited
void setInstancingEnabled ( bool  b)
inlineinherited

Specify whether trees shared by multiple grids should be written out only once (true) or once per grid (false).

Note
Instancing is enabled by default.
void setLibraryVersion ( std::istream &  )
protectedinherited

Tag the given input stream with the version number of the library with which the input stream was created.

The tag can be retrieved with getLibraryVersion().

See Also
getLibraryVersion()
void setWriteGridStatsMetadata ( std::ostream &  )
protectedinherited

Tag the given output stream with a flag indicating whether to compute and write grid statistics metadata.

std::string version ( ) const
inherited

Return a string of the form "<major>.<minor>/<format>", giving the library and file format version numbers associated with the input stream.

void write ( const GridPtrContainerT &  container,
const MetaMap metadata = MetaMap() 
) const
inline

Write the grids in the given container to the file whose name was given in the constructor.

void write ( const GridCPtrVec grids,
const MetaMap metadata 
) const
inline
void write ( std::ostream &  ,
const GridPtrVec ,
bool  seekable,
const MetaMap = MetaMap() 
) const
protectedinherited

Write the given grids to an output stream.

void write ( std::ostream &  ,
const GridCPtrVec ,
bool  seekable,
const MetaMap = MetaMap() 
) const
protectedinherited

Write the given grids to an output stream.

void writeGrid ( GridDescriptor ,
GridBase::ConstPtr  ,
std::ostream &  ,
bool  seekable 
) const
protectedinherited

Write the given grid descriptor and grid to an output stream and update the GridDescriptor offsets.

Parameters
seekableif true, the output stream supports seek operations
void writeGridInstance ( GridDescriptor ,
GridBase::ConstPtr  ,
std::ostream &  ,
bool  seekable 
) const
protectedinherited

Write the given grid descriptor and grid metadata to an output stream and update the GridDescriptor offsets, but don't write the grid's tree, since it is shared with another grid.

Parameters
seekableif true, the output stream supports seek operations
void writeHeader ( std::ostream &  ,
bool  seekable 
) const
protectedinherited

Write the magic number, version numbers, UUID, etc. to the given output stream.

Parameters
seekableif true, the output stream supports seek operations

Friends And Related Function Documentation

friend class ::TestFile
friend
friend class ::TestStream
friend

Member Data Documentation

const uint32_t DEFAULT_COMPRESSION_FLAGS
staticinherited
const int sDataCompressionIndex
staticinherited
const int sFormatVersionIndex
staticinherited
const int sGridBackgroundIndex
staticinherited
const int sGridClassIndex
staticinherited
const int sLibraryMajorVersionIndex
staticinherited
const int sLibraryMinorVersionIndex
staticinherited
const int sWriteGridStatsMetadataIndex
staticinherited

The documentation for this class was generated from the following file: