From c7b44a692588e780edbea446e9bae65f2f2b1443 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sun, 29 Nov 2020 12:25:46 +0300 Subject: [PATCH] Add box::corner - N-d lerp inside a box --- libs/geom/include/psemek/geom/box.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/geom/include/psemek/geom/box.hpp b/libs/geom/include/psemek/geom/box.hpp index 410dd52a..faf6baed 100644 --- a/libs/geom/include/psemek/geom/box.hpp +++ b/libs/geom/include/psemek/geom/box.hpp @@ -65,6 +65,18 @@ namespace psemek::geom return p; } + template + point_type corner(Ts const & ... ts) const + { + static_assert(sizeof...(Ts) == N); + + T w[N] = {ts...}; + point_type res; + for (std::size_t i = 0; i < N; ++i) + res[i] = lerp(axes[i], w[i]); + return res; + } + box & operator += (vector_type const & delta); box & operator -= (vector_type const & delta);