/* * quaternion.cpp * * Created on: Jun 17, 2024 * Author: Dario */ #include #include namespace sta { namespace math { Quaternion::Quaternion(float w, float x, float y, float z) : x{x}, y{y}, z{z}, w{w} { } Quaternion::Quaternion() : x{0}, y{0}, z{0}, w{1} { } Quaternion Quaternion::unit() { return Quaternion(); } float Quaternion::norm() { return sqrtf(x*x + y*y + z*z + w*w); } Quaternion Quaternion::normalized() { float n = norm(); return Quaternion(w / n, x / n, y / n, z / n); } Quaternion Quaternion::operator+(const Quaternion& quat) { return Quaternion(x + quat.x, y + quat.y, z + quat.z, w + quat.w); } Quaternion Quaternion::operator*(float scalar) { return Quaternion(x * scalar, y * scalar, z * scalar, w * scalar); } } // namespace math } // namespace sta