diff options
Diffstat (limited to 'src/maths/primitives.c')
-rw-r--r-- | src/maths/primitives.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/maths/primitives.c b/src/maths/primitives.c index 1e1e673..13fa81b 100644 --- a/src/maths/primitives.c +++ b/src/maths/primitives.c @@ -20,7 +20,8 @@ Vec3 plane_vertex_positions[] = { (Vec3){ 0.5, 0, 0.5 }, }; -Geometry Geo_CreatePlane(f32x2 extents) { +Geometry Geo_CreatePlane(f32x2 extents, u32 tiling_u, u32 tiling_v) { + CASSERT(tiling_u >= 1 && tiling_v >= 1); Vertex_darray* vertices = Vertex_darray_new(4); u32_darray* indices = u32_darray_new(vertices->len); @@ -30,15 +31,15 @@ Geometry Geo_CreatePlane(f32x2 extents) { vert_pos[i].x *= extents.x; vert_pos[i].z *= extents.y; } - VERT_3D(vertices, vert_pos[0], VEC3_Y, vec2(0, 0)); // back left - VERT_3D(vertices, vert_pos[1], VEC3_Y, vec2(1, 0)); // back right - VERT_3D(vertices, vert_pos[2], VEC3_Y, vec2(0, 1)); // front left - VERT_3D(vertices, vert_pos[3], VEC3_Y, vec2(1, 1)); // front right - - push_triangle(indices, 0, 1, 2); - push_triangle(indices, 2, 1, 3); - // push_triangle(indices, 2, 1, 0); - // push_triangle(indices, 3, 2, 1); + VERT_3D(vertices, vert_pos[0], VEC3_Y, vec2(0, 0)); // back left + VERT_3D(vertices, vert_pos[1], VEC3_Y, vec2(1 * tiling_u, 0 * tiling_v)); // back right + VERT_3D(vertices, vert_pos[2], VEC3_Y, vec2(0, 1 * tiling_v)); // front left + VERT_3D(vertices, vert_pos[3], VEC3_Y, vec2(1 * tiling_u, 1 * tiling_v)); // front right + + // push_triangle(indices, 0, 1, 2); + // push_triangle(indices, 2, 1, 3); + push_triangle(indices, 2, 1, 0); + push_triangle(indices, 1,2,3); for (int i = 0; i < 4; i++) { printf("Vertex %d: (%f, %f, %f)\n", i, vert_pos[i].x, vert_pos[i].y, vert_pos[i].z); |