Advertisement
Guest User

Cube

a guest
Oct 21st, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. void Mesh::GenerateCube(float p_fSize)
  2. {
  3. m_axV.SetSize(6*4);
  4. m_aiI.SetSize(6*6);
  5.  
  6. int iFace;
  7. for(iFace=0;iFace<6;iFace++)
  8. {
  9. Vec3 vOfs,vX,vY,vColor;
  10. switch(iFace)
  11. {
  12. case 0:
  13. vOfs.SetXYZ(p_fSize,0,0);
  14. vX.SetXYZ(0,-p_fSize,0);
  15. vY.SetXYZ(0,0,p_fSize);
  16. vColor.SetXYZ(1.0f,0.7f,0);
  17. break;
  18. case 1:
  19. vOfs.SetXYZ(-p_fSize,0,0);
  20. vX.SetXYZ(0,-p_fSize,0);
  21. vY.SetXYZ(0,0,p_fSize);
  22. vColor.SetXYZ(0.7f,1.0f,0);
  23. break;
  24. case 2:
  25. vOfs.SetXYZ(0,p_fSize,0);
  26. vX.SetXYZ(p_fSize,0,0);
  27. vY.SetXYZ(0,0,p_fSize);
  28. vColor.SetXYZ(1.0f,0,0.7f);
  29. break;
  30. case 3:
  31. vOfs.SetXYZ(0,-p_fSize,0);
  32. vX.SetXYZ(p_fSize,0,0);
  33. vY.SetXYZ(0,0,p_fSize);
  34. vColor.SetXYZ(0.7f,0,1.0f);
  35. break;
  36. case 4:
  37. vOfs.SetXYZ(0,0,p_fSize);
  38. vX.SetXYZ(-p_fSize,0,0);
  39. vY.SetXYZ(0,p_fSize,0);
  40. vColor.SetXYZ(0,1.0f,0.7f);
  41. break;
  42. case 5:
  43. vOfs.SetXYZ(0,0,-p_fSize);
  44. vX.SetXYZ(-p_fSize,0,0);
  45. vY.SetXYZ(0,p_fSize,0);
  46. vColor.SetXYZ(0,0.7f,1.0f);
  47. break;
  48. };
  49. Vec3 vN=vOfs;
  50. vN.Normalize();
  51. int iVOfs=iFace*4;
  52. m_axV[iVOfs+0].SetPos(vOfs+vX-vY).SetNormal(vN).SetColor(vColor);
  53. m_axV[iVOfs+1].SetPos(vOfs+vX+vY).SetNormal(vN).SetColor(vColor);
  54. m_axV[iVOfs+2].SetPos(vOfs-vX+vY).SetNormal(vN).SetColor(vColor);
  55. m_axV[iVOfs+3].SetPos(vOfs-vX-vY).SetNormal(vN).SetColor(vColor);
  56. if(iFace&1)
  57. {
  58. m_aiI[iFace*6+0]=iVOfs+0;
  59. m_aiI[iFace*6+1]=iVOfs+1;
  60. m_aiI[iFace*6+2]=iVOfs+2;
  61. m_aiI[iFace*6+3]=iVOfs+0;
  62. m_aiI[iFace*6+4]=iVOfs+2;
  63. m_aiI[iFace*6+5]=iVOfs+3;
  64. }
  65. else
  66. {
  67. m_aiI[iFace*6+0]=iVOfs+1;
  68. m_aiI[iFace*6+1]=iVOfs+0;
  69. m_aiI[iFace*6+2]=iVOfs+2;
  70. m_aiI[iFace*6+3]=iVOfs+2;
  71. m_aiI[iFace*6+4]=iVOfs+0;
  72. m_aiI[iFace*6+5]=iVOfs+3;
  73. };
  74. };
  75. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement