diff options
-rw-r--r-- | vector/vector.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/vector/vector.cpp b/vector/vector.cpp index d5f0c36..8057cdd 100644 --- a/vector/vector.cpp +++ b/vector/vector.cpp @@ -1,10 +1,11 @@ #include <iostream> -#include <iterator> #include <cassert> +#include <cmath> + #include <array> -#include <initializer_list> #include <algorithm> +#include <initializer_list> template<typename T, std::size_t d> @@ -146,11 +147,16 @@ public: template<std::size_t n> vec2(const basic_vec<T, n>& other) : basic_vec<T, 2>(other) {} - T angle(); + T polar(); static vec3<T> cross(const vec2<T>& rhs, const vec2<T>& lhs); }; template<typename T> +T vec2<T>::polar() { + return std::atan2(this->at(0), this->at(1)); +} + +template<typename T> vec3<T> vec2<T>::cross(const vec2<T>& rhs, const vec2<T>& lhs) { return vec3<T>::cross(vec3<T>(rhs), vec3<T>(lhs)); } |