diff options
author | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-01-13 03:51:33 +0100 |
---|---|---|
committer | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-01-13 03:51:34 +0100 |
commit | 6f67371bb1b46579ae837d0e0c61ac1b291be743 (patch) | |
tree | 5a43692a064d84e5c5688b1b3639342555139c3c /external/include/glm/gtx/hash.hpp | |
parent | Backported to C++14 (diff) | |
download | AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.tar AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.tar.gz AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.tar.bz2 AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.tar.lz AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.tar.xz AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.tar.zst AltCraft-6f67371bb1b46579ae837d0e0c61ac1b291be743.zip |
Diffstat (limited to 'external/include/glm/gtx/hash.hpp')
-rw-r--r-- | external/include/glm/gtx/hash.hpp | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/external/include/glm/gtx/hash.hpp b/external/include/glm/gtx/hash.hpp new file mode 100644 index 0000000..2262618 --- /dev/null +++ b/external/include/glm/gtx/hash.hpp @@ -0,0 +1,134 @@ +/// @ref gtx_hash +/// @file glm/gtx/hash.hpp +/// +/// @see core (dependence) +/// +/// @defgroup gtx_hash GLM_GTX_hash +/// @ingroup gtx +/// +/// @brief Add std::hash support for glm types +/// +/// <glm/gtx/hash.hpp> need to be included to use these functionalities. + +#pragma once + +#include <functional> + +#include "../vec2.hpp" +#include "../vec3.hpp" +#include "../vec4.hpp" +#include "../gtc/vec1.hpp" + +#include "../gtc/quaternion.hpp" +#include "../gtx/dual_quaternion.hpp" + +#include "../mat2x2.hpp" +#include "../mat2x3.hpp" +#include "../mat2x4.hpp" + +#include "../mat3x2.hpp" +#include "../mat3x3.hpp" +#include "../mat3x4.hpp" + +#include "../mat4x2.hpp" +#include "../mat4x3.hpp" +#include "../mat4x4.hpp" + +#if !GLM_HAS_CXX11_STL +# error "GLM_GTX_hash requires C++11 standard library support" +#endif + +namespace std +{ + template <typename T, glm::precision P> + struct hash<glm::tvec1<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tvec1<T, P> const & v) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tvec2<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tvec2<T, P> const & v) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tvec3<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tvec3<T, P> const & v) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tvec4<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tvec4<T, P> const & v) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tquat<T,P>> + { + GLM_FUNC_DECL size_t operator()(glm::tquat<T, P> const & q) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tdualquat<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tdualquat<T,P> const & q) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat2x2<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat2x2<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat2x3<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat2x3<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat2x4<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat2x4<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat3x2<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat3x2<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat3x3<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat3x3<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat3x4<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat3x4<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat4x2<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat4x2<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat4x3<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat4x3<T,P> const & m) const; + }; + + template <typename T, glm::precision P> + struct hash<glm::tmat4x4<T,P> > + { + GLM_FUNC_DECL size_t operator()(glm::tmat4x4<T,P> const & m) const; + }; +} // namespace std + +#include "hash.inl" |