On Monday, 26 October 2020 at 23:38:22 UTC, Joel wrote:
```
struct vec3d
{
float x, y, z;
}
struct triangle
{
vec3d[3] p;
}
struct mesh
{
triangle[] tris;
}
// This here
meshCube.tris = {
// SOUTH
{ 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f
},
{ 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f
},
// EAST
{ 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f
},
{ 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f
},
// NORTH
{ 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f
},
{ 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f
},
// WEST
{ 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f
},
{ 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f
},
// TOP
{ 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f
},
{ 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f
},
// BOTTOM
{ 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f
},
{ 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f
},
};
```
See:
https://youtu.be/ih20l3pJoeU
https://github.com/OneLoneCoder/videos/blob/master/OneLoneCoder_olcEngine3D_Part1.cpp
This is what I came up with:
meshCube.tris =
// south
[triangle(vec3d(0f,0f,0f)), triangle(vec3d(0f,1f,0f)),
triangle(vec3d(1f,1f,0f)),
triangle(vec3d(0f,0f,0f)), triangle(vec3d(1f,1f,0f)),
triangle(vec3d(1f,0f,0f)),
// east
triangle(vec3d(1f,0f,0f)), triangle(vec3d(1f,1f,0f)),
triangle(vec3d(1f,1f,1f)),
triangle(vec3d(1f,0f,0f)), triangle(vec3d(1f,1f,1f)),
triangle(vec3d(1f,0f,1f)),
// north
triangle(vec3d(1f,0f,1f)), triangle(vec3d(1f,1f,1f)),
triangle(vec3d(0f,1f,1f)),
triangle(vec3d(1f,0f,1f)), triangle(vec3d(0f,1f,1f)),
triangle(vec3d(0f,0f,1f)),
// west
triangle(vec3d(0f,0f,1f)), triangle(vec3d(0f,1f,1f)),
triangle(vec3d(0f,1f,0f)),
triangle(vec3d(0f,0f,1f)), triangle(vec3d(0f,1f,0f)),
triangle(vec3d(0f,0f,0f)),
// top
triangle(vec3d(0f,1f,0f)), triangle(vec3d(0f,1f,1f)),
triangle(vec3d(1f,1f,1f)),
triangle(vec3d(0f,1f,0f)), triangle(vec3d(1f,1f,1f)),
triangle(vec3d(1f,1f,0f)),
// bottom
triangle(vec3d(1f,0f,1f)), triangle(vec3d(0f,0f,1f)),
triangle(vec3d(0f,0f,0f)),
triangle(vec3d(1f,0f,1f)), triangle(vec3d(0f,0f,0f)),
triangle(vec3d(1f,0f,0f))];