aboutsummaryrefslogtreecommitdiff
path: root/include/fml/manifold.h
diff options
context:
space:
mode:
authorFranklin Wei <me@fwei.tk>2019-05-31 19:08:41 -0400
committerFranklin Wei <me@fwei.tk>2019-05-31 19:08:41 -0400
commita99daf4a49dfbe9f4ec9bd16da8c2ad274b592a4 (patch)
tree22da4193266a9091dbcaf86344289af0de2e6102 /include/fml/manifold.h
parentf9be2ace4ca871d7ad68c1a4dbdcff87511d838b (diff)
downloadlibfml-a99daf4a49dfbe9f4ec9bd16da8c2ad274b592a4.zip
libfml-a99daf4a49dfbe9f4ec9bd16da8c2ad274b592a4.tar.gz
libfml-a99daf4a49dfbe9f4ec9bd16da8c2ad274b592a4.tar.bz2
libfml-a99daf4a49dfbe9f4ec9bd16da8c2ad274b592a4.tar.xz
Import manifold code from fieldviz
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