33 #ifndef OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
34 #define OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
56 typedef std::multimap<Name, GridDescriptor>
NameMap;
59 explicit File(
const std::string& filename);
62 const std::string&
filename()
const {
return mFilename; }
71 bool isOpen()
const {
return mIsOpen; }
77 bool hasGrid(
const Name&)
const;
112 template<
typename Gr
idPtrContainerT>
113 void write(
const GridPtrContainerT&,
const MetaMap& =
MetaMap())
const;
130 Name gridName()
const {
return GridDescriptor::nameAsString(mIter->second.uniqueName()); }
137 NameIterator beginName()
const;
140 NameIterator endName()
const;
144 void resetInStream()
const { mInStream.seekg(0, std::ios::beg); }
147 void readGridDescriptors(std::istream&);
151 NameMapCIter findDescriptor(
const Name&)
const;
164 void readGridPartial(
GridBase::Ptr, std::istream&,
bool isInstance,
bool readTopology)
const;
169 File(
const File& other);
170 File& operator=(
const File& other);
172 friend class ::TestFile;
173 friend class ::TestStream;
176 std::string mFilename;
180 mutable std::ifstream mInStream;
196 template<
typename Gr
idPtrContainerT>
198 File::write(
const GridPtrContainerT& container,
const MetaMap& metadata)
const
201 std::copy(container.begin(), container.end(), std::back_inserter(grids));
202 this->writeGrids(grids, metadata);
209 this->writeGrids(grids, metadata);
216 #endif // OPENVDB_IO_FILE_HAS_BEEN_INCLUDED