cd73e8a69b30d18c80f1a651fad7bbb03f05b21a
[metatoy] / src / metaobj.h
1 #ifndef METAOBJ_H_
2 #define METAOBJ_H_
3
4
5 struct mball {
6         float energy;
7         cgm_vec3 pos;
8 };
9
10 struct mcapsule {
11         float energy;
12         cgm_vec3 end[2];
13         float len;
14 };
15
16 struct mobject {
17         cgm_vec3 pos;
18         struct mball *balls;
19         struct mcapsule *caps;
20         int num_balls, num_caps;
21
22         void (*update)(struct mobject *mobj, float t);
23         float (*eval)(struct mobject *mobj, cgm_vec3 *pos);
24 };
25
26 struct mobject *metaobj_sflake(void);
27 struct mobject *metaobj_sgi(void);
28
29 #endif  /* METAOBJ_H_ */