Guest User

Untitled

a guest
Jan 20th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.06 KB | None | 0 0
  1. void desenhaCilindroImpressora(){
  2.  
  3.  
  4. glColor3f(1.0,1.0,1.0);
  5.  
  6. gluCylinder(glQ, raio_cilindro_imp, raio_cilindro_imp, larguraTapete, 10, 10); // nao tem bases
  7.  
  8.  
  9. }
  10.  
  11. void desenhaBaseGuilhotina(){
  12.  
  13.  
  14. // face janela
  15. glBegin(GL_POLYGON);
  16. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  17. glVertex3d(0.0, 0.0, 0.0);
  18. glVertex3d(0.0,0.0 , baseGui);
  19. glVertex3d(0.0 , alturaTapete, baseGui);
  20. glVertex3d(0.0, alturaTapete, 0.0);
  21. glEnd();
  22. //face parede curva
  23. glBegin(GL_POLYGON);
  24. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  25. glVertex3d(baseGui, 0.0, 0.0);
  26. glVertex3d(baseGui, alturaTapete, 0.0);
  27. glVertex3d(baseGui, alturaTapete, baseGui);
  28. glVertex3d(baseGui, 0.0 , baseGui);
  29. glEnd();
  30. //face frente
  31. glBegin(GL_POLYGON);
  32. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  33. glVertex3d(0.0, 0.0, baseGui);
  34. glVertex3d(baseGui, 0.0 , baseGui);
  35. glVertex3d(baseGui, alturaTapete, baseGui);
  36. glVertex3d(0.0, alturaTapete, baseGui);
  37. glEnd();
  38. // face porta
  39. glBegin(GL_POLYGON);
  40. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  41. glVertex3d(0.0, 0.0, 0.0);
  42. glVertex3d(0.0, alturaTapete, 0.0);
  43. glVertex3d(baseGui, alturaTapete, 0.0);
  44. glVertex3d(baseGui, 0.0 , 0.0);
  45. glEnd();
  46. //topo
  47. glBegin(GL_POLYGON);
  48. glNormal3d(1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  49. glVertex3d(0.0, alturaTapete, baseGui);
  50. glVertex3d(baseGui, alturaTapete, baseGui);
  51. glVertex3d(baseGui, alturaTapete, 0.0);
  52. glVertex3d(0.0, alturaTapete , 0.0);
  53. glEnd();
  54. }
  55.  
  56. void desenhaTapete(){
  57. glDisable(GL_CULL_FACE);
  58.  
  59. // face janela
  60.  
  61. glBegin(GL_POLYGON);
  62. glNormal3d(0.0,0.0,-1.0); // esta normal fica comum aos 4 vertices
  63. glVertex3d(0.0, 0.0, 0.0); // associacao de
  64. glVertex3d(0.0, 0.0, roomZ/2); // coordenadas u,v
  65. glVertex3d(0.0, alturaImp/2, roomZ/2); // das texturas, aos
  66. glVertex3d(0.0, alturaImp/2, 0.0); // vertices 3D do poligono
  67. glEnd();
  68. // face parede curva
  69.  
  70. glBegin(GL_POLYGON);
  71. glNormal3d(0.0,0.0,1.0); // esta normal fica comum aos 4 vertices
  72. glVertex3d(larguraTapete, 0.0, 0.0); // associacao de
  73. glVertex3d(larguraTapete, 0.0, roomZ/2); // coordenadas u,v
  74. glVertex3d(larguraTapete, alturaImp/2, roomZ/2); // das texturas, aos
  75. glVertex3d(larguraTapete, alturaImp/2, 0.0); // vertices 3D do poligono
  76. glEnd();
  77. // face superior
  78.  
  79. glBegin(GL_POLYGON);
  80. glNormal3d(1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  81. glVertex3d(0.0, alturaImp/2, 0.0); // associacao de
  82. glVertex3d(0.0, alturaImp/2, roomZ/2); // coordenadas u,v
  83. glVertex3d(larguraTapete, alturaImp/2, roomZ/2); // das texturas, aos
  84. glVertex3d(larguraTapete, alturaImp/2, 0.0); // vertices 3D do poligono
  85. glEnd();
  86. // face inferior
  87.  
  88. glBegin(GL_POLYGON);
  89. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  90. glVertex3d(0.0, 0.0, 0.0); // associacao de
  91. glVertex3d(0.0, 0.0, roomZ/2); // coordenadas u,v
  92. glVertex3d(larguraTapete,0.0, roomZ/2); // das texturas, aos
  93. glVertex3d(larguraTapete, 0.0, 0.0); // vertices 3D do poligono
  94. glEnd();
  95. // face frente
  96.  
  97. glBegin(GL_POLYGON);
  98. glNormal3d(1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  99. glVertex3d(0.0, 0.0, roomZ/2); // associacao de
  100. glVertex3d(larguraTapete,0.0 , roomZ/2); // coordenadas u,v
  101. glVertex3d(larguraTapete,alturaImp/2, roomZ/2); // das texturas, aos
  102. glVertex3d(0.0, alturaImp/2, roomZ/2); // vertices 3D do poligono
  103. glEnd();
  104. // face parede porta
  105.  
  106. glBegin(GL_POLYGON);
  107. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  108. glVertex3d(0.0, 0.0, 0.0); // associacao de
  109. glVertex3d(larguraTapete,0.0 , 0.0); // coordenadas u,v
  110. glVertex3d(larguraTapete,alturaImp/2, 0.0); // das texturas, aos
  111. glVertex3d(0.0, alturaImp/2, 0.0); // vertices 3D do poligono
  112. glEnd();
  113.  
  114.  
  115.  
  116.  
  117. glEnable(GL_CULL_FACE);
  118. }
  119.  
  120. void desenhaImpressora(){
  121.  
  122. glDisable(GL_CULL_FACE);
  123.  
  124. // face janela
  125. glColor3f(1.0,0.0,1.0);
  126. glBegin(GL_POLYGON);
  127. glNormal3d(0.0,0.0,-1.0); // esta normal fica comum aos 4 vertices
  128. glVertex3d(0.0, 0.0, 0.0); // associacao de
  129. glVertex3d(0.0, 0.0, comprimentoImp); // coordenadas u,v
  130. glVertex3d(0.0, alturaImp, comprimentoImp); // das texturas, aos
  131. glVertex3d(0.0, alturaImp, 0.0); // vertices 3D do poligono
  132. glEnd();
  133.  
  134. // face parede curva
  135. glColor3f(1.0,0.0,1.0);
  136. glBegin(GL_POLYGON);
  137. glNormal3d(0.0,0.0,1.0); // esta normal fica comum aos 4 vertices
  138. glVertex3d(larguraImp, 0.0, 0.0);
  139. glVertex3d(larguraImp, alturaImp, 0.0);
  140. glVertex3d(larguraImp, alturaImp, comprimentoImp);
  141. glVertex3d(larguraImp, 0.0, comprimentoImp);
  142.  
  143.  
  144. glEnd();
  145.  
  146. // face superior
  147. glColor3f(1.0,0.0,1.0);
  148. glBegin(GL_POLYGON);
  149. glNormal3d(0.0,1.0,0.0); // esta normal fica comum aos 4 vertices
  150. glVertex3d(0.0, alturaImp, 0.0); // associacao de
  151. glVertex3d(0.0, alturaImp, comprimentoImp); // coordenadas u,v
  152. glVertex3d(larguraImp, alturaImp, comprimentoImp); // das texturas, aos
  153. glVertex3d(larguraImp, alturaImp, 0.0); // vertices 3D do poligono
  154. glEnd();
  155.  
  156. // face inferior
  157. glColor3f(1.0,0.0,1.0);
  158. glBegin(GL_POLYGON);
  159. glNormal3d(0.0,-1.0,0.0); // esta normal fica comum aos 4 vertices
  160. glVertex3d(0.0, 0.0, 0.0); // associacao de
  161. glVertex3d(0.0, 0.0, comprimentoImp); // coordenadas u,v
  162. glVertex3d(larguraImp, 0.0, comprimentoImp); // das texturas, aos
  163. glVertex3d(larguraImp, 0.0, 0.0); // vertices 3D do poligono
  164. glEnd();
  165.  
  166. // face parede porta
  167. glColor3f(1.0,0.0,1.0);
  168. glBegin(GL_POLYGON);
  169. glNormal3d(-1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  170. glVertex3d(0.0, 0.0, 0.0); // associacao de
  171. glVertex3d(0.0, alturaImp, 0.0); // coordenadas u,v
  172. glVertex3d(larguraImp, alturaImp, 0.0); // das texturas, aos
  173. glVertex3d(larguraImp, 0.0, 0.0); // vertices 3D do poligono
  174. glEnd();
  175. // face frente esq
  176. glColor3f(1.0,0.0,1.0);
  177. glBegin(GL_POLYGON);
  178. glNormal3d(1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  179. glVertex3d(0.0, 0.0, comprimentoImp); // associacao de
  180. glVertex3d(larguraFrenteImp, 0.0, comprimentoImp); // coordenadas u,v
  181. glVertex3d(larguraFrenteImp, alturaImp, comprimentoImp); // das texturas, aos
  182. glVertex3d(0.0, alturaImp, comprimentoImp); // vertices 3D do poligono
  183. glEnd();
  184. // face frente cima
  185. glColor3f(1.0,0.0,1.0);
  186. glBegin(GL_POLYGON);
  187. glNormal3d(1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  188. glVertex3d(larguraFrenteImp, alturaImp-larguraFrenteImp, comprimentoImp); // associacao de
  189. glVertex3d(larguraImp-larguraFrenteImp, alturaImp-larguraFrenteImp, comprimentoImp); // coordenadas u,v
  190. glVertex3d(larguraImp-larguraFrenteImp, alturaImp, comprimentoImp); // das texturas, aos
  191. glVertex3d(larguraFrenteImp, alturaImp, comprimentoImp); // vertices 3D do poligono
  192. glEnd();
  193. // face frente direita
  194. glColor3f(1.0,0.0,1.0);
  195. glBegin(GL_POLYGON);
  196. glNormal3d(1.0,0.0,0.0); // esta normal fica comum aos 4 vertices
  197. glVertex3d(larguraImp-larguraFrenteImp, 0.0, comprimentoImp); // associacao de
  198. glVertex3d(larguraImp, 0.0, comprimentoImp); // coordenadas u,v
  199. glVertex3d(larguraImp, alturaImp, comprimentoImp); // das texturas, aos
  200. glVertex3d(larguraImp-larguraFrenteImp, alturaImp, comprimentoImp); // vertices 3D do poligono
  201. glEnd();
  202.  
  203.  
  204. //desenha e altera posicao tapete
  205. glPushMatrix();
  206. glColor3f(1.0,0.0,0.0);
  207. glTranslated(larguraFrenteImp,0.0,comprimentoImp);
  208. desenhaTapete();
  209. glPopMatrix();
  210.  
  211. glPushMatrix();
  212. glColor3f(1.0,1.0,1.0);
  213. glTranslated(larguraFrenteImp,alturaTapete,comprimentoImp+(roomY/4));
  214. desenhaBaseGuilhotina();
  215. glTranslated(larguraTapete-baseGui,0.0,0.0);
  216. desenhaBaseGuilhotina();
  217. glPopMatrix();
  218.  
  219. glPushMatrix();
  220. glTranslated(larguraImp/2,alturaImp+1.5,comprimentoImp/2);
  221. glutSolidTeapot(1.5);
  222. glPopMatrix();
  223.  
  224.  
  225. glEnable(GL_CULL_FACE);
  226. }
  227.  
  228. void desenhaParedePorta(){
  229.  
  230. glEnable(GL_COLOR_MATERIAL);
  231. // parte esquerda porta
  232. glColor3f(1.0,0.0,1.0);
  233. glBegin(GL_POLYGON);
  234. glNormal3d(0.0,0.0,1.0); // esta normal fica comum aos 4 vertices
  235. glVertex3d(-roomX, 0.0, -roomZ); // associacao de
  236. glVertex3d(roomX/3, 0.0, -roomZ); // coordenadas u,v
  237. glVertex3d(roomX/3, roomY, -roomZ); // das texturas, aos
  238. glVertex3d(-roomX, roomY, -roomZ); // vertices 3D do poligono
  239. glEnd();
  240. // parte cima porta
  241. glColor3f(1.0,0.0,1.0);
  242. glBegin(GL_POLYGON);
  243. glNormal3d(0.0,0.0,1.0); // esta normal fica comum aos 4 vertices
  244. glVertex3d(roomX/3, roomY/2, -roomZ); // associacao de
  245. glVertex3d((roomX/3)*2, roomY/2, -roomZ); // coordenadas u,v
  246. glVertex3d((roomX/3)*2, roomY, -roomZ); // das texturas, aos
  247. glVertex3d((roomX/3), roomY, -roomZ); // vertices 3D do poligono
  248. glEnd();
  249. // parte direita porta
  250. glColor3f(1.0,0.0,1.0);
  251. glBegin(GL_POLYGON);
  252. glNormal3d(0.0,0.0,1.0); // esta normal fica comum aos 4 vertices
  253. glVertex3d((roomX/3)*2, 0.0, -roomZ); // associacao de
  254. glVertex3d(roomX, 0.0, -roomZ); // coordenadas u,v
  255. glVertex3d(roomX, roomY, -roomZ); // das texturas, aos
  256. glVertex3d((roomX/3)*2, roomY, -roomZ); // vertices 3D do poligono
  257. glEnd();
  258. }
Add Comment
Please, Sign In to add comment