diff --git a/AngleAxis.cpp b/AngleAxis.cpp index 49379ef..2ed8321 100644 --- a/AngleAxis.cpp +++ b/AngleAxis.cpp @@ -22,6 +22,15 @@ AngleAxis::AngleAxis(float angle, Vector3 axis) { this->axis = Direction(axis); } +template +AngleAxis::AngleAxis(Quaternion q) { + float angle; + Vector3 axis; + q.ToAngleAxis(&angle, &axis); + this->angle = AngleOf(angle); + this->axis = Direction(axis); +} + template Quaternion AngleAxis::ToQuaternion() { Vector3 axisVector = this->axis.ToVector3(); diff --git a/AngleAxis.h b/AngleAxis.h index 14e2f3d..fbd0ec2 100644 --- a/AngleAxis.h +++ b/AngleAxis.h @@ -20,6 +20,7 @@ class AngleAxis { AngleAxis(); AngleAxis(AngleOf angle, Direction axis); + AngleAxis(Quaternion q); AngleAxis(float angle, Vector3 axis); Quaternion ToQuaternion();