Advertisement
SwordPencil

trex.cpp

Nov 26th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. #include "trexmovementanimation.h" //Фаил со всеми именам
  2. //В этом фаиле реализованны методы класса "тиранозавр".
  3. TRex::TRex(void)
  4. {//Конструктор класса "тиранозавр".
  5.     mesh = ifstream("D:/CG/Resourses/Meshes/Rexy.obj"); //Открываем файл с мешем (сеткой) нашего тиранозавра.
  6.     if (!mesh.is_open())
  7.         exit(true);
  8.     InitVerteces(); //Закрытый метод, который инициализирует все точки тиранозавра.
  9.     InitPolygons(); //Закрытый метод, который инициализирует все полигоны тиранозавра.
  10.     InitLegGroup();
  11.     angle = 0.0;
  12. }
  13.  
  14. void TRex::WalkingCycle()
  15. {//Метод, который делает движение тиранозавра.
  16.     angle += 10.0;
  17.     for(int i = 0; i < 159; i++)
  18.     {
  19.         vertexBuffer[legGroup[i]].x = (vertexBuffer[legGroup[i]].x) * cos((angle * PI)/ 180) - (vertexBuffer[legGroup[i]].y) * sin((angle * PI)/ 180);
  20.         vertexBuffer[legGroup[i]].y = (vertexBuffer[legGroup[i]].x - 0.08) * sin((angle * PI)/ 180) + (vertexBuffer[legGroup[i]].y) * cos((angle * PI)/ 180);
  21.        
  22.     }
  23. }
  24.  
  25. void TRex::RenderTRex()
  26. {//Метод, который отображает тиранозавра на экран.
  27.     angle++;
  28.     glBegin(GL_TRIANGLES);
  29.     glColor3f(0.69, 0.58, 0.39);
  30.     WalkingCycle();
  31.     for(int i = 0; i < 3166; i++) //Отображаем как: вершина[номер вершины в полигоне] и так все вершины.
  32.         for(int j = 0; j < 3; j++)
  33.             glVertex3f(vertexBuffer[polygonBuffer[i][j] - 1].x, vertexBuffer[polygonBuffer[i][j] - 1].y, vertexBuffer[polygonBuffer[i][j] - 1].z);
  34.     glEnd();
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement