donut
donut copied to clipboard
quaternion<T>::rotationQuat(const vector<T, 3>& axis, T radians)
The implement as following
template<typename T>
quaternion<T> rotationQuat(const vector<T, 3>& axis, T radians)
{
// Note: assumes axis is normalized
T sinHalfTheta = std::sin(T(0.5) * radians);
T cosHalfTheta = std::cos(T(0.5) * radians);
return quaternion<T>(cosHalfTheta, axis * sinHalfTheta);
}
calling quaternion<T>::quaternion(T w, const vector<T, 3> &v) which does not exist obviously at all. so quaternion may need this constructor.