#ifndef MANIFOLD_H #define MANIFOLD_H #include #include #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