diff options
Diffstat (limited to 'lib/ray.cpp')
-rw-r--r-- | lib/ray.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/ray.cpp b/lib/ray.cpp index 1e30ae4..acbb807 100644 --- a/lib/ray.cpp +++ b/lib/ray.cpp @@ -1,4 +1,5 @@ #include "ray.hpp" +#include <algorithm> float Ray::distanceToLine(const glm::vec3 & p1, const glm::vec3 & e1) const @@ -16,3 +17,13 @@ Ray::distanceToLine(const glm::vec3 & p1, const glm::vec3 & e1) const } return glm::abs(glm::dot(n, p1 - p2)); } + +bool +Ray::passesCloseToEdges(const std::span<const glm::vec3> positions, float distance) const +{ + return std::adjacent_find(positions.begin(), positions.end(), + [this, distance](const glm::vec3 & a, const glm::vec3 & b) { + return distanceToLine(a, b) <= distance; + }) + != positions.end(); +} |