X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgeometry.hpp;fp=src%2Fgeometry.hpp;h=e8ead98de83bc75b1b32481cca16673371c966b3;hb=4d0ef1687987a0801469c7262f81efd36636605a;hp=0000000000000000000000000000000000000000;hpb=ac8765b510707d77cac9620778f40ddf3a4ad2a2;p=blank.git diff --git a/src/geometry.hpp b/src/geometry.hpp new file mode 100644 index 0000000..e8ead98 --- /dev/null +++ b/src/geometry.hpp @@ -0,0 +1,30 @@ +#ifndef BLANK_GEOMETRY_H_ +#define BLANK_GEOMETRY_H_ + +#include +#include + + +namespace blank { + +struct AABB { + glm::vec3 min; + glm::vec3 max; + + void Adjust() { + if (max.x < min.x) std::swap(max.x, min.x); + if (max.y < min.y) std::swap(max.y, min.y); + if (max.z < min.z) std::swap(max.z, min.z); + } +}; + +struct Ray { + glm::vec3 orig; + glm::vec3 dir; +}; + +bool Intersection(const Ray &, const AABB &, const glm::mat4 &M, float *dist = nullptr); + +} + +#endif