NimbRo ROS Soccer Package
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
KeyframePlayer.h
1 #ifndef KEYFRAMEPLAYER_H_
2 #define KEYFRAMEPLAYER_H_
3 #include "keyframe_player/Keyframe.h"
4 #include <QList>
5 
6 namespace kf_player
7 {
8 
9 class KeyframePlayer
10 {
11 public:
12 
13  double V;
14  double A;
15  double VX;
16 
17  QList<Keyframe> keyframes;
18  QList<Keyframe> commands;
19  Keyframe currentState;
20 
21 public:
22  KeyframePlayer();
23  virtual ~KeyframePlayer() {};
24 
25  void setA(double A);
26  void setV(double V);
27  void setVX(double VX);
28 
29  void reset();
30  void clear();
31 
32  bool addKeyframe(Keyframe kf);
33  bool addKeyframe(double t, double x, double v, double effort, double suppLeftLeg, double suppRightLeg,double pGain, double iGain, double dGain, double limit, gainSelectEnum gainSelect, double roll, double pitch, double yaw) { return addKeyframe(Keyframe(t, x, v, effort, suppLeftLeg, suppRightLeg, pGain,iGain,dGain,limit,gainSelect, roll, pitch,yaw)); }
34 
35  void calculateCommands();
36 
37  bool atEnd();
38  Keyframe step(double t);
39  Keyframe getCurrentState();
40  Keyframe evaluateAt(double t);
41  double totalTime();
42  double currentTime();
43  double minimumTime();
44 
45 private:
46  void transformState(double a, double t, Keyframe& kf);
47 };
48 
49 }
50 
51 #endif // KEYFRAMEPLAYER_H_