Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/util/animation/animation3d.h @ 3871

Last change on this file since 3871 was 3868, checked in by bensch, 20 years ago

orxonox/trunk: moved the animation-stuff to src/util/animation

File size: 1.9 KB
RevLine 
[3851]1/*!
2    \file animation3d.h
3*/
4
[3863]5
[3851]6#include "animation.h"
7
8#include "vector.h"
9class PNode;
10
11//! KeyFrame3D Struct
12/**
13   This represents one point with direction of the animation
14*/
15typedef struct KeyFrame3D {
[3855]16  float duration;                   //!< The duration of this KeyFrame
17  Vector position;                  //!< The position of this KeyFrame
18  Quaternion direction;             //!< The direction of this KeyFrame
19  ANIM_FUNCTION animFunc;           //!< with whitch function to iterate to the next KeyFrame3D
[3851]20};
21
22//! Animation Struct
23/**
24   This represents an animation for a object
25*/
26class Animation3D : public Animation
27{
28 public:
[3852]29  Animation3D(PNode* object);
[3851]30  virtual ~Animation3D(void);
31   
32  virtual void rewind(void);
33
34  void addKeyFrame(Vector position, Quaternion direction, float time, ANIM_FUNCTION animFunc = ANIM_LINEAR);
[3855]35  //  void addKeyFrame(KeyFrame3D* frame);
[3851]36
[3852]37  virtual void tick(float dt);
[3851]38
[3859]39 private:
[3851]40  // animation functions
41  void setAnimFunc(ANIM_FUNCTION animFunc);
[3852]42  void constant(float timePassed) const;
43  void linear(float timePassed) const;
44  void sine(float timePassed) const;
45  void cosine(float timePassed) const;
46  void exp(float timePassed) const;
47  void negExp(float timePassed) const;
48  void quadratic(float timePassed) const;
49  void random(float timePassed) const;
[3851]50  //  ANIM_FUNCTION animFunc;
[3855]51  void (Animation3D::*animFunc)(float) const;      //!< A Function for the AnimationType
[3851]52
[3855]53  KeyFrame3D* currentKeyFrame;                     //!< The current KeyFrame
54  KeyFrame3D* nextKeyFrame;                        //!< The KeyFrame we iterate to
55  tList<KeyFrame3D>* keyFrameList;                 //!< The KeyFrameList
56
[3851]57  // more class-local description
[3855]58  PNode* object;                                   //!< The Object from which to Animate something
59  Vector lastPosition;   //!< ??
60  Vector tmpVect;        //!< what for??
61  float deltaT;          //!< ??
[3851]62};
Note: See TracBrowser for help on using the repository browser.