diff --git a/libs/geom/include/psemek/geom/simplex.hpp b/libs/geom/include/psemek/geom/simplex.hpp index 3ff6b1a9..bd6ff329 100644 --- a/libs/geom/include/psemek/geom/simplex.hpp +++ b/libs/geom/include/psemek/geom/simplex.hpp @@ -48,10 +48,13 @@ namespace psemek::geom { T const t = dot(p - s[0], s[1] - s[0]) / length_sqr(s[1] - s[0]); - if (t >= 0 && t <= 1) + if (t <= 0) + return distance(p, s[0]); + else if (t >= 1) + return distance(p, s[1]); + else return distance(p, lerp(s[0], s[1], t)); - return std::min(distance(p, s[0]), distance(p, s[1])); } }