]> git.tdb.fi Git - libs/demoscene.git/blob - source/action.h
Turn interpolation action mode into an enum
[libs/demoscene.git] / source / action.h
1 #ifndef MSP_DEMOSCENE_ACTION_H_
2 #define MSP_DEMOSCENE_ACTION_H_
3
4 class Action
5 {
6 protected:
7         Action() { }
8 public:
9         virtual ~Action() { }
10
11         virtual void start(float, float) { }
12         virtual void beat(int) { }
13         virtual void tick(float, float) { }
14         virtual void end(float) { }
15 };
16
17 class InterpolationAction: public Action
18 {
19 protected:
20         enum Mode
21         {
22                 LINEAR,
23                 HERMITE
24         };
25
26         Mode mode;
27         float start_beat;
28         float duration;
29
30         InterpolationAction(Mode = LINEAR);
31
32 public:
33         virtual void start(float, float);
34         virtual void tick(float, float);
35         virtual void end(float);
36         virtual void interpolate(float, float) { }
37 };
38
39 #endif