OpenVDB 11.0.0
Loading...
Searching...
No Matches
IO.h File Reference
#include <nanovdb/NanoVDB.h>
#include "GridHandle.h"
#include "GridChecksum.h"
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <cstring>
#include <memory>
#include <vector>

Go to the source code of this file.

Classes

struct  FileGridMetaData
 This class defines the meta data stored for each grid in a segment. More...
 
struct  Segment
 This class defines all the data stored in segment of a file. More...
 

Namespaces

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

Typedefs

using fileSize_t = uint64_t
 

Functions

template<typename BufferT >
void writeGrid (const std::string &fileName, const GridHandle< BufferT > &handle, io::Codec codec=io::Codec::NONE, int verbose=0)
 Write a single grid to file (over-writing existing content of the file)
 
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)
 
template<typename BufferT = HostBuffer>
GridHandle< BufferT > readGrid (const std::string &fileName, int n=0, int verbose=0, const BufferT &buffer=BufferT())
 Read and return one or all grids from a file into a single GridHandle.
 
template<typename BufferT = HostBuffer>
GridHandle< BufferT > readGrid (const std::string &fileName, const std::string &gridName, int verbose=0, const BufferT &buffer=BufferT())
 Read and return the first grid with a specific name from a file.
 
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 and return them as a vector of multiple GridHandles, each containing all grids encoded in the same segment of the file (i.e. they where written together)
 
template<typename BufferT >
static fileSize_t write (std::ostream &os, const GridHandle< BufferT > &handle, Codec codec, uint32_t n)
 
template<typename BufferT >
static void read (std::istream &is, BufferT &buffer, Codec codec)
 
static void read (std::istream &is, char *data, fileSize_t size, 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.
 
uint64_t stringHash (const std::string &str)
 Return a uint64_t hash key of a std::string.
 
uint64_t reverseEndianness (uint64_t val)
 Return a uint64_t with its bytes reversed so we can check for endianness.
 
bool hasGrid (const std::string &fileName, const std::string &gridName)
 Return true if the file contains a grid with the specified name.
 
bool hasGrid (std::istream &is, const std::string &gridName)
 Return true if the stream contains a grid with the specified name.
 
std::vector< FileGridMetaDatareadGridMetaData (const std::string &fileName)
 Reads and returns a vector of meta data for all the grids found in the specified file.
 
std::vector< FileGridMetaDatareadGridMetaData (std::istream &is)
 Reads and returns a vector of meta data for all the grids found in the specified stream.
 
template<typename BufferT >
void writeGrid (std::ostream &os, const GridHandle< BufferT > &handle, Codec codec)
 
template<typename BufferT = HostBuffer, template< typename... > class VecT = std::vector>
void writeGrids (std::ostream &os, const VecT< GridHandle< BufferT > > &handles, Codec codec=Codec::NONE)
 
template<typename BufferT >
GridHandle< BufferT > readGrid (std::istream &is, int n, const BufferT &pool)
 
template<typename BufferT >
GridHandle< BufferT > readGrid (std::istream &is, const std::string &gridName, const BufferT &pool)
 Read a specific grid from an input stream given the name of the grid.
 
template<typename BufferT = HostBuffer, template< typename... > class VecT = std::vector>
VecT< GridHandle< BufferT > > readGrids (std::istream &is, const BufferT &pool=BufferT())
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const BBox< Vec3< T > > &b)
 
std::ostream & operator<< (std::ostream &os, const CoordBBox &b)
 
std::ostream & operator<< (std::ostream &os, const Coord &ijk)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const Vec3< T > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const Vec4< T > &v)
 

Variables

static constexpr fileSize_t MAX_SIZE = 1UL << 30