diff options
Diffstat (limited to 'src/primitives.h')
-rw-r--r-- | src/primitives.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/primitives.h b/src/primitives.h new file mode 100644 index 0000000..923a0e3 --- /dev/null +++ b/src/primitives.h @@ -0,0 +1,62 @@ +#ifndef HONEY_PRIMITIVES_H +#define HONEY_PRIMITIVES H + +/** @file primitives.h + * + * @brief Define various common primitive objects. + */ + +#include "common.h" +#include "mesh.h" + +/** @brief Push table of lua bindings for creating primitives to the stack. */ +void honey_setup_primitives(lua_State* L); + +/** @brief Create a textured plane. + * + * This function creates a plane with vertex positions in attribute 0, + * vertex normals in attribute 1, and UV coordinates in attribute 2. + * + * @param[out] mesh Pointer to the destination mesh + * @param[in] width Desired width of the plane (x-axis) + * @param[in] height Desired height of the plane (y-axis) + * + * @return 0 (HONEY_OK) on success, and an error code otherwise. + */ +honey_result honey_mesh_new_textured_plane(honey_mesh* mesh, + float width, + float height); + +/** @brief Create a cube. + * + * This function creates a cube with vertex positions in attribute 0. + * + * @param[out] mesh Pointer to the destination mesh + * @param[in] width Desired width of the cube (x-axis) + * @param[in] height Desired height of the cube (y-axis) + * @param[in] depth Desired depth of the cube (z-axis) + * + * @return Success or failure code + */ +honey_result honey_mesh_new_cube(honey_mesh* mesh, + float width, + float height, + float depth); +/** @brief Create a textured cube. + * + * This function creates a cube with vertex positions in attribute 0, + * and texture coordinates in attribute 1. + * + * @param[out] mesh Pointer to the destination mesh + * @param[in] width Desired width of the cube (x-axis) + * @param[in] height Desired height of the cube (y-axis) + * @param[in] depth Desired depth of the cube (z-axis) + * + * @return Success or failure code + */ +honey_result honey_mesh_new_textured_cube(honey_mesh* mesh, + float width, + float height, + float depth); + +#endif |