#pragma once #include #include #include #include namespace J3ML::LinearAlgebra { /// Transitional datatype, not useful for internal representation of rotation /// But has uses for conversion and manipulation. class AxisAngle { public: Vector3 axis; float angle; public: AxisAngle(); AxisAngle(const Vector3 &axis, float angle); EulerAngle ToEulerAngleXYZ() const; Quaternion ToQuaternion() const; static AxisAngle FromEulerAngleXYZ(const EulerAngle&); }; }