Не пойму как, вроде бы сделал, но как - то криво все это работает , если выбрать 1 объект, то старый остается на своем месте, тут все ок, а мой первый поворачивается, но ... , почему - то картинка под ним не обновляется , т.е. старый вариант ее остается, если потом выбираю все объекты, то у них сбиваются координаты все ... в чем дело ?
void Display()
{
if(current_object==-1)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
for(int i=0;i<=object;i++)
{
glPushMatrix();
glTranslatef(tx, ty, tz);
glRotatef(rx, 1, 0, 0);
glRotatef(ry, 0, 0, 1);
glScaled(Scale, Scale, Scale);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glColor3f(0.0f, 1.0f, 0.0f);
glBindTexture(GL_TEXTURE_2D, num_texture);
glBegin(GL_TRIANGLES);
for (int j = 0; j < Obj[i].nTriangles; j++)
{
glVertex3fv(&Obj[i].Vertexs[Obj[i].Triangles[j].v0].r0);
glVertex3fv(&Obj[i].Vertexs[Obj[i].Triangles[j].v1].r0);
glVertex3fv(&Obj[i].Vertexs[Obj[i].Triangles[j].v2].r0);
}
glEnd();
glPopMatrix();
}
glutSwapBuffers();
}
else
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(tx, ty, tz);
glRotatef(rx, 1, 0, 0);
glRotatef(ry, 0, 0, 1);
glScaled(Scale, Scale, Scale);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glColor3f(0.0f, 1.0f, 0.0f);
glBindTexture(GL_TEXTURE_2D, num_texture);
glBegin(GL_TRIANGLES);
for (int j = 0; j < Obj[current_object].nTriangles; j++)
{
glVertex3fv(&Obj[current_object].Vertexs[Obj[current_object].Triangles[j].v0].r0);
glVertex3fv(&Obj[current_object].Vertexs[Obj[current_object].Triangles[j].v1].r0);
glVertex3fv(&Obj[current_object].Vertexs[Obj[current_object].Triangles[j].v2].r0);
}
glEnd();
glutSwapBuffers();
}
}