Advertisement
Nuppiz

MakeCube

Apr 21st, 2022
949
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.34 KB | None | 0 0
  1. void MakeCube(Mesh3D* cube)
  2. {
  3.     cube->x_angle = 0.0;
  4.     cube->y_angle = 0.0;
  5.     cube->z_angle = 0.0;
  6.     cube->scale = 1.0;
  7.     cube->center.x = 159;
  8.     cube->center.y = 99;
  9.  
  10.     cube->numPoints = 8;
  11.     cube->points = malloc(cube->numPoints * sizeof(Vec3));
  12.     cube->points[0].x = -CUBE_SIZE;
  13.     cube->points[0].y = CUBE_SIZE;
  14.     cube->points[0].z = -CUBE_SIZE;
  15.     cube->points[1].x = -CUBE_SIZE;
  16.     cube->points[1].y = -CUBE_SIZE;
  17.     cube->points[1].z = -CUBE_SIZE;
  18.     cube->points[2].x = CUBE_SIZE;
  19.     cube->points[2].y = -CUBE_SIZE;
  20.     cube->points[2].z = -CUBE_SIZE;
  21.     cube->points[3].x = CUBE_SIZE;
  22.     cube->points[3].y = CUBE_SIZE;
  23.     cube->points[3].z = -CUBE_SIZE;
  24.     cube->points[4].x = CUBE_SIZE;
  25.     cube->points[4].y = CUBE_SIZE;
  26.     cube->points[4].z = CUBE_SIZE;    
  27.     cube->points[5].x = -CUBE_SIZE;
  28.     cube->points[5].y = CUBE_SIZE;
  29.     cube->points[5].z = CUBE_SIZE;
  30.     cube->points[6].x = -CUBE_SIZE;
  31.     cube->points[6].y = -CUBE_SIZE;
  32.     cube->points[6].z = CUBE_SIZE;
  33.     cube->points[7].x = CUBE_SIZE;
  34.     cube->points[7].y = -CUBE_SIZE;
  35.     cube->points[7].z = CUBE_SIZE;
  36.  
  37.     cube->transformedP = malloc(cube->numPoints * sizeof(Vec3));
  38.     memcpy(cube->transformedP, cube->points, sizeof(Vec3) * cube->numPoints);
  39.  
  40.     cube->numTriangles = 12;
  41.     cube->numFaces = 6;
  42.     cube->triangleVertices = malloc((cube->numTriangles * 3) * sizeof(Vertex));
  43.     cube->faces = malloc((cube->numFaces) * sizeof(Face));
  44.     // back face
  45.     cube->triangleVertices[0].pointID = 0;
  46.     cube->triangleVertices[0].UV.x = 0;
  47.     cube->triangleVertices[0].UV.y = 31;
  48.     cube->triangleVertices[1].pointID = 1;
  49.     cube->triangleVertices[1].UV.x = 0;
  50.     cube->triangleVertices[1].UV.y = 0;
  51.     cube->triangleVertices[2].pointID = 2;
  52.     cube->triangleVertices[2].UV.x = 31;
  53.     cube->triangleVertices[2].UV.y = 0;
  54.     cube->triangleVertices[3].pointID = 2;
  55.     cube->triangleVertices[3].UV.x = 31;
  56.     cube->triangleVertices[3].UV.y = 0;
  57.     cube->triangleVertices[4].pointID = 3;
  58.     cube->triangleVertices[4].UV.x = 31;
  59.     cube->triangleVertices[4].UV.y = 31;
  60.     cube->triangleVertices[5].pointID = 0;
  61.     cube->triangleVertices[5].UV.x = 0;
  62.     cube->triangleVertices[5].UV.y = 31;
  63.     cube->faces[0].texture = &BeaWater;
  64.     // right face
  65.     cube->triangleVertices[6].pointID = 2;
  66.     cube->triangleVertices[6].UV.x = 31;
  67.     cube->triangleVertices[6].UV.y = 0;
  68.     cube->triangleVertices[7].pointID = 3;
  69.     cube->triangleVertices[7].UV.x = 31;
  70.     cube->triangleVertices[7].UV.y = 31;
  71.     cube->triangleVertices[8].pointID = 4;
  72.     cube->triangleVertices[8].UV.x = 0;
  73.     cube->triangleVertices[8].UV.y = 31;
  74.     cube->triangleVertices[9].pointID = 4;
  75.     cube->triangleVertices[9].UV.x = 0;
  76.     cube->triangleVertices[9].UV.y = 31;
  77.     cube->triangleVertices[10].pointID = 7;
  78.     cube->triangleVertices[10].UV.x = 0;
  79.     cube->triangleVertices[10].UV.y = 0;
  80.     cube->triangleVertices[11].pointID = 2;
  81.     cube->triangleVertices[11].UV.x = 31;
  82.     cube->triangleVertices[11].UV.y = 0;
  83.     cube->faces[1].texture = &Bush;
  84.     // front face
  85.     cube->triangleVertices[12].pointID = 4;
  86.     cube->triangleVertices[12].UV.x = 31;
  87.     cube->triangleVertices[12].UV.y = 31;
  88.     cube->triangleVertices[13].pointID = 5;
  89.     cube->triangleVertices[13].UV.x = 0;
  90.     cube->triangleVertices[13].UV.y = 31;
  91.     cube->triangleVertices[14].pointID = 6;
  92.     cube->triangleVertices[14].UV.x = 0;
  93.     cube->triangleVertices[14].UV.y = 0;
  94.     cube->triangleVertices[15].pointID = 6;
  95.     cube->triangleVertices[15].UV.x = 0;
  96.     cube->triangleVertices[15].UV.y = 0;
  97.     cube->triangleVertices[16].pointID = 7;
  98.     cube->triangleVertices[16].UV.x = 31;
  99.     cube->triangleVertices[16].UV.y = 0;
  100.     cube->triangleVertices[17].pointID = 4;
  101.     cube->triangleVertices[17].UV.x = 31;
  102.     cube->triangleVertices[17].UV.y = 31;
  103.     cube->faces[2].texture = &Concrete;
  104.     // left face
  105.     cube->triangleVertices[18].pointID = 6;
  106.     cube->triangleVertices[18].UV.x = 31;
  107.     cube->triangleVertices[18].UV.y = 0;
  108.     cube->triangleVertices[19].pointID = 1;
  109.     cube->triangleVertices[19].UV.x = 0;
  110.     cube->triangleVertices[19].UV.y = 0;
  111.     cube->triangleVertices[20].pointID = 0;
  112.     cube->triangleVertices[20].UV.x = 0;
  113.     cube->triangleVertices[20].UV.y = 31;
  114.     cube->triangleVertices[21].pointID = 0;
  115.     cube->triangleVertices[21].UV.x = 0;
  116.     cube->triangleVertices[21].UV.y = 31;
  117.     cube->triangleVertices[22].pointID = 5;
  118.     cube->triangleVertices[22].UV.x = 31;
  119.     cube->triangleVertices[22].UV.y = 31;
  120.     cube->triangleVertices[23].pointID = 6;
  121.     cube->triangleVertices[23].UV.x = 31;
  122.     cube->triangleVertices[23].UV.y = 0;
  123.     cube->faces[3].texture = &GrasSand;
  124.     // top face
  125.     cube->triangleVertices[24].pointID = 6;
  126.     cube->triangleVertices[24].UV.x = 0;
  127.     cube->triangleVertices[24].UV.y = 31;
  128.     cube->triangleVertices[25].pointID = 1;
  129.     cube->triangleVertices[25].UV.x = 0;
  130.     cube->triangleVertices[25].UV.y = 0;
  131.     cube->triangleVertices[26].pointID = 2;
  132.     cube->triangleVertices[26].UV.x = 31;
  133.     cube->triangleVertices[26].UV.y = 0;
  134.     cube->triangleVertices[27].pointID = 2;
  135.     cube->triangleVertices[27].UV.x = 31;
  136.     cube->triangleVertices[27].UV.y = 0;
  137.     cube->triangleVertices[28].pointID = 7;
  138.     cube->triangleVertices[28].UV.x = 31;
  139.     cube->triangleVertices[28].UV.y = 31;
  140.     cube->triangleVertices[29].pointID = 6;
  141.     cube->triangleVertices[29].UV.x = 0;
  142.     cube->triangleVertices[29].UV.y = 31;
  143.     cube->faces[4].texture = &Trees;
  144.     // bottom face
  145.     cube->triangleVertices[30].pointID = 4;
  146.     cube->triangleVertices[30].UV.x = 31;
  147.     cube->triangleVertices[30].UV.y = 0;
  148.     cube->triangleVertices[31].pointID = 5;
  149.     cube->triangleVertices[31].UV.x = 0;
  150.     cube->triangleVertices[31].UV.y = 0;
  151.     cube->triangleVertices[32].pointID = 0;
  152.     cube->triangleVertices[32].UV.x = 0;
  153.     cube->triangleVertices[32].UV.y = 31;
  154.     cube->triangleVertices[33].pointID = 0;
  155.     cube->triangleVertices[32].UV.x = 0;
  156.     cube->triangleVertices[32].UV.y = 31;
  157.     cube->triangleVertices[34].pointID = 3;
  158.     cube->triangleVertices[34].UV.x = 31;
  159.     cube->triangleVertices[34].UV.y = 31;
  160.     cube->triangleVertices[35].pointID = 4;
  161.     cube->triangleVertices[35].UV.x = 31;
  162.     cube->triangleVertices[35].UV.y = 0;
  163.     cube->faces[5].texture = &Wall;
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement