33 #ifndef OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
34 #define OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
42 #include <boost/scoped_ptr.hpp>
57 typedef std::multimap<Name, GridDescriptor>
NameMap;
60 explicit File(
const std::string& filename);
75 virtual boost::shared_ptr<Archive> copy()
const;
79 const std::string& filename()
const;
116 void setCopyMaxBytes(
Index64 bytes);
119 bool hasGrid(
const Name&)
const;
148 #ifndef OPENVDB_2_ABI_COMPATIBLE
163 template<
typename Gr
idPtrContainerT>
164 void write(
const GridPtrContainerT&,
const MetaMap& =
MetaMap())
const;
181 Name gridName()
const {
return GridDescriptor::nameAsString(mIter->second.uniqueName()); }
188 NameIterator beginName()
const;
191 NameIterator endName()
const;
195 void readGridDescriptors(std::istream&);
199 NameMapCIter findDescriptor(
const Name&)
const;
213 #ifndef OPENVDB_2_ABI_COMPATIBLE
224 void readGridPartial(
GridBase::Ptr, std::istream&,
bool isInstance,
bool readTopology)
const;
236 const NameMap& gridDescriptors()
const;
237 NameMap& gridDescriptors();
239 std::istream& inputStream()
const;
241 friend class ::TestFile;
242 friend class ::TestStream;
245 boost::scoped_ptr<Impl> mImpl;
255 this->writeGrids(grids, meta);
259 template<
typename Gr
idPtrContainerT>
261 File::write(
const GridPtrContainerT& container,
const MetaMap& meta)
const
264 std::copy(container.begin(), container.end(), std::back_inserter(grids));
265 this->writeGrids(grids, meta);
272 #endif // OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
std::string Name
Definition: Name.h:44
Name gridName() const
Definition: File.h:181
~NameIterator()
Definition: File.h:172
uint64_t Index64
Definition: Types.h:58
GridType::Ptr createGrid(const typename GridType::ValueType &background)
Create a new grid of type GridType with a given background value.
Definition: Grid.h:1333
boost::shared_ptr< GridPtrVec > GridPtrVecPtr
Definition: Grid.h:423
NameIterator & operator++()
Definition: File.h:174
std::vector< GridBase::ConstPtr > GridCPtrVec
Definition: Grid.h:425
std::multimap< Name, GridDescriptor > NameMap
Definition: File.h:57
Definition: GridDescriptor.h:46
bool operator!=(const NameIterator &iter) const
Definition: File.h:177
#define OPENVDB_VERSION_NAME
Definition: version.h:43
Grid archive associated with a file on disk.
Definition: File.h:54
bool operator==(const NameIterator &iter) const
Definition: File.h:176
Definition: Exceptions.h:39
NameIterator(const NameMapCIter &iter)
Definition: File.h:171
NameMap::const_iterator NameMapCIter
Definition: File.h:58
Name operator*() const
Definition: File.h:179
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:71
boost::shared_ptr< GridBase > Ptr
Definition: Grid.h:106
boost::function< void(std::string)> Notifier
Definition: io.h:153
boost::shared_ptr< const GridBase > ConstPtr
Definition: Grid.h:107
Grid serializer/unserializer.
Definition: Archive.h:59