X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2Fshape.cpp;h=df98f93db827e97d1b6a41a20da902687ccc46cb;hb=282d731ea8f10342efa82012028de7043b3dd639;hp=1c831498e6e36a16cd6d1710c806405f7ca6c076;hpb=b7d09e1e35ef90282c97509e0020b20db3c7ea9f;p=blank.git diff --git a/src/model/shape.cpp b/src/model/shape.cpp index 1c83149..df98f93 100644 --- a/src/model/shape.cpp +++ b/src/model/shape.cpp @@ -80,6 +80,16 @@ bool NullShape::Intersects( return false; } +bool NullShape::Intersects( + const glm::mat4 &, + const AABB &, + const glm::mat4 &, + float &, + glm::vec3 & +) const noexcept { + return false; +} + CuboidShape::CuboidShape(const AABB &b) : Shape() @@ -167,6 +177,16 @@ bool CuboidShape::Intersects( return Intersection(ray, bb, M, &dist, &normal); } +bool CuboidShape::Intersects( + const glm::mat4 &M, + const AABB &box, + const glm::mat4 &box_M, + float &depth, + glm::vec3 &normal +) const noexcept { + return Intersection(bb, M, box, box_M, depth, normal); +} + StairShape::StairShape(const AABB &bb, const glm::vec2 &clip) : Shape() @@ -326,4 +346,15 @@ bool StairShape::Intersects( } } +bool StairShape::Intersects( + const glm::mat4 &M, + const AABB &box, + const glm::mat4 &box_M, + float &depth, + glm::vec3 &normal +) const noexcept { + // TODO: this is wrong, but simple. so for now will have to do + return Intersection(bot, M, box, box_M, depth, normal) || Intersection(top, M, box, box_M, depth, normal); +} + }