From 67ad584d480b35a8a0b052b1b3dd62b1db562396 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sun, 20 Sep 2020 19:43:41 +0300 Subject: [PATCH] Add interval::center & box::center --- libs/geom/include/psemek/geom/box.hpp | 8 ++++++++ libs/geom/include/psemek/geom/interval.hpp | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/libs/geom/include/psemek/geom/box.hpp b/libs/geom/include/psemek/geom/box.hpp index bc2d29d5..a4189023 100644 --- a/libs/geom/include/psemek/geom/box.hpp +++ b/libs/geom/include/psemek/geom/box.hpp @@ -49,6 +49,14 @@ namespace psemek::geom return result; } + point_type center() const + { + point_type p; + for (std::size_t i = 0; i < N; ++i) + p[i] = axes[i].center(); + return p; + } + box & operator += (vector_type const & delta); box & operator -= (vector_type const & delta); diff --git a/libs/geom/include/psemek/geom/interval.hpp b/libs/geom/include/psemek/geom/interval.hpp index a4cd4550..52468ae2 100644 --- a/libs/geom/include/psemek/geom/interval.hpp +++ b/libs/geom/include/psemek/geom/interval.hpp @@ -89,6 +89,11 @@ namespace psemek::geom return empty() ? T{} : max - min; } + T center() const + { + return min + (max - min) / 2; + } + using iterator = interval_iterator; using const_iterator = iterator;