diff options
| author | sanine-a <sanine.not@pm.me> | 2020-10-27 15:01:15 -0500 | 
|---|---|---|
| committer | sanine-a <sanine.not@pm.me> | 2020-10-27 15:01:15 -0500 | 
| commit | 50a8d3dc884816fbb1e3a3df3c401358e62b5eea (patch) | |
| tree | 8513fa576be4905262f724d2be42bc59d40ee03e /src/primitives | |
| parent | fc16337c080db7013791bf25ace538546d2779dc (diff) | |
revert mesh.* with minor refactor and honey_setup_mesh()
Diffstat (limited to 'src/primitives')
| -rw-r--r-- | src/primitives/primitives.c | 356 | 
1 files changed, 178 insertions, 178 deletions
| diff --git a/src/primitives/primitives.c b/src/primitives/primitives.c index 0d8f209..efc4a0f 100644 --- a/src/primitives/primitives.c +++ b/src/primitives/primitives.c @@ -1,180 +1,180 @@  #include "primitives.h" -//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, -//    1, 2, 3 }; -// -//  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; -//} +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, +    1, 2, 3 }; + +  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; +} | 
