From 4f0b804656b9698e4dfd8d72adca406ff96c4ee6 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 15 Jan 2021 17:58:54 +0300 Subject: [PATCH] Add scalar-interval distance function --- libs/geom/include/psemek/geom/distance.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/geom/include/psemek/geom/distance.hpp b/libs/geom/include/psemek/geom/distance.hpp index d283aa21..eb33f94e 100644 --- a/libs/geom/include/psemek/geom/distance.hpp +++ b/libs/geom/include/psemek/geom/distance.hpp @@ -9,6 +9,14 @@ namespace psemek::geom { + template + T distance(T const & x, interval const & i) + { + if (i.min <= x && x <= i.max) + return T{0}; + return std::min(std::abs(x - i.min), std::abs(x - i.max)); + } + template T distance(point const & p, box const & b) {