blob: c896a23ce79a9f9d037f8fb70ca5e4e9ffa31822 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <cmath>
#include "vec3.h"
using namespace std;
class Curve {
public:
virtual vec3 integrate(vec3 (*integrand)(vec3 s, vec3 ds), double delta) = 0;
};
class LineSegment : Curve {
private:
vec3 a, b;
public:
LineSegment(vec3 a_, vec3 b_) : a(a_), b(b_) {};
vec3 integrate(vec3 (*integrand)(vec3 s, vec3 ds), double delta);
};
class Arc : Curve {
private:
vec3 center;
double radius;
double angle[2]; /* start and end angles */
public:
LineSegment(vec3 a_, vec3 b_) : a(a_), b(b_) {};
vec3 integrate(vec3 (*integrand)(vec3 s, vec3 ds), double delta);
};
|