goat3d
diff src/goat3d.h @ 47:498ca7ac7047
- placed all the implementation stuff in the g3dimpl namespace
- added animation stuff to the public API
- started writing animation saving/loading
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 28 Dec 2013 06:47:39 +0200 |
parents | 1dcbe87b6a5d |
children | dad392c710df af1310ed212b |
line diff
1.1 --- a/src/goat3d.h Sun Dec 08 03:00:25 2013 +0200 1.2 +++ b/src/goat3d.h Sat Dec 28 06:47:39 2013 +0200 1.3 @@ -88,6 +88,16 @@ 1.4 GOAT3DAPI int goat3d_load_io(struct goat3d *g, struct goat3d_io *io); 1.5 GOAT3DAPI int goat3d_save_io(const struct goat3d *g, struct goat3d_io *io); 1.6 1.7 +/* load/save animation files (g must already be loaded to load animations) */ 1.8 +GOAT3DAPI int goat3d_load_anim(struct goat3d *g, const char *fname); 1.9 +GOAT3DAPI int goat3d_save_anim(const struct goat3d *g, const struct goat3d_node *root, const char *fname); 1.10 + 1.11 +GOAT3DAPI int goat3d_load_anim_file(struct goat3d *g, FILE *fp); 1.12 +GOAT3DAPI int goat3d_save_anim_file(const struct goat3d *g, const struct goat3d_node *root, FILE *fp); 1.13 + 1.14 +GOAT3DAPI int goat3d_load_anim_io(struct goat3d *g, struct goat3d_io *io); 1.15 +GOAT3DAPI int goat3d_save_anim_io(const struct goat3d *g, const struct goat3d_node *root, struct goat3d_io *io); 1.16 + 1.17 /* misc scene properties */ 1.18 GOAT3DAPI int goat3d_set_name(struct goat3d *g, const char *name); 1.19 GOAT3DAPI const char *goat3d_get_name(const struct goat3d *g); 1.20 @@ -147,9 +157,9 @@ 1.21 const void *data, int vnum); 1.22 GOAT3DAPI void goat3d_add_mesh_attrib1f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, float val); 1.23 GOAT3DAPI void goat3d_add_mesh_attrib3f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 1.24 - float x, float y, float z); 1.25 + float x, float y, float z); 1.26 GOAT3DAPI void goat3d_add_mesh_attrib4f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 1.27 - float x, float y, float z, float w); 1.28 + float x, float y, float z, float w); 1.29 /* returns a pointer to the beginning of the requested mesh attribute array */ 1.30 GOAT3DAPI void *goat3d_get_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib); 1.31 /* returns a pointer to the requested mesh attribute */ 1.32 @@ -216,6 +226,21 @@ 1.33 GOAT3DAPI void goat3d_add_node_child(struct goat3d_node *node, struct goat3d_node *child); 1.34 GOAT3DAPI int goat3d_get_node_child_count(const struct goat3d_node *node); 1.35 GOAT3DAPI struct goat3d_node *goat3d_get_node_child(const struct goat3d_node *node, int idx); 1.36 +GOAT3DAPI struct goat3d_node *goat3d_get_node_parent(const struct goat3d_node *node); 1.37 + 1.38 +GOAT3DAPI void goat3d_use_anim(struct goat3d_node *node, int idx); 1.39 +GOAT3DAPI void goat3d_use_anims(struct goat3d_node *node, int aidx, int bidx, float t); 1.40 +GOAT3DAPI void goat3d_use_anim_by_name(struct goat3d_node *node, const char *name); 1.41 +GOAT3DAPI void goat3d_use_anims_by_name(struct goat3d_node *node, const char *aname, const char *bname, float t); 1.42 + 1.43 +GOAT3DAPI int goat3d_get_active_anim(struct goat3d_node *node, int which); 1.44 +GOAT3DAPI float goat3d_get_active_anim_mix(struct goat3d_node *node); 1.45 + 1.46 +GOAT3DAPI int goat3d_get_anim_count(struct goat3d_node *node); 1.47 +GOAT3DAPI void goat3d_add_anim(struct goat3d_node *root); 1.48 + 1.49 +GOAT3DAPI void goat3d_set_anim_name(struct goat3d_node *root, const char *name); 1.50 +GOAT3DAPI const char *goat3d_get_anim_name(struct goat3d_node *node); 1.51 1.52 GOAT3DAPI void goat3d_set_node_position(struct goat3d_node *node, float x, float y, float z, long tmsec); 1.53 GOAT3DAPI void goat3d_set_node_rotation(struct goat3d_node *node, float qx, float qy, float qz, float qw, long tmsec);