X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgeometry%2Fprimitive.hpp;h=52a3617835245382b6e2014091116cc881fc3c87;hb=3185bad87c06739e4ec19b456c7158437ba9621f;hp=b9f2187580f5b64e692451553a352c72006e7e42;hpb=242b87a5fb412f9006e4b7debc1408cf7ac83000;p=blank.git diff --git a/src/geometry/primitive.hpp b/src/geometry/primitive.hpp index b9f2187..52a3617 100644 --- a/src/geometry/primitive.hpp +++ b/src/geometry/primitive.hpp @@ -1,9 +1,10 @@ #ifndef BLANK_GEOMETRY_PRIMITIVE_HPP_ #define BLANK_GEOMETRY_PRIMITIVE_HPP_ +#include "../graphics/glm.hpp" + #include #include -#include #include @@ -25,8 +26,8 @@ struct AABB { /// return distance between origin and farthest vertex float OriginRadius() const noexcept { - glm::vec3 high(glm::max(abs(min), abs(max))); - return length(high); + glm::vec3 high(glm::max(glm::abs(min), glm::abs(max))); + return glm::length(high); } }; @@ -51,10 +52,10 @@ struct Ray { // for derivation, see http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html // x1 = orig // x2-x1 = dir, which means |x2-x1| is 1.0 - return length(cross(dir, orig - point)); + return glm::length(glm::cross(dir, orig - point)); } float DistanceSquared(const glm::vec3 &point) const noexcept { - return length2(cross(dir, orig - point)); + return glm::length2(glm::cross(dir, orig - point)); } }; @@ -101,11 +102,11 @@ struct Plane { Plane(const glm::vec3 &n, float d) : normal(n), dist(d) { } - Plane(const glm::vec4 &abcd) + explicit Plane(const glm::vec4 &abcd) : normal(abcd), dist(abcd.w) { } void Normalize() noexcept { - const float l = length(normal); + const float l = glm::length(normal); normal /= l; dist /= l; } @@ -129,14 +130,14 @@ struct Frustum { const Plane &Far() const noexcept { return plane[5]; } /// create frustum from transposed MVP - Frustum(const glm::mat4 &mat) + explicit Frustum(const glm::mat4 &mat) : plane{ - { mat[3] + mat[0] }, - { mat[3] - mat[0] }, - { mat[3] + mat[1] }, - { mat[3] - mat[1] }, - { mat[3] + mat[2] }, - { mat[3] - mat[2] }, + Plane{ mat[3] + mat[0] }, + Plane{ mat[3] - mat[0] }, + Plane{ mat[3] + mat[1] }, + Plane{ mat[3] - mat[1] }, + Plane{ mat[3] + mat[2] }, + Plane{ mat[3] - mat[2] }, } { } void Normalize() noexcept {