Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. //michael polyakov copyright
  2. #pragma once
  3. #ifndef __SMALLCUBE_H__
  4. #define GLEW_STATIC
  5. #include <glew.h>
  6. #include <glfw3.h>
  7. #include<cstring>
  8.  
  9. class SmallCube
  10. {
  11. public:
  12.     SmallCube()
  13.     {
  14.         memset(color,0,sizeof(color));
  15.         size = 0.0;
  16.     }
  17.  
  18.     void rotatez() //вверх
  19.     {
  20.         int tmp = color[0];
  21.         color[0] = color[4];
  22.         color[4] = color[5];
  23.         color[5] = color[1];
  24.         color[1] = tmp;
  25.     }
  26.     void mrotatez() //вниз
  27.     {
  28.         int tmp = color[0];
  29.         color[0] = color[1];
  30.         color[1] = color[5];
  31.         color[5] = color[4];
  32.         color[4] = tmp;
  33.     }
  34.     void rotatex() //вправо
  35.     {
  36.         int tmp = color[0];
  37.         color[0] = color[3];
  38.         color[3] = color[5];
  39.         color[5] = color[2];
  40.         color[2] = tmp;
  41.     }
  42.     void rotatey() //влево
  43.     {
  44.         int tmp = color[0];
  45.         color[0] = color[2];
  46.         color[2] = color[5];
  47.         color[5] = color[3];
  48.         color[3] = tmp;
  49.     }
  50.     void drawsmallcube()
  51.     {
  52.         GLfloat vertices[] =
  53.         {
  54.         -1, -1, -1,   -1, -1,  1,   -1,  1,  1,   -1,  1, -1,
  55.         1, -1, -1,    1, -1,  1,    1,  1,  1,    1,  1, -1,
  56.         -1, -1, -1,   -1, -1,  1,    1, -1,  1,    1, -1, -1,
  57.         -1,  1, -1,   -1,  1,  1,    1,  1,  1,    1,  1, -1,
  58.         -1, -1, -1,   -1,  1, -1,    1,  1, -1,    1, -1, -1,
  59.         -1, -1,  1,   -1,  1,  1,    1,  1,  1,    1, -1,  1
  60.         };
  61.  
  62.         GLfloat colors[] =
  63.         {
  64.         0, 0, 1,   0, 0, 1,   0, 0, 1,   0, 0, 1, //синяя вершина
  65.         1, 0, 0,   1, 0, 0,   1, 0, 0,   1, 0, 0, //красная вершина
  66.         1, 1, 1,   1, 1, 1,   1, 1, 1,   1, 1, 1, //белая вершина
  67.         0, 1, 0,   0, 1, 0,   0, 1, 0,   0, 1, 0, //зеленая вершина
  68.         1, 1, 0,   1, 1, 0,   1, 1, 0,   1, 1, 0, //желтая вершина
  69.         1, 0.5, 0, 1, 0.5, 0,   1, 0.5, 0,   1, 0.5, 0  //оранжевая вершина
  70.         };
  71.  
  72.         static float alpha = 0;
  73.         //attempt to rotate cube
  74.         glRotatef(alpha, 0, 1, 0);
  75.  
  76.         /* We have a color array and a vertex array */
  77.         glEnableClientState(GL_VERTEX_ARRAY);
  78.         glEnableClientState(GL_COLOR_ARRAY);
  79.         glVertexPointer(3, GL_FLOAT, 0, vertices);
  80.         glColorPointer(3, GL_FLOAT, 0, colors);
  81.  
  82.         /* Send data : 24 vertices */
  83.         glDrawArrays(GL_QUADS, 0, 24);
  84.  
  85.         /* Cleanup states */
  86.         glDisableClientState(GL_COLOR_ARRAY);
  87.         glDisableClientState(GL_VERTEX_ARRAY);
  88.         alpha += 1;
  89.     }
  90.     void drawt(int x, int y, int z)
  91.     {
  92.         glTranslated(x, y, z);
  93.         drawsmallcube();
  94.     }
  95. private:
  96.                                                      //2     5       1      6      4      3
  97.     int color[6]; //6 граней у маленького кубика; // {верх, низ, спереди, сзади, слева, справа}
  98.     double size; // размер ребра
  99. };
  100.  
  101. #endif // !__SMALLCUBE_H__
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement