acos
This commit is contained in:
parent
daf1fdf403
commit
81de0e0cbd
@ -679,7 +679,7 @@ CFileLoader::LoadMLOInstance(int id, const char *line)
|
|||||||
&scale.x, &scale.y, &scale.z,
|
&scale.x, &scale.y, &scale.z,
|
||||||
&rot.x, &rot.y, &rot.z,
|
&rot.x, &rot.y, &rot.z,
|
||||||
&angle);
|
&angle);
|
||||||
float rad = 2.0f * (PI / 2.0f - Atan2(angle, Sqrt(1.0f - SQR(angle))));
|
float rad = Acos(angle) * 2.0f;
|
||||||
CInstance *inst = CModelInfo::GetMloInstanceStore().alloc();
|
CInstance *inst = CModelInfo::GetMloInstanceStore().alloc();
|
||||||
minfo->lastInstance++;
|
minfo->lastInstance++;
|
||||||
|
|
||||||
|
@ -344,11 +344,11 @@ void
|
|||||||
CPedIK::ExtractYawAndPitchWorld(RwMatrixTag *mat, float *yaw, float *pitch)
|
CPedIK::ExtractYawAndPitchWorld(RwMatrixTag *mat, float *yaw, float *pitch)
|
||||||
{
|
{
|
||||||
float f = clamp(DotProduct(mat->up, CVector(0.0f, 1.0f, 0.0f)), -1.0f, 1.0f);
|
float f = clamp(DotProduct(mat->up, CVector(0.0f, 1.0f, 0.0f)), -1.0f, 1.0f);
|
||||||
*yaw = HALFPI - Atan2(f, Sqrt(1.0f - f * f));
|
*yaw = Acos(f);
|
||||||
if (mat->up.x > 0.0f) *yaw = -*yaw;
|
if (mat->up.x > 0.0f) *yaw = -*yaw;
|
||||||
|
|
||||||
f = clamp(DotProduct(mat->right, CVector(0.0f, 0.0f, 1.0f)), -1.0f, 1.0f);
|
f = clamp(DotProduct(mat->right, CVector(0.0f, 0.0f, 1.0f)), -1.0f, 1.0f);
|
||||||
*pitch = HALFPI - Atan2(f, Sqrt(1.0f - f * f));
|
*pitch = Acos(f);
|
||||||
if (mat->up.z > 0.0f) *pitch = -*pitch;
|
if (mat->up.z > 0.0f) *pitch = -*pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -356,11 +356,11 @@ void
|
|||||||
CPedIK::ExtractYawAndPitchLocal(RwMatrixTag *mat, float *yaw, float *pitch)
|
CPedIK::ExtractYawAndPitchLocal(RwMatrixTag *mat, float *yaw, float *pitch)
|
||||||
{
|
{
|
||||||
float f = clamp(DotProduct(mat->at, CVector(0.0f, 0.0f, 1.0f)), -1.0f, 1.0f);
|
float f = clamp(DotProduct(mat->at, CVector(0.0f, 0.0f, 1.0f)), -1.0f, 1.0f);
|
||||||
*yaw = HALFPI - Atan2(f, Sqrt(1.0f - f * f));
|
*yaw = Acos(f);
|
||||||
if (mat->at.y > 0.0f) *yaw = -*yaw;
|
if (mat->at.y > 0.0f) *yaw = -*yaw;
|
||||||
|
|
||||||
f = clamp(DotProduct(mat->right, CVector(1.0f, 0.0f, 0.0f)), -1.0f, 1.0f);
|
f = clamp(DotProduct(mat->right, CVector(1.0f, 0.0f, 0.0f)), -1.0f, 1.0f);
|
||||||
*pitch = HALFPI - Atan2(f, Sqrt(1.0f - f * f));
|
*pitch = Acos(f);
|
||||||
if (mat->up.x > 0.0f) *pitch = -*pitch;
|
if (mat->up.x > 0.0f) *pitch = -*pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user