mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2024-12-27 23:25:41 +03:00
QuaternionSlerp: Fix GCC issue & minor refactoring (Reversing thing mistake)
This commit is contained in:
parent
411a02843e
commit
da591f8cb3
@ -615,22 +615,22 @@ void QuaternionSlerp(vec_t *p, vec_t *q, float t, vec_t *qt)
|
|||||||
float sclp, sclq;
|
float sclp, sclq;
|
||||||
float cosom = (p[0] * q[0] + p[1] * q[1] + p[2] * q[2] + p[3] * q[3]);
|
float cosom = (p[0] * q[0] + p[1] * q[1] + p[2] * q[2] + p[3] * q[3]);
|
||||||
|
|
||||||
if ((1.0 + cosom) > 0.00000001)
|
if ((1.0f + cosom) > 0.000001f)
|
||||||
{
|
{
|
||||||
if ((1.0 - cosom) > 0.00000001)
|
if ((1.0f - cosom) > 0.000001f)
|
||||||
{
|
{
|
||||||
real_t cosomega = Q_acos(real_t(cosom));
|
real_t cosomega = Q_acos(real_t(cosom));
|
||||||
|
|
||||||
float omega = cosomega;
|
float omega = cosomega;
|
||||||
float sinom = Q_sin(cosomega);
|
float sinom = Q_sin(cosomega);
|
||||||
|
|
||||||
sclp = Q_sin((1.0 - t) * omega) / sinom;
|
sclp = Q_sin((1.0f - t) * omega) / sinom;
|
||||||
sclq = Q_sin(real_t(omega * t)) / sinom;
|
sclq = Q_sin(real_t(omega * t)) / sinom;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sclq = t;
|
sclq = t;
|
||||||
sclp = 1.0 - t;
|
sclp = 1.0f - t;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
@ -643,8 +643,8 @@ void QuaternionSlerp(vec_t *p, vec_t *q, float t, vec_t *qt)
|
|||||||
qt[2] = -q[3];
|
qt[2] = -q[3];
|
||||||
qt[3] = q[2];
|
qt[3] = q[2];
|
||||||
|
|
||||||
sclp = Q_sin((1.0 - t) * 0.5 * M_PI);
|
sclp = Q_sin((1.0f - t) * (0.5f * M_PI));
|
||||||
sclq = Q_sin(t * 0.5 * M_PI);
|
sclq = Q_sin(t * (0.5f * M_PI));
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
qt[i] = sclp * p[i] + sclq * qt[i];
|
qt[i] = sclp * p[i] + sclq * qt[i];
|
||||||
|
Loading…
Reference in New Issue
Block a user