#pragma once #include "Utils/Hash.hpp" #include "Utils/Vector.hpp" #include #include template struct std::hash> { size_t operator()(const Vec2& vec) const { size_t result; HashUtils::Combine(result, vec.x); HashUtils::Combine(result, vec.y); return result; } }; template struct std::hash> { size_t operator()(const Vec3& vec) const { size_t result; HashUtils::Combine(result, vec.x); HashUtils::Combine(result, vec.y); HashUtils::Combine(result, vec.z); return result; } }; template struct std::hash> { size_t operator()(const Vec4& vec) const { size_t result; HashUtils::Combine(result, vec.x); HashUtils::Combine(result, vec.y); HashUtils::Combine(result, vec.z); HashUtils::Combine(result, vec.w); return result; } };