JD2022-TU1/main/extern/Camcam/LIBS/Trackeur/SpaceConv.cpp

49 lines
870 B
C++

#include "TRACK.H"
#define FOCALE 2.5f
#define ROTATION_FREEDOM 3
float POSIT3D_Ratio = 1.0f;//1.08f;
float POSIT3D_foc = FOCALE;
float Oofoc = 1.0f/POSIT3D_foc;
void SetCurrentFocale(float NewFoc)
{
if (NewFoc == 0.0f) NewFoc = 2.5f;
POSIT3D_foc = NewFoc;
Oofoc = 1.0f/POSIT3D_foc;
}
float GetCurrentFocale()
{
return POSIT3D_foc;
}
//#pragma optimize("",off)
Vector Project(Vector &V)
{
Vector Ret;
float Ooz;
Ooz = 1.0f / V.z;
Ret.x = POSIT3D_foc * V.x * Ooz;
Ret.y = POSIT3D_foc * V.y * Ooz;
Ret.z = Ooz;
//Ret = V;
return Ret;
}
Vector Project_2_Screen(Vector &V,MAP *RefMap)
{
Vector Ret;
float Ooz;
if (V.z > 0.001f)
{
Ooz = 1.0f / V.z;
Ret.x = 0.5f*(POSIT3D_foc * V.x * Ooz * RefMap->SX + RefMap->SX);
Ret.y = 0.5f*(POSIT3D_foc * V.y * Ooz * RefMap->SX + RefMap->SY);
Ret.z = Ooz;
} else Ret.z = -1.0f;
//Ret = V;
return Ret;
}