Advertisement
Guest User

Untitled

a guest
Jun 30th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.92 KB | None | 0 0
  1. const unsigned short numVertices = 6;
  2. const unsigned short numIndices = 6;
  3.  
  4. const unsigned short indexData[] = {
  5. 0,1,2, 3,4,5,
  6. };
  7.  
  8. for (int i = 0; i < 6; ++i) {
  9. std::vector<float> vertexData;
  10.  
  11. switch (i) {
  12. case BRICK_FACE::FRONT://Front
  13. vertexData = {
  14. VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  15. VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  16. VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  17.  
  18. VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  19. VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  20. VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  21. };
  22. break;
  23. case BRICK_FACE::RIGHT://Front-Right
  24. vertexData = {
  25. VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  26. VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  27. VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  28.  
  29. VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  30. VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  31. VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  32. };
  33. break;
  34. case BRICK_FACE::BACK://Back
  35. vertexData = {
  36. VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  37. VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  38. VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  39.  
  40. VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  41. VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  42. VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  43. };
  44. break;
  45. case BRICK_FACE::LEFT://Front-Left
  46. vertexData = {
  47. VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  48. VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  49. VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  50.  
  51. VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  52. VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  53. VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  54. };
  55. break;
  56. case BRICK_FACE::TOP://Top
  57. vertexData = {
  58. VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
  59. VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
  60. VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  61.  
  62. VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
  63. VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  64. VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  65. };
  66.  
  67. break;
  68. case BRICK_FACE::BOTTOM://Bottom
  69. vertexData = {
  70. VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
  71. VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
  72. VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  73.  
  74. VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
  75. VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  76. VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
  77.  
  78. };
  79.  
  80. break;
  81. }
  82.  
  83. for (int iter = 0; iter < numVertices; iter += 3) {
  84. Vector3& v1 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15]));
  85. Vector3& v2 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15 + 1]));
  86. Vector3& v3 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15 + 2]));
  87. Vector3& n1 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15 + 3]));
  88. Vector3& n2 = *(reinterpret_cast<Vector3*>(&vertexData[(iter * 15 + 1) + 3]));
  89. Vector3& n3 = *(reinterpret_cast<Vector3*>(&vertexData[(iter * 15 + 2) + 3]));
  90.  
  91. Vector3 edge1 = v3 - v1;
  92. Vector3 edge2 = v2 - v1;
  93.  
  94. n1 = n2 = n3 = edge1.CrossProduct(edge2).Normalized();
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement