Quaternions Quaternions::qFromAngleAxis(float theta, Vector4D axis) { Vector4D axisn = axis.normalize(); Quaternions q; float a = theta * (float)DEGREES_TO_RADIANS; q.t = cos(a / 2.0f); float s = sin(a / 2.0f); q.x = axisn.getX() * s; q.y = axisn.getY() * s; q.z = axisn.getZ() * s; qClean(q); return qNormalize(q); }
const Quaternion QuaternionManipulator::qFromAngleAxis(float theta, Vector axis) { Vector axisn = vNormalize(axis); Quaternion q; float a = theta * (float)DEGREES_TO_RADIANS; q.t = cos(a / 2.0f); float s = sin(a / 2.0f); q.x = axisn.x * s; q.y = axisn.y * s; q.z = axisn.z * s; qClean(q); return qNormalize(q); //return q; }