Fixed tangent generation and added Vector4 type.

This commit is contained in:
2023-12-15 02:20:50 +01:00
parent b692425f83
commit 8ce77cf8bf
3 changed files with 50 additions and 9 deletions

View File

@@ -7,6 +7,7 @@
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
#include "./geometry_traits.hpp"
namespace mijin
@@ -32,6 +33,20 @@ struct Vector3Traits<glm::vec3>
constexpr void setZ(glm::vec3& vector, float value) const noexcept { vector.z = value; }
};
static_assert(Vector3<glm::vec3>, "Vector3Adapter not working.");
template<>
struct Vector4Traits<glm::vec4>
{
constexpr float getX(const glm::vec4& vector) const noexcept { return vector.x; }
constexpr float getY(const glm::vec4& vector) const noexcept { return vector.y; }
constexpr float getZ(const glm::vec4& vector) const noexcept { return vector.z; }
constexpr float getW(const glm::vec4& vector) const noexcept { return vector.w; }
constexpr void setX(glm::vec4& vector, float value) const noexcept { vector.x = value; }
constexpr void setY(glm::vec4& vector, float value) const noexcept { vector.y = value; }
constexpr void setZ(glm::vec4& vector, float value) const noexcept { vector.z = value; }
constexpr void setW(glm::vec4& vector, float value) const noexcept { vector.w = value; }
};
static_assert(Vector4<glm::vec4>, "Vector4Adapter not working.");
}
#endif // MIJIN_GEO_GLM_ADAPTER_HPP_INCLUDED