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);
74 virtual boost::shared_ptr<Archive> copy()
const;
78 const std::string&
filename()
const {
return mFilename; }
87 bool isOpen()
const {
return mIsOpen; }
93 bool hasGrid(
const Name&)
const;
132 template<
typename Gr
idPtrContainerT>
133 void write(
const GridPtrContainerT&,
const MetaMap& =
MetaMap())
const;
150 Name gridName()
const {
return GridDescriptor::nameAsString(mIter->second.uniqueName()); }
157 NameIterator beginName()
const;
160 NameIterator endName()
const;
164 void resetInStream()
const { mInStream.seekg(0, std::ios::beg); }
167 void readGridDescriptors(std::istream&);
171 NameMapCIter findDescriptor(
const Name&)
const;
184 void readGridPartial(
GridBase::Ptr, std::istream&,
bool isInstance,
bool readTopology)
const;
188 friend class ::TestFile;
189 friend class ::TestStream;
192 std::string mFilename;
196 mutable std::ifstream mInStream;
215 this->writeGrids(grids, metadata);
219 template<
typename Gr
idPtrContainerT>
221 File::write(
const GridPtrContainerT& container,
const MetaMap& metadata)
const
224 std::copy(container.begin(), container.end(), std::back_inserter(grids));
225 this->writeGrids(grids, metadata);
232 #endif // OPENVDB_IO_FILE_HAS_BEEN_INCLUDED
Name gridName() const
Definition: File.h:150
const std::string & filename() const
Return the name of the file with which this archive is associated.
Definition: File.h:78
bool operator==(const NameIterator &iter) const
Definition: File.h:145
boost::shared_ptr< GridPtrVec > GridPtrVecPtr
Definition: Grid.h:399
GridType::Ptr createGrid(const typename GridType::ValueType &background)
Create a new grid of type GridType with a given background value.
Definition: Grid.h:1236
Grid archive associated with a file on disk.
Definition: File.h:53
std::map< Name, GridBase::Ptr > NamedGridMap
Definition: Archive.h:213
bool isOpen() const
Return true if the file has been opened for reading.
Definition: File.h:87
boost::shared_ptr< const GridBase > ConstPtr
Definition: Grid.h:107
boost::shared_ptr< GridBase > Ptr
Definition: Grid.h:106
Name operator*() const
Definition: File.h:148
#define OPENVDB_VERSION_NAME
Definition: version.h:45
std::vector< GridBase::ConstPtr > GridCPtrVec
Definition: Grid.h:401
NameIterator(const NameMapCIter &iter)
Definition: File.h:140
~NameIterator()
Definition: File.h:141
std::multimap< Name, GridDescriptor > NameMap
Definition: File.h:56
bool operator!=(const NameIterator &iter) const
Definition: File.h:146
Grid serializer/unserializer.
Definition: Archive.h:113
NameMap::const_iterator NameMapCIter
Definition: File.h:57
NameIterator & operator++()
Definition: File.h:143
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:67
std::string Name
Definition: Name.h:44