]> git.localhorst.tv Git - blank.git/blob - src/model/bounds.hpp
store shapes in models rather than meshes
[blank.git] / src / model / bounds.hpp
1 #ifndef BLANK_MODEL_BOUNDS_HPP_
2 #define BLANK_MODEL_BOUNDS_HPP_
3
4 #include "CollisionBounds.hpp"
5 #include "geometry.hpp"
6
7 #include <vector>
8 #include <glm/glm.hpp>
9
10
11 namespace blank {
12
13 class CuboidBounds
14 : public CollisionBounds {
15
16 public:
17         CuboidBounds(const AABB &bounds);
18
19         bool Intersects(const Ray &, const glm::mat4 &, float &, glm::vec3 &) const noexcept override;
20         bool Intersects(const glm::mat4 &, const AABB &, const glm::mat4 &, float &, glm::vec3 &) const noexcept override;
21
22 private:
23         AABB bb;
24
25 };
26
27
28 class StairBounds
29 : public CollisionBounds {
30
31 public:
32         StairBounds(const AABB &bounds, const glm::vec2 &clip);
33
34         bool Intersects(const Ray &, const glm::mat4 &, float &, glm::vec3 &) const noexcept override;
35         bool Intersects(const glm::mat4 &, const AABB &, const glm::mat4 &, float &, glm::vec3 &) const noexcept override;
36
37 private:
38         AABB top, bot;
39
40 };
41
42 }
43
44 #endif