|
|
|
@ -2363,13 +2363,13 @@ RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) |
|
|
|
{ |
|
|
|
Quaternion result = { 0 }; |
|
|
|
|
|
|
|
float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) |
|
|
|
float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) |
|
|
|
Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) |
|
|
|
|
|
|
|
result.x = cross.x; |
|
|
|
result.y = cross.y; |
|
|
|
result.z = cross.z; |
|
|
|
result.w = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z + cos2Theta*cos2Theta) + cos2Theta; // sqrtf(Vector3DotProduct(cross, cross) + cos2Theta * cos2Theta) + cos2Theta |
|
|
|
result.w = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z + cos2Theta*cos2Theta) + cos2Theta; |
|
|
|
|
|
|
|
// QuaternionNormalize(q); |
|
|
|
// NOTE: Normalize to essentially nlerp the original and identity to 0.5 |
|
|
|
|