Vector3f.h
static Vector3f Slerp(Vector3f v1, Vector3f v2, float alpha)
	{
		float dot = Dot(v1, v2);
		float theta = acos(dot) * alpha;

		Vector3f relativeVec = v2 - v1 * dot;
		relativeVec.Normalize();

		float cosTheta = cos(theta);
		float sinTheta = sin(theta);

		return ((v1 * cosTheta) + (relativeVec * sinTheta));
	}
//spherically interpolate between v1 and v2
spherically interpolate between v1 and v2
spherically interpolate between v1 and v2
static Vector3f Slerp(Vector3f v1, Vector3f v2, float alpha)
	{
		float dot = Dot(v1, v2);
		float theta = acos(dot) * alpha;
		Vector3f relativeVec = v2 - v1 * dot;
		relativeVec.Normalize();
		float cosTheta = cos(theta);
		float sinTheta = sin(theta);
		return ((v1 * cosTheta) + (relativeVec * sinTheta));
	}
static Vector3f Slerp ( Vector3f v1 , Vector3f v2 , float alpha ) { float dot = Dot ( v1 , v2 ) ; float theta = acos ( dot ) * alpha ; Vector3f relativeVec = v2 - v1 * dot ; relativeVec . Normalize ( ) ; float cosTheta = cos ( theta ) ; float sinTheta = sin ( theta ) ; return ( ( v1 * cosTheta ) + ( relativeVec * sinTheta ) ) ; }
spherically interpolate between v1 and v2
spherically interpolate between v1 and v2