Przeliczanie położenia program


void_fastcall TGLGraf::MoveLight(int xPos, int yPos)
{

int nrLight = NrLightMove-1;
if(HitsMove== 1 || HitsMove == 2)
{
if(nrLight >= 0 && nrLight <=6)
{
if(clickMouseMOve)
{

float x = tabPropertiesLight[nrLight].GetPosLight(0);
float y = tabPropertiesLight[nrLight].GetPosLight(1);
float z = tabPropertiesLight[nrLight].GetPosLight(2);
GLdouble pos3D_x, pos3D_y, pos3D_z ;
GLdouble winX, winY, winZ;
GLdouble model_view[16];

glGetDoublev(GL_MODELVIEW_MATRIX, model_view);

GLdouble projection[16];
glGetDoublev(GL_PROJECTION_MATRIX, projection);

GLint wiewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);

// szerokość i wysokość obszaru renderingu
int width = viewport[2] ;
int heiht = viewport[3] ;


gluProject(x, y, z, model_view, projection, viewport,
&winX, &winY, &winZ);

winX=xPos;
winY= (float)viewport[3] - (float)yPos;

gluUnProject(winX, winY, winZ, model_view, projection,
viewport, &pos3D_x, &pos3d_y, &pos3D_z);

tabPropertiesLight[nrLight].SetPosLight(o,(float)pos3D_x);

tabPropertiesLight[nrLight].SetPosLight(1, (float)pos3D_y);

tabPropertiesLight[nrLight].SetPosLight(2, (float)pos3D_z);

SetPositionLight((float)pos3D_x, (float)pos3D_y,(float)pos3D_z);
}
}
else
clickMouseMove = false ;
}
else
clickMouseMove = false ;
}

Wyszukiwarka

Podobne podstrony:
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Międzynarodowy Program Badań nad Zachowaniami Samobójczymi
CSharp Introduction to C# Programming for the Microsoft NET Platform (Prerelease)
Instrukcja Programowania Zelio Logic 2 wersja polska
Program wykładu Fizyka II 14 15
roprm ćwiczenie 6 PROGRAMOWANIE ROBOTA Z UWZGLĘDNIENIEM ANALIZY OBRAZU ARLANG
io port programming 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46a 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46a
2009 12 Metaprogramowanie algorytmy wykonywane w czasie kompilacji [Programowanie C C ]
Podstawy Programowania Wersja Rozszerzona
koło Programy Goofy
PROGRAMY
Przyczynek do analizy polozenia
programator do Amigi

więcej podobnych podstron