/*---------------------------------------------------------------------*//**
	球面三次補間
**//*---------------------------------------------------------------------*/
void Quaternion::squad(Vector4F* ret, const Vector4F* q1, const Vector4F* q2, const Vector4F* a, const Vector4F* b, f32 t)
{
	Vector4F c, d;
	slerpNoInvert(&c, q1, q2, t);
	slerpNoInvert(&d, a, b, t);
	slerpNoInvert(ret, &c, &d, 2 * t * (1 - t));
}
CQuaternion CQuaternion::squad(const CQuaternion &q1, const CQuaternion &q2,
		const CQuaternion &a, const CQuaternion &b, float t)
{
	CQuaternion c = slerpNoInvert(q1, q2, t), d = slerpNoInvert(a, b, t);
	return slerpNoInvert(c, d, 2 * t * (1 - t));
}