diff options
author | sanine-a <sanine.not@pm.me> | 2020-05-20 23:03:42 -0500 |
---|---|---|
committer | sanine-a <sanine.not@pm.me> | 2020-05-20 23:03:42 -0500 |
commit | a09b5a72d365f10e35b012e04b95891abf0b8313 (patch) | |
tree | 8c233b15f5592371dde867abc62e31193b442c97 /src | |
parent | c3a41085272644709d891bf04137a6c2bd901230 (diff) |
add cube primitive
Diffstat (limited to 'src')
-rw-r--r-- | src/primitives.c | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/src/primitives.c b/src/primitives.c index 798a691..7cbea07 100644 --- a/src/primitives.c +++ b/src/primitives.c @@ -1,3 +1,48 @@ -#ifndef HONEY_PRIMITIVE_OBJECTS -#define HONEY_PRIMITIVE_OBJECTS +#include "include/primitives.h" + +enum honey_mesh_result honey_mesh_new_cube(honey_mesh* mesh, + float width, + float height, + float depth) { + float x0 = 0; + float y0 = 0; + float z0 = 0; + + float x1 = width; + float y1 = height; + float z1 = depth; + + float vertices[] = { + x0, y0, z0, + x1, y0, z0, + x0, y1, z0, + x1, y1, z0, + x0, y0, z1, + x1, y0, z1, + x0, y1, z1, + x1, y1, z1 }; + + unsigned int indices[] = { 0, 1, 2, + 1, 2, 3, + 4, 5, 6, + 5, 6, 7, + 0, 2, 4, + 2, 4, 6, + 1, 3, 5, + 3, 5, 7, + 2, 3, 6, + 3, 6, 7, + 0, 1, 4, + 1, 4, 5 }; + + unsigned int attrib_sizes[] = { 3 }; + + enum honey_mesh_result result = honey_mesh_new(mesh, + vertices, + 8, 1, attrib_sizes, + indices, 36); + + return result; +} + |