#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; }