forked from bobsayshilol/engine-sim
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfunction.h
More file actions
49 lines (35 loc) · 1.17 KB
/
function.h
File metadata and controls
49 lines (35 loc) · 1.17 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef ATG_ENGINE_SIM_FUNCTION_H
#define ATG_ENGINE_SIM_FUNCTION_H
#include "gaussian_filter.h"
class Function {
protected:
static GaussianFilter *DefaultGaussianFilter;
public:
Function();
virtual ~Function();
void initialize(int size, double filterRadius, GaussianFilter *filter = nullptr);
void resize(int newCapacity);
void destroy();
void setInputScale(double s) { m_inputScale = s; }
void setOutputScale(double s) { m_outputScale = s; }
void addSample(double x, double y);
double sampleTriangle(double x) const;
double sampleGaussian(double x) const;
double triangle(double x) const;
int closestSample(double x) const;
bool isOrdered() const;
void getDomain(double *x0, double *x1);
void getRange(double *y0, double *y1);
protected:
double *m_x;
double *m_y;
double m_yMin;
double m_yMax;
double m_inputScale;
double m_outputScale;
double m_filterRadius;
int m_capacity;
int m_size;
GaussianFilter *m_gaussianFilter;
};
#endif /* ATG_ENGINE_SIM_FUNCTION_H */