OpenVDB 9.0.0
Namespaces | Classes | Typedefs | Enumerations | Functions
nanovdb::io Namespace Reference

Namespaces

namespace  Internal
 Internal functions for compressed read/write of a NanoVDB GridHandle into a stream.
 

Classes

struct  GridMetaData
 
struct  Header
 Data encoded at the head of each segment of a file or stream. More...
 
struct  MetaData
 Data encoded for each of the grids associated with a segment. More...
 
struct  Segment
 

Typedefs

using fileSize_t = uint64_t
 

Enumerations

enum class  Codec : uint16_t { NONE = 0 , ZIP = 1 , BLOSC = 2 , END = 3 }
 Optional compression codecs. More...
 

Functions

template<typename ValueT >
void writeDense (const DenseGrid< ValueT > &grid, const char *fileName)
 
template<typename BufferT >
void writeDense (const DenseGridHandle< BufferT > &handle, const char *fileName)
 
template<typename BufferT = HostBuffer>
DenseGridHandle< BufferT > readDense (const char *fileName, const BufferT &allocator=BufferT())
 
const char * toStr (Codec codec)
 
uint64_t stringHash (const char *cstr)
 Standard hash function to use on strings; std::hash may vary by platform/implementation and is know to produce frequent collisions. More...
 
uint64_t stringHash (const std::string &str)
 Return a uint64_t hash key of a std::string. More...
 
uint64_t reverseEndianness (uint64_t val)
 Return a uint64_t with its bytes reversed so we can check for endianness. More...
 
template<typename BufferT >
void writeGrid (const std::string &fileName, const GridHandle< BufferT > &handle, Codec codec=Codec::NONE, int verbose=0)
 Write a single grid to file (over-writing existing content of the file) More...
 
template<typename BufferT >
void writeGrid (std::ostream &os, const GridHandle< BufferT > &handle, Codec codec=Codec::NONE)
 Write a single grid to stream (starting at the current position) More...
 
template<typename BufferT = HostBuffer, template< typename... > class VecT = std::vector>
void writeGrids (const std::string &fileName, const VecT< GridHandle< BufferT > > &handles, Codec codec=Codec::NONE, int verbose=0)
 Write multiple grids to file (over-writing existing content of the file) More...
 
template<typename BufferT = HostBuffer, template< typename... > class VecT = std::vector>
void writeGrids (std::ostream &os, const VecT< GridHandle< BufferT > > &handles, Codec codec=Codec::NONE)
 Writes multiple grids to stream (starting at its current position) More...
 
template<typename BufferT = HostBuffer>
GridHandle< BufferT > readGrid (const std::string &fileName, uint64_t n=0, int verbose=0, const BufferT &buffer=BufferT())
 Read the n'th grid from file (defaults to first grid) More...
 
template<typename BufferT = HostBuffer>
GridHandle< BufferT > readGrid (std::istream &is, uint64_t n=0, const BufferT &buffer=BufferT())
 Read the n'th grid from stream (defaults to first grid) More...
 
template<typename BufferT = HostBuffer>
GridHandle< BufferT > readGrid (const std::string &fileName, const std::string &gridName, int verbose=0, const BufferT &buffer=BufferT())
 Read the first grid with a specific name. More...
 
template<typename BufferT = HostBuffer>
GridHandle< BufferT > readGrid (std::istream &is, const std::string &gridName, const BufferT &buffer=BufferT())
 Read the first grid with a specific name. More...
 
template<typename BufferT = HostBuffer, template< typename... > class VecT = std::vector>
VecT< GridHandle< BufferT > > readGrids (const std::string &fileName, int verbose=0, const BufferT &buffer=BufferT())
 Read all the grids in the file. More...
 
template<typename BufferT = HostBuffer, template< typename... > class VecT = std::vector>
VecT< GridHandle< BufferT > > readGrids (std::istream &is, const BufferT &buffer=BufferT())
 Real all grids at the current position of the input stream. More...
 
bool hasGrid (const std::string &fileName, const std::string &gridName)
 Return true if the file contains a grid with the specified name. More...
 
bool hasGrid (std::istream &is, const std::string &gridName)
 Return true if the stream contains a grid with the specified name. More...
 
std::vector< GridMetaDatareadGridMetaData (const std::string &fileName)
 Reads and returns a vector of meta data for all the grids found in the specified file. More...
 
std::vector< GridMetaDatareadGridMetaData (std::istream &is)
 Reads and returns a vector of meta data for all the grids found in the specified stream. More...
 

Typedef Documentation

◆ fileSize_t

using fileSize_t = uint64_t

We fix a specific size for counting bytes in files so that they are saved the same regardless of machine precision. (Note there are still little/bigendian issues, however)

Enumeration Type Documentation

◆ Codec

enum class Codec : uint16_t
strong

Optional compression codecs.

Note
NONE is the default, ZIP is slow but compact and BLOSC offers a great balance.
Warning
NanoVDB optionally supports ZIP and BLOSC compression and will throw an exception if it support is required but missing.
Enumerator
NONE 
ZIP 
BLOSC 
END 

Function Documentation

◆ hasGrid() [1/2]

bool hasGrid ( const std::string &  fileName,
const std::string &  gridName 
)
inline

Return true if the file contains a grid with the specified name.

◆ hasGrid() [2/2]

bool hasGrid ( std::istream &  is,
const std::string &  gridName 
)
inline

Return true if the stream contains a grid with the specified name.

◆ readDense()

DenseGridHandle< BufferT > nanovdb::io::readDense ( const char *  fileName,
const BufferT &  allocator = BufferT() 
)

◆ readGrid() [1/4]

GridHandle< BufferT > readGrid ( const std::string &  fileName,
const std::string &  gridName,
int  verbose = 0,
const BufferT &  buffer = BufferT() 
)

Read the first grid with a specific name.

Warning
If not grid exists with the specified name the resulting GridHandle is empty

◆ readGrid() [2/4]

GridHandle< BufferT > readGrid ( const std::string &  fileName,
uint64_t  n = 0,
int  verbose = 0,
const BufferT &  buffer = BufferT() 
)

Read the n'th grid from file (defaults to first grid)

Read the n'th grid.

Exceptions
Ifn exceeds the number of grids in the file

◆ readGrid() [3/4]

GridHandle< BufferT > readGrid ( std::istream &  is,
const std::string &  gridName,
const BufferT &  buffer = BufferT() 
)

Read the first grid with a specific name.

◆ readGrid() [4/4]

GridHandle< BufferT > readGrid ( std::istream &  is,
uint64_t  n = 0,
const BufferT &  buffer = BufferT() 
)

Read the n'th grid from stream (defaults to first grid)

Exceptions
Ifn exceeds the number of grids in the stream

◆ readGridMetaData() [1/2]

std::vector< GridMetaData > readGridMetaData ( const std::string &  fileName)
inline

Reads and returns a vector of meta data for all the grids found in the specified file.

◆ readGridMetaData() [2/2]

std::vector< GridMetaData > readGridMetaData ( std::istream &  is)
inline

Reads and returns a vector of meta data for all the grids found in the specified stream.

◆ readGrids() [1/2]

VecT< GridHandle< BufferT > > readGrids ( const std::string &  fileName,
int  verbose = 0,
const BufferT &  buffer = BufferT() 
)

Read all the grids in the file.

Read all the grids.

◆ readGrids() [2/2]

VecT< GridHandle< BufferT > > readGrids ( std::istream &  is,
const BufferT &  buffer = BufferT() 
)

Real all grids at the current position of the input stream.

◆ reverseEndianness()

uint64_t nanovdb::io::reverseEndianness ( uint64_t  val)
inline

Return a uint64_t with its bytes reversed so we can check for endianness.

◆ stringHash() [1/2]

uint64_t stringHash ( const char *  cstr)
inline

Standard hash function to use on strings; std::hash may vary by platform/implementation and is know to produce frequent collisions.

◆ stringHash() [2/2]

uint64_t nanovdb::io::stringHash ( const std::string &  str)
inline

Return a uint64_t hash key of a std::string.

◆ toStr()

const char * nanovdb::io::toStr ( Codec  codec)
inline

◆ writeDense() [1/2]

void nanovdb::io::writeDense ( const DenseGrid< ValueT > &  grid,
const char *  fileName 
)

◆ writeDense() [2/2]

void nanovdb::io::writeDense ( const DenseGridHandle< BufferT > &  handle,
const char *  fileName 
)

◆ writeGrid() [1/2]

void writeGrid ( const std::string &  fileName,
const GridHandle< BufferT > &  handle,
Codec  codec = Codec::NONE,
int  verbose = 0 
)

Write a single grid to file (over-writing existing content of the file)

◆ writeGrid() [2/2]

void writeGrid ( std::ostream &  os,
const GridHandle< BufferT > &  handle,
Codec  codec = Codec::NONE 
)

Write a single grid to stream (starting at the current position)

Note
This method can be used to append grid to an existing stream

◆ writeGrids() [1/2]

void writeGrids ( const std::string &  fileName,
const VecT< GridHandle< BufferT > > &  handles,
Codec  codec = Codec::NONE,
int  verbose = 0 
)

Write multiple grids to file (over-writing existing content of the file)

◆ writeGrids() [2/2]

void writeGrids ( std::ostream &  os,
const VecT< GridHandle< BufferT > > &  handles,
Codec  codec = Codec::NONE 
)

Writes multiple grids to stream (starting at its current position)

Note
This method can be used to append multiple grids to an existing stream