sta-peak/include/sta/math/quaternion.hpp

45 lines
1.0 KiB
C++

/*
* quaternion.hpp
*
* Created on: Jun 17, 2024
* Author: Dario
*/
#ifndef STA_PEAK_QUATERNION_HPP
#define STA_PEAK_QUATERNION_HPP
namespace sta
{
namespace math {
class Quaternion
{
public:
Quaternion(float w, float x, float y, float z);
Quaternion();
Quaternion integrate(float dt, float ox, float oy, float oz);
static Quaternion unit();
float norm();
Quaternion normalized();
Quaternion operator*(const Quaternion& quat);
Quaternion operator+(const Quaternion& quat);
public:
float x, y, z, w;
};
Quaternion operator+(const Quaternion& q1, const Quaternion& q2);
Quaternion operator*(const Quaternion& q1, const Quaternion& q2);
Quaternion operator*(const Quaternion& quat, float scalar);
Quaternion operator*(float scalar, const Quaternion& quat);
Quaternion operator*(const Quaternion& quat, double scalar);
Quaternion operator*(double scalar, const Quaternion& quat);
} // namespace math
} // namespace sta
#endif /* STA_PEAK_QUATERNION_HPP */