meta shapes
[metatoy] / src / metaobj.h
diff --git a/src/metaobj.h b/src/metaobj.h
new file mode 100644 (file)
index 0000000..cd73e8a
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef METAOBJ_H_
+#define METAOBJ_H_
+
+
+struct mball {
+       float energy;
+       cgm_vec3 pos;
+};
+
+struct mcapsule {
+       float energy;
+       cgm_vec3 end[2];
+       float len;
+};
+
+struct mobject {
+       cgm_vec3 pos;
+       struct mball *balls;
+       struct mcapsule *caps;
+       int num_balls, num_caps;
+
+       void (*update)(struct mobject *mobj, float t);
+       float (*eval)(struct mobject *mobj, cgm_vec3 *pos);
+};
+
+struct mobject *metaobj_sflake(void);
+struct mobject *metaobj_sgi(void);
+
+#endif /* METAOBJ_H_ */