// This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0.If a copy of the MPL was not distributed with this // file, You can obtain one at https ://mozilla.org/MPL/2.0/. #include "AngleAxis.h" template AngleAxis::AngleAxis() { this->angle = AngleOf(); this->axis = Direction(); } template AngleAxis::AngleAxis(AngleOf angle, Direction axis) { this->angle = angle; this->axis = axis; } template AngleAxis::AngleAxis(float angle, Vector3 axis) { this->angle = AngleOf(angle); 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(); float angleFloat = this->angle.ToFloat(); Quaternion q = Quaternion::AngleAxis(angleFloat, axisVector); return q; } template Direction AngleAxis::GetSwing() { return this->axis; } template class AngleAxis; template class AngleAxis;