aboutsummaryrefslogtreecommitdiff
path: root/include/fml/manifold.h
blob: 4f3664f0ef1481c934960d2367613f2baee11f4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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