6#ifndef OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
7#define OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
9#include <openvdb/version.h>
33 using NameMap = std::multimap<Name, GridDescriptor>;
36 explicit File(
const std::string& filename);
128 template<
typename Gr
idPtrContainerT>
147 Name gridName()
const {
return GridDescriptor::nameAsString(mIter->second.uniqueName()); }
161 void readGridDescriptors(std::istream&);
188 void readGridPartial(
GridBase::Ptr, std::istream&,
bool isInstance,
bool readTopology)
const;
200 const NameMap& gridDescriptors()
const;
203 std::istream& inputStream()
const;
205 friend class ::TestFile;
206 friend class ::TestStream;
209 std::unique_ptr<Impl> mImpl;
223template<
typename Gr
idPtrContainerT>
228 std::copy(container.begin(), container.end(), std::back_inserter(grids));
SharedPtr< const GridBase > ConstPtr
Definition: Grid.h:81
SharedPtr< GridBase > Ptr
Definition: Grid.h:80
Grid serializer/unserializer.
Definition: Archive.h:33
NameIterator(const NameIterator &)=default
~NameIterator()
Definition: File.h:138
Name operator*() const
Definition: File.h:145
Name gridName() const
Definition: File.h:147
bool operator!=(const NameIterator &iter) const
Definition: File.h:143
NameIterator(const NameMapCIter &iter)
Definition: File.h:136
NameIterator & operator++()
Definition: File.h:140
bool operator==(const NameIterator &iter) const
Definition: File.h:142
Grid archive associated with a file on disk.
Definition: File.h:31
bool isOpen() const
Return true if the file has been opened for reading.
void setCopyMaxBytes(Index64 bytes)
If this file is opened with delayed loading enabled, make a private copy of the file if its size in b...
NameIterator endName() const
GridPtrVecPtr getGrids() const
Read the entire contents of the file and return a list of grid pointers.
bool hasGrid(const Name &) const
Return true if a grid of the given name exists in this file.
File(const std::string &filename)
const std::string & filename() const
Return the name of the file with which this archive is associated.
GridBase::Ptr readGrid(const Name &, const BBoxd &)
Read a grid, including its data blocks, but only where it intersects the given world-space bounding b...
void close()
Close the file once we are done reading from it.
NameMap::const_iterator NameMapCIter
Definition: File.h:34
NameIterator beginName() const
GridBase::Ptr readGrid(const Name &)
Read an entire grid, including all of its data blocks.
File(const File &other)
Copy constructor.
File & operator=(const File &other)
Assignment.
MetaMap::Ptr getMetadata() const
Return (in a newly created MetaMap) the file-level metadata.
GridBase::Ptr readGridMetadata(const Name &)
Read a grid's metadata and transform only.
bool open(bool delayLoad=true, const MappedFile::Notifier &=MappedFile::Notifier())
Open the file, read the file header and the file-level metadata, and populate the grid descriptors,...
SharedPtr< Archive > copy() const override
Return a copy of this archive.
GridPtrVecPtr readAllGridMetadata()
Read just the grid metadata and transforms from the file and return a list of pointers to grids that ...
Index64 getSize() const
Return this file's current size on disk in bytes.
Index64 copyMaxBytes() const
Return the size in bytes above which this file will not be automatically copied during delayed loadin...
std::multimap< Name, GridDescriptor > NameMap
Definition: File.h:33
Definition: GridDescriptor.h:20
std::function< void(std::string)> Notifier
Definition: io.h:156
Axis-aligned bounding box of signed integer coordinates.
Definition: Coord.h:248
static fileSize_t write(std::ostream &os, const GridHandle< BufferT > &handle, Codec codec)
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)
Definition: IO.h:543
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)
Definition: IO.h:576
std::string Name
Definition: Name.h:17
SharedPtr< GridPtrVec > GridPtrVecPtr
Definition: Grid.h:517
GridType::Ptr createGrid(const typename GridType::ValueType &background)
Create a new grid of type GridType with a given background value.
Definition: Grid.h:1739
uint64_t Index64
Definition: Types.h:53
std::shared_ptr< T > SharedPtr
Definition: Types.h:114
std::vector< GridBase::ConstPtr > GridCPtrVec
Definition: Grid.h:519
Definition: Exceptions.h:13
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:116
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:202