29 lines
780 B
C++
29 lines
780 B
C++
#pragma once
|
|
|
|
#include <J3ML/LinearAlgebra/EulerAngle.hpp>
|
|
#include <J3ML/LinearAlgebra/Quaternion.hpp>
|
|
#include <J3ML/LinearAlgebra/AxisAngle.hpp>
|
|
#include <J3ML/LinearAlgebra/Vector3.hpp>
|
|
|
|
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();
|
|
explicit AxisAngle(const Quaternion& q);
|
|
explicit AxisAngle(const EulerAngle& e);
|
|
|
|
AxisAngle(const Vector3 &axis, float angle);
|
|
|
|
EulerAngle ToEulerAngleXYZ() const;
|
|
|
|
Quaternion ToQuaternion() const;
|
|
static AxisAngle FromEulerAngleXYZ(const EulerAngle&);
|
|
};
|
|
} |