aboutsummaryrefslogtreecommitdiff
path: root/include/fml/manifold.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/fml/manifold.h')
-rw-r--r--include/fml/manifold.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/fml/manifold.h b/include/fml/manifold.h
new file mode 100644
index 0000000..4f3664f
--- /dev/null
+++ b/include/fml/manifold.h
@@ -0,0 +1,20 @@
+#ifndef MANIFOLD_H
+#define MANIFOLD_H
+
+#include <cmath>
+#include <iostream>
+
+#include "fml.h"
+#include "vec3.h"
+
+namespace fml {
+ /* All manifolds inherit this class */
+ class Manifold {
+ public:
+ virtual vec3 integrate(vec3 (*integrand)(vec3 s, vec3 ds), scalar delta) const = 0;
+ virtual const char *name() const = 0;
+ virtual const int dimension() const = 0; // 0 = point, 1 = curve, 2 = surface, 3 = solid
+ };
+};
+
+#endif