diff --git a/libs/geom/include/psemek/geom/vector.hpp b/libs/geom/include/psemek/geom/vector.hpp index aaf0b282..c86e33b0 100644 --- a/libs/geom/include/psemek/geom/vector.hpp +++ b/libs/geom/include/psemek/geom/vector.hpp @@ -320,6 +320,14 @@ namespace psemek::geom return std::acos(std::max(T{-1}, std::min(T{1}, dot(v0, v1)))); } + template + vector rotate(vector const & v, T angle) + { + auto const c = std::cos(angle); + auto const s = std::sin(angle); + return {v[0] * c - v[1] * s, v[0] * s + v[1] * c}; + } + template vector pointwise_mult(vector const & v0, vector const & v1) {