31 #ifndef OPENVDB_METADATA_METAMAP_HAS_BEEN_INCLUDED
32 #define OPENVDB_METADATA_METAMAP_HAS_BEEN_INCLUDED
36 #include <openvdb/metadata/Metadata.h>
37 #include <openvdb/Types.h>
38 #include <openvdb/Exceptions.h>
49 typedef boost::shared_ptr<MetaMap>
Ptr;
50 typedef boost::shared_ptr<const MetaMap>
ConstPtr;
70 void readMeta(std::istream&);
72 void writeMeta(std::ostream&)
const;
85 void insertMeta(
const MetaMap&);
88 void removeMeta(
const Name&);
98 template<
typename T>
typename T::Ptr getMetadata(
const Name&);
101 template<
typename T>
typename T::ConstPtr getMetadata(
const Name&)
const;
107 template<
typename T> T& metaValue(
const Name&);
108 template<
typename T>
const T& metaValue(
const Name&)
const;
112 MetaIterator
endMeta() {
return mMeta.end(); }
113 ConstMetaIterator
beginMeta()
const {
return mMeta.begin(); }
114 ConstMetaIterator
endMeta()
const {
return mMeta.end(); }
121 std::string str(
const std::string& indent =
"")
const;
149 return (iter == mMeta.end() ?
Metadata::Ptr() : iter->second);
156 return (iter == mMeta.end() ?
Metadata::Ptr() : iter->second);
163 template <
typename T>
164 inline typename T::Ptr
168 if(iter == mMeta.end()) {
169 return typename T::Ptr();
176 if (iter->second->typeName() == T::staticTypeName()) {
177 return boost::static_pointer_cast<T,
Metadata>(iter->second);
179 return typename T::Ptr();
182 template <
typename T>
183 inline typename T::ConstPtr
187 if(iter == mMeta.end()) {
188 return typename T::ConstPtr();
194 if (iter->second->typeName() == T::staticTypeName()) {
195 return boost::static_pointer_cast<
const T,
const Metadata>(iter->second);
197 return typename T::ConstPtr();
204 template <
typename T>
206 MetaMap::getValidTypedMetadata(
const Name &name)
const
227 template <
typename T>
236 template <
typename T>
247 #endif // OPENVDB_METADATA_METAMAP_HAS_BEEN_INCLUDED
bool operator==(const Vec3< T0 > &v0, const Vec3< T1 > &v1)
Equality operator, does exact floating point comparisons.
Definition: Vec3.h:450
#define OPENVDB_THROW(exception, message)
Definition: Exceptions.h:97
Definition: Exceptions.h:83
#define OPENVDB_VERSION_NAME
Definition: version.h:43
std::string Name
Definition: Name.h:44
Definition: Exceptions.h:39
std::ostream & operator<<(std::ostream &, const MetaMap &)
Write a MetaMap to an output stream.
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:71
Definition: Exceptions.h:87