goat3d

diff src/goat3d.cc @ 64:99715321ad6d

merged
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 17 Apr 2014 08:53:42 +0300
parents dad392c710df 76d0f55f9d5f
children 8970ca3d55e0
line diff
     1.1 --- a/src/goat3d.cc	Thu Apr 17 08:50:36 2014 +0300
     1.2 +++ b/src/goat3d.cc	Thu Apr 17 08:53:42 2014 +0300
     1.3 @@ -179,14 +179,14 @@
     1.4  	return res;
     1.5  }
     1.6  
     1.7 -GOAT3DAPI int goat3d_save_anim(const struct goat3d *g, const struct goat3d_node *root, const char *fname)
     1.8 +GOAT3DAPI int goat3d_save_anim(const struct goat3d *g, const char *fname)
     1.9  {
    1.10  	FILE *fp = fopen(fname, "wb");
    1.11  	if(!fp) {
    1.12  		return -1;
    1.13  	}
    1.14  
    1.15 -	int res = goat3d_save_anim_file(g, root, fp);
    1.16 +	int res = goat3d_save_anim_file(g, fp);
    1.17  	fclose(fp);
    1.18  	return res;
    1.19  }
    1.20 @@ -202,7 +202,7 @@
    1.21  	return goat3d_load_anim_io(g, &io);
    1.22  }
    1.23  
    1.24 -GOAT3DAPI int goat3d_save_anim_file(const struct goat3d *g, const struct goat3d_node *root, FILE *fp)
    1.25 +GOAT3DAPI int goat3d_save_anim_file(const struct goat3d *g, FILE *fp)
    1.26  {
    1.27  	goat3d_io io;
    1.28  	io.cls = fp;
    1.29 @@ -210,7 +210,7 @@
    1.30  	io.write = write_file;
    1.31  	io.seek = seek_file;
    1.32  
    1.33 -	return goat3d_save_anim_io(g, root, &io);
    1.34 +	return goat3d_save_anim_io(g, &io);
    1.35  }
    1.36  
    1.37  GOAT3DAPI int goat3d_load_anim_io(struct goat3d *g, struct goat3d_io *io)
    1.38 @@ -223,12 +223,12 @@
    1.39  	return 0;
    1.40  }
    1.41  
    1.42 -GOAT3DAPI int goat3d_save_anim_io(const struct goat3d *g, const struct goat3d_node *root, struct goat3d_io *io)
    1.43 +GOAT3DAPI int goat3d_save_anim_io(const struct goat3d *g, struct goat3d_io *io)
    1.44  {
    1.45  	if(goat3d_getopt(g, GOAT3D_OPT_SAVEXML)) {
    1.46 -		return g->scn->save_anim_xml(root, io) ? 0 : -1;
    1.47 +		return g->scn->save_anim_xml(io) ? 0 : -1;
    1.48  	}
    1.49 -	return g->scn->save_anim(root, io) ? 0 : -1;
    1.50 +	return g->scn->save_anim(io) ? 0 : -1;
    1.51  }
    1.52  
    1.53  
    1.54 @@ -264,6 +264,21 @@
    1.55  	g->scn->add_material(mtl);
    1.56  }
    1.57  
    1.58 +GOAT3DAPI int goat3d_get_mtl_count(struct goat3d *g)
    1.59 +{
    1.60 +	return g->scn->get_material_count();
    1.61 +}
    1.62 +
    1.63 +GOAT3DAPI struct goat3d_material *goat3d_get_mtl(struct goat3d *g, int idx)
    1.64 +{
    1.65 +	return (goat3d_material*)g->scn->get_material(idx);
    1.66 +}
    1.67 +
    1.68 +GOAT3DAPI struct goat3d_material *goat3d_get_mtl_by_name(struct goat3d *g, const char *name)
    1.69 +{
    1.70 +	return (goat3d_material*)g->scn->get_material(name);
    1.71 +}
    1.72 +
    1.73  GOAT3DAPI struct goat3d_material *goat3d_create_mtl(void)
    1.74  {
    1.75  	return new goat3d_material;
    1.76 @@ -422,6 +437,12 @@
    1.77  	goat3d_add_mesh_attrib4f(mesh, attrib, val, 0, 0, 1);
    1.78  }
    1.79  
    1.80 +GOAT3DAPI void goat3d_add_mesh_attrib2f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib,
    1.81 +		float x, float y)
    1.82 +{
    1.83 +	goat3d_add_mesh_attrib4f(mesh, attrib, x, y, 0, 1);
    1.84 +}
    1.85 +
    1.86  GOAT3DAPI void goat3d_add_mesh_attrib3f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib,
    1.87  		float x, float y, float z)
    1.88  {