From 3472bf056bc98e0a3a0b6e5707dd6365322c463e Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sun, 4 Oct 2020 11:15:23 +0300 Subject: [PATCH] Add geom::cast for intervals and boxes --- libs/geom/include/psemek/geom/box.hpp | 9 +++++++++ libs/geom/include/psemek/geom/interval.hpp | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/libs/geom/include/psemek/geom/box.hpp b/libs/geom/include/psemek/geom/box.hpp index a4189023..e467f444 100644 --- a/libs/geom/include/psemek/geom/box.hpp +++ b/libs/geom/include/psemek/geom/box.hpp @@ -67,6 +67,15 @@ namespace psemek::geom box & operator |= (box const & b); }; + template + box cast(box const & b) + { + box result; + for (std::size_t i = 0; i < N; ++i) + result[i] = cast(b[i]); + return result; + } + template box operator + (box const & b, vector const & delta) { diff --git a/libs/geom/include/psemek/geom/interval.hpp b/libs/geom/include/psemek/geom/interval.hpp index 13dba04a..adf11a98 100644 --- a/libs/geom/include/psemek/geom/interval.hpp +++ b/libs/geom/include/psemek/geom/interval.hpp @@ -115,6 +115,12 @@ namespace psemek::geom interval & operator |= (interval const & i); }; + template + interval cast(interval const & i) + { + return {static_cast(i.min), static_cast(i.max)}; + } + template interval operator + (interval const & i, T const & delta) {