Esempio n. 1
0
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;
}