| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /**
- *** :: Renderable ::
- ***
- *** A model or mesh loaded into vertex buffers
- *** can be rigged or not depending on file type
- ***
- *** Load using .bmf format for best performance.
- ***
- **/
- #ifndef renderable_h
- #define renderable_h
- #include "cengine.h"
- #include "assets/material.h"
- typedef struct {
- int bone_ids[3];
- float bone_weights[3];
- } vertex_weight;
- typedef struct {
- GLuint vertex_vbo;
- GLuint triangle_vbo;
- int num_verticies;
- int num_triangles;
- sphere bound;
- } renderable_surface;
- renderable_surface* renderable_surface_new(mesh* m);
- renderable_surface* renderable_surface_new_rigged(mesh* m, vertex_weight* weights);
- void renderable_surface_delete(renderable_surface* surface);
- typedef struct {
- renderable_surface** surfaces;
- int num_surfaces;
- bool is_rigged;
- asset_hndl material;
- } renderable;
- renderable* renderable_new();
- void renderable_delete(renderable* r);
- void renderable_add_mesh(renderable* r, mesh* m);
- void renderable_add_model(renderable* r, model* m);
- void renderable_set_material(renderable* r, asset_hndl mat);
- model* renderable_to_model(renderable* r);
- renderable* bmf_load_file(char* filename);
- renderable* obj_load_file(char* filename);
- renderable* smd_load_file(char* filename);
- renderable* ply_load_file(char* filename);
- void bmf_save_file(renderable* r, char* filename);
- #endif
|