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);