35 #ifndef IECORE_MURMURHASH_H
36 #define IECORE_MURMURHASH_H
41 #include "tbb/concurrent_hash_map.h"
43 #include "OpenEXR/ImathMatrix.h"
44 #include "OpenEXR/ImathBox.h"
45 #include "OpenEXR/ImathVec.h"
46 #include "OpenEXR/ImathColor.h"
47 #include "OpenEXR/ImathQuat.h"
49 #include "IECore/Export.h"
50 #include "IECore/InternedString.h"
73 inline MurmurHash &append(
unsigned char data );
75 inline MurmurHash &append(
unsigned short data );
77 inline MurmurHash &append(
unsigned int data );
84 inline MurmurHash &append(
const std::string &data );
86 inline MurmurHash &append(
const Imath::V2i &data );
87 inline MurmurHash &append(
const Imath::V2f &data );
88 inline MurmurHash &append(
const Imath::V2d &data );
89 inline MurmurHash &append(
const Imath::V3i &data );
90 inline MurmurHash &append(
const Imath::V3f &data );
91 inline MurmurHash &append(
const Imath::V3d &data );
92 inline MurmurHash &append(
const Imath::Color3f &data );
93 inline MurmurHash &append(
const Imath::Color3<double> &data );
94 inline MurmurHash &append(
const Imath::Color4f &data );
95 inline MurmurHash &append(
const Imath::Color4<double> &data );
96 inline MurmurHash &append(
const Imath::M33f &data );
97 inline MurmurHash &append(
const Imath::M33d &data );
98 inline MurmurHash &append(
const Imath::M44f &data );
99 inline MurmurHash &append(
const Imath::M44d &data );
100 inline MurmurHash &append(
const Imath::Box2i &data );
101 inline MurmurHash &append(
const Imath::Box2f &data );
102 inline MurmurHash &append(
const Imath::Box2d &data );
103 inline MurmurHash &append(
const Imath::Box3i &data );
104 inline MurmurHash &append(
const Imath::Box3f &data );
105 inline MurmurHash &append(
const Imath::Box3d &data );
106 inline MurmurHash &append(
const Imath::Quatf &data );
107 inline MurmurHash &append(
const Imath::Quatd &data );
110 inline MurmurHash &append(
const char *data,
size_t numElements );
111 inline MurmurHash &append(
const unsigned char *data,
size_t numElements );
112 inline MurmurHash &append(
const short *data,
size_t numElements );
113 inline MurmurHash &append(
const unsigned short *data,
size_t numElements );
114 inline MurmurHash &append(
const int *data,
size_t numElements );
115 inline MurmurHash &append(
const unsigned int *data,
size_t numElements );
116 inline MurmurHash &append(
const int64_t *data,
size_t numElements );
117 inline MurmurHash &append(
const uint64_t *data,
size_t numElements );
118 inline MurmurHash &append(
const half *data,
size_t numElements );
119 inline MurmurHash &append(
const float *data,
size_t numElements );
120 inline MurmurHash &append(
const double *data,
size_t numElements );
121 inline MurmurHash &append(
const std::string *data,
size_t numElements );
123 inline MurmurHash &append(
const Imath::V2i *data,
size_t numElements );
124 inline MurmurHash &append(
const Imath::V2f *data,
size_t numElements );
125 inline MurmurHash &append(
const Imath::V2d *data,
size_t numElements );
126 inline MurmurHash &append(
const Imath::V3i *data,
size_t numElements );
127 inline MurmurHash &append(
const Imath::V3f *data,
size_t numElements );
128 inline MurmurHash &append(
const Imath::V3d *data,
size_t numElements );
129 inline MurmurHash &append(
const Imath::Color3f *data,
size_t numElements );
130 inline MurmurHash &append(
const Imath::Color3<double> *data,
size_t numElements );
131 inline MurmurHash &append(
const Imath::Color4f *data,
size_t numElements );
132 inline MurmurHash &append(
const Imath::Color4<double> *data,
size_t numElements );
133 inline MurmurHash &append(
const Imath::M33f *data,
size_t numElements );
134 inline MurmurHash &append(
const Imath::M33d *data,
size_t numElements );
135 inline MurmurHash &append(
const Imath::M44f *data,
size_t numElements );
136 inline MurmurHash &append(
const Imath::M44d *data,
size_t numElements );
137 inline MurmurHash &append(
const Imath::Box2i *data,
size_t numElements );
138 inline MurmurHash &append(
const Imath::Box2f *data,
size_t numElements );
139 inline MurmurHash &append(
const Imath::Box2d *data,
size_t numElements );
140 inline MurmurHash &append(
const Imath::Box3i *data,
size_t numElements );
141 inline MurmurHash &append(
const Imath::Box3f *data,
size_t numElements );
142 inline MurmurHash &append(
const Imath::Box3d *data,
size_t numElements );
143 inline MurmurHash &append(
const Imath::Quatf *data,
size_t numElements );
144 inline MurmurHash &append(
const Imath::Quatd *data,
size_t numElements );
148 inline bool operator == (
const MurmurHash &other )
const;
149 inline bool operator != (
const MurmurHash &other )
const;
151 inline bool operator < (
const MurmurHash &other )
const;
153 std::string toString()
const;
157 inline void append(
const void *data,
size_t bytes,
int elementSize );
163 friend size_t hash_value(
const MurmurHash &h );
171 #include "IECore/MurmurHash.inl"
173 #endif // IECORE_MURMURHASH_H
size_t tbb_hasher(const boost::intrusive_ptr< T > &ptr)
Definition: RefCounted.h:176
std::ostream & operator<<(std::ostream &os, const Imath::Box< T > &obj)
Streaming for Imath::Box types.
Definition: MurmurHash.h:64
Definition: InternedString.h:55
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43