diff --git a/libs/geom/include/psemek/geom/quaternion.hpp b/libs/geom/include/psemek/geom/quaternion.hpp index ade080aa..c5199419 100644 --- a/libs/geom/include/psemek/geom/quaternion.hpp +++ b/libs/geom/include/psemek/geom/quaternion.hpp @@ -17,6 +17,9 @@ namespace psemek::geom static quaternion zero(); static quaternion identity(); + static quaternion i(); + static quaternion j(); + static quaternion k(); static quaternion scalar(T value); static quaternion vector(geom::vector const & v); static quaternion rotation(T angle, geom::vector const & axis); @@ -48,6 +51,24 @@ namespace psemek::geom return quaternion{{T(0), T(0), T(0), T(1)}}; } + template + quaternion quaternion::i() + { + return quaternion{{T(1), T(0), T(0), T(0)}}; + } + + template + quaternion quaternion::j() + { + return quaternion{{T(0), T(1), T(0), T(0)}}; + } + + template + quaternion quaternion::k() + { + return quaternion{{T(0), T(0), T(1), T(0)}}; + } + template quaternion quaternion::scalar(T value) {