diff options
author | sanine-a <sanine.not@pm.me> | 2020-11-29 15:16:42 -0600 |
---|---|---|
committer | sanine-a <sanine.not@pm.me> | 2020-11-29 15:16:42 -0600 |
commit | 140666204191b218b72274d8d14921c89a6631fd (patch) | |
tree | 8436c81dda007e934f6b5cadd41789c677306b44 /src/primitives/primitives.c | |
parent | 146d708c67172a05a62f944b16fdcb0dccc4713d (diff) |
refactor: eliminate src subdirectories for honey files
Diffstat (limited to 'src/primitives/primitives.c')
-rw-r--r-- | src/primitives/primitives.c | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/src/primitives/primitives.c b/src/primitives/primitives.c deleted file mode 100644 index d499248..0000000 --- a/src/primitives/primitives.c +++ /dev/null @@ -1,223 +0,0 @@ -#include "primitives.h" - -static int honey_mesh_lua_plane(lua_State* L) -{ - float width, height; - honey_lua_parse_arguments(L, 2, - HONEY_NUMBER, &width, - HONEY_NUMBER, &height); - - honey_mesh* mesh = lua_newuserdata(L, sizeof(honey_mesh)); - if (honey_mesh_new_textured_plane(mesh, width, height) != HONEY_OK) { - lua_pushstring(L, "error encountered while building plane"); - lua_error(L); - } - return 1; -} - -static int honey_mesh_lua_cube(lua_State* L) -{ - float width, height, depth; - honey_lua_parse_arguments(L, 3, - HONEY_NUMBER, &width, - HONEY_NUMBER, &height, - HONEY_NUMBER, &depth); - - honey_mesh* mesh = lua_newuserdata(L, sizeof(honey_mesh)); - if (honey_mesh_new_textured_cube(mesh, width, height, depth) != HONEY_OK) { - lua_pushstring(L, "error encountered while building plane"); - lua_error(L); - } - return 1; -} - -void honey_setup_primitives(lua_State* L) -{ - honey_lua_element primitive_elements[] = { - { "plane", HONEY_FUNCTION, { .function = honey_mesh_lua_plane } }, - { "cube", HONEY_FUNCTION, { .function = honey_mesh_lua_cube } }, - }; - - honey_lua_create_table(L, primitive_elements, 2); -} - -/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -honey_result honey_mesh_new_textured_plane(honey_mesh* mesh, - float width, - float height) { - float x0 = 0; - float y0 = 0; - float x1 = width; - float y1 = height; - - float vertices[] = { - /* position normal uv */ - x0, y0, 0, 0, 0, 1, 0, 0, - x1, y0, 0, 0, 0, 1, 1, 0, - x0, y1, 0, 0, 0, 1, 0, 1, - x1, y1, 0, 0, 0, 1, 1, 1 }; - - unsigned int indices[] = { - 0, 1, 2, - 3, 2, 1 }; - - unsigned int attrib_sizes[] = { 3, 3, 2 }; - - honey_result result = honey_mesh_new(mesh, - vertices, 4, - 3, attrib_sizes, - indices, 6); - return result; -} - -/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -honey_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[] = { - /* position normal tex coord */ - /* back face */ - x0, y0, z0, 0, 0, -1, - x1, y0, z0, 0, 0, -1, - x0, y1, z0, 0, 0, -1, - x1, y1, z0, 0, 0, -1, - - /* front face */ - x0, y0, z1, 0, 0, 1, - x1, y0, z1, 0, 0, 1, - x0, y1, z1, 0, 0, 1, - x1, y1, z1, 0, 0, 1, - - /* left face */ - x0, y0, z0, -1, 0, 0, - x0, y1, z0, -1, 0, 0, - x0, y0, z1, -1, 0, 0, - x0, y1, z1, -1, 0, 0, - - /* right face */ - x1, y0, z0, 1, 0, 0, - x1, y1, z0, 1, 0, 0, - x1, y0, z1, 1, 0, 0, - x1, y1, z1, 1, 0, 0, - - /* bottom face */ - x0, y0, z0, 0, -1, 0, - x1, y0, z0, 0, -1, 0, - x0, y0, z1, 0, -1, 0, - x1, y0, z1, 0, -1, 0, - - /* top face */ - x0, y1, z0, 0, 1, 0, - x1, y1, z0, 0, 1, 0, - x0, y1, z1, 0, 1, 0, - x1, y1, z1, 0, 1, 0 }; - - unsigned int indices[] = { - 0, 1, 2, - 1, 2, 3, - 4, 5, 6, - 5, 6, 7, - 8, 9, 10, - 9, 10, 11, - 12, 13, 14, - 13, 14, 15, - 16, 17, 18, - 17, 18, 19, - 20, 21, 22, - 21, 22, 23 }; - - unsigned int attrib_sizes[] = { 3, 3 }; - - honey_result result = honey_mesh_new(mesh, - vertices, 24, - 2, attrib_sizes, - indices, 36); - - return result; -} - -/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -honey_result honey_mesh_new_textured_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[] = { - /* position normal tex coord */ - /* back face */ - x0, y0, z0, 0, 0, -1, 0, 0, - x1, y0, z0, 0, 0, -1, 1, 0, - x0, y1, z0, 0, 0, -1, 0, 1, - x1, y1, z0, 0, 0, -1, 1, 1, - - /* front face */ - x0, y0, z1, 0, 0, 1, 0, 0, - x1, y0, z1, 0, 0, 1, 1, 0, - x0, y1, z1, 0, 0, 1, 0, 1, - x1, y1, z1, 0, 0, 1, 1, 1, - - /* left face */ - x0, y0, z0, -1, 0, 0, 0, 0, - x0, y1, z0, -1, 0, 0, 1, 0, - x0, y0, z1, -1, 0, 0, 0, 1, - x0, y1, z1, -1, 0, 0, 1, 1, - - /* right face */ - x1, y0, z0, 1, 0, 0, 0, 0, - x1, y1, z0, 1, 0, 0, 1, 0, - x1, y0, z1, 1, 0, 0, 0, 1, - x1, y1, z1, 1, 0, 0, 1, 1, - - /* bottom face */ - x0, y0, z0, 0, -1, 0, 0, 0, - x1, y0, z0, 0, -1, 0, 1, 0, - x0, y0, z1, 0, -1, 0, 0, 1, - x1, y0, z1, 0, -1, 0, 1, 1, - - /* top face */ - x0, y1, z0, 0, 1, 0, 0, 0, - x1, y1, z0, 0, 1, 0, 1, 0, - x0, y1, z1, 0, 1, 0, 0, 1, - x1, y1, z1, 0, 1, 0, 1, 1 }; - - unsigned int indices[] = { - 0, 1, 2, - 1, 2, 3, - 4, 5, 6, - 5, 6, 7, - 8, 9, 10, - 9, 10, 11, - 12, 13, 14, - 13, 14, 15, - 16, 17, 18, - 17, 18, 19, - 20, 21, 22, - 21, 22, 23 }; - - unsigned int attrib_sizes[] = { 3, 3, 2 }; - - honey_result result; - result = honey_mesh_new(mesh, vertices, 24, - 3, attrib_sizes, - indices, 36); - return result; -} |