forked from Mirrorlandia_minetest/irrlicht
Add hash for vector2d and vector3d (#93)
This commit is contained in:
parent
372b3642bf
commit
6928c7eb6f
@ -8,6 +8,8 @@
|
|||||||
#include "irrMath.h"
|
#include "irrMath.h"
|
||||||
#include "dimension2d.h"
|
#include "dimension2d.h"
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
namespace irr
|
namespace irr
|
||||||
{
|
{
|
||||||
namespace core
|
namespace core
|
||||||
@ -414,5 +416,21 @@ public:
|
|||||||
} // end namespace core
|
} // end namespace core
|
||||||
} // end namespace irr
|
} // end namespace irr
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct hash<irr::core::vector2d<T> >
|
||||||
|
{
|
||||||
|
size_t operator()(const irr::core::vector2d<T>& vec) const
|
||||||
|
{
|
||||||
|
size_t h1 = hash<T>()(vec.X);
|
||||||
|
size_t h2 = hash<T>()(vec.Y);
|
||||||
|
return (h1 << (4 * sizeof(h1)) | h1 >> (4 * sizeof(h1))) ^ h2;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include "irrMath.h"
|
#include "irrMath.h"
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
namespace irr
|
namespace irr
|
||||||
{
|
{
|
||||||
namespace core
|
namespace core
|
||||||
@ -466,5 +468,22 @@ namespace core
|
|||||||
} // end namespace core
|
} // end namespace core
|
||||||
} // end namespace irr
|
} // end namespace irr
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct hash<irr::core::vector3d<T> >
|
||||||
|
{
|
||||||
|
size_t operator()(const irr::core::vector3d<T>& vec) const
|
||||||
|
{
|
||||||
|
size_t h1 = hash<T>()(vec.X);
|
||||||
|
size_t h2 = hash<T>()(vec.Y);
|
||||||
|
size_t h3 = hash<T>()(vec.Z);
|
||||||
|
return (h1 << (5 * sizeof(h1)) | h1 >> (3 * sizeof(h1))) ^ (h2 << (2 * sizeof(h2)) | h2 >> (6 * sizeof(h2))) ^ h3;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user