#pragma once #if !defined(MIJIN_GEO_GLM_ADAPTER_HPP_INCLUDED) #define MIJIN_GEO_GLM_ADAPTER_HPP_INCLUDED 1 #include #include #include "./geometry_traits.hpp" namespace mijin { template<> struct Vector2Traits { constexpr float getX(const glm::vec2& vector) const noexcept { return vector.x; } constexpr float getY(const glm::vec2& vector) const noexcept { return vector.y; } constexpr void setX(glm::vec2& vector, float value) const noexcept { vector.x = value; } constexpr void setY(glm::vec2& vector, float value) const noexcept { vector.y = value; } }; static_assert(Vector2, "Vector2Adapter not working."); template<> struct Vector3Traits { constexpr float getX(const glm::vec3& vector) const noexcept { return vector.x; } constexpr float getY(const glm::vec3& vector) const noexcept { return vector.y; } constexpr float getZ(const glm::vec3& vector) const noexcept { return vector.z; } constexpr void setX(glm::vec3& vector, float value) const noexcept { vector.x = value; } constexpr void setY(glm::vec3& vector, float value) const noexcept { vector.y = value; } constexpr void setZ(glm::vec3& vector, float value) const noexcept { vector.z = value; } }; static_assert(Vector3, "Vector3Adapter not working."); } #endif // MIJIN_GEO_GLM_ADAPTER_HPP_INCLUDED