Advertisement
Guest User

Untitled

a guest
May 26th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. void draw(EllipticParabola* ep) {
  2.     glLineWidth(0.5f);
  3. // чтобы была заливка
  4.     glPolygonMode(GL_FRONT_AND_BACK, cubeMode);
  5.    
  6. // чтобы работал цвет в освещении
  7.         glColorMaterial(GL_FRONT, GL_DIFFUSE);
  8.         glEnable(GL_COLOR_MATERIAL);
  9.  
  10. //проходим по всем полигонам
  11.         for (const std::vector<int>& pol : ep->polygons) {
  12.             int i = 0;
  13.  
  14.             glBegin(GL_POLYGON);
  15.  
  16.             i = 0;
  17. // проходим по точкам в полигоне
  18.             for (int ind : pol) {
  19. // индексы-хуиндексы
  20.                 ind *= 3;
  21. // цвет точки
  22.                 glColor3f(ep->points_color[ind], ep->points_color[ind + 1], ep->points_color[ind + 2]);
  23. // нормаль в точке
  24.                 glNormal3f(ep->points_normal[ind], ep->points_normal[ind + 1], ep->points_normal[ind + 2]);
  25. // точка
  26.                 glVertex3f(ep->points_pos[ind], ep->points_pos[ind + 1], ep->points_pos[ind + 2]);
  27.                 i++;
  28.             }
  29.  
  30.             glEnd();
  31.         }
  32.    
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement