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;