Index: orxonox/trunk/src/animation.h
===================================================================
--- orxonox/trunk/src/animation.h	(revision 3847)
+++ orxonox/trunk/src/animation.h	(revision 3848)
@@ -48,5 +48,5 @@
 			    ANIM_INF_REWIND};//, ANIM_DELETE}
 
-typedef struct AnimKeyFrame
+typedef struct KeyFrameF
 {
   float duration;
@@ -128,7 +128,7 @@
   //  ANIM_FUNCTION animFunc;
   float (tAnimation<T>::*animFunc)(float) const;
-  AnimKeyFrame* currentKeyFrame;
-  AnimKeyFrame* nextKeyFrame;
-  tList<AnimKeyFrame>* keyFrameList;
+  KeyFrameF* currentKeyFrame;
+  KeyFrameF* nextKeyFrame;
+  tList<KeyFrameF>* keyFrameList;
 
 
@@ -151,6 +151,6 @@
 {
   // create a new List
-  this->keyFrameList = new tList<AnimKeyFrame>();
-  AnimKeyFrame* tmpKeyFrame = new AnimKeyFrame;
+  this->keyFrameList = new tList<KeyFrameF>();
+  KeyFrameF* tmpKeyFrame = new KeyFrameF;
   tmpKeyFrame->value = 0.0;
   tmpKeyFrame->duration = 1.0;
@@ -174,6 +174,6 @@
 {
   // delete all the KeyFrames
-  tIterator<AnimKeyFrame>* itKF = keyFrameList->getIterator();
-  AnimKeyFrame*  enumKF = itKF->nextElement();
+  tIterator<KeyFrameF>* itKF = keyFrameList->getIterator();
+  KeyFrameF*  enumKF = itKF->nextElement();
   while (enumKF)
     {
@@ -209,9 +209,9 @@
   
 
-  AnimKeyFrame* tmpKeyFrame;
+  KeyFrameF* tmpKeyFrame;
     
   if (bHasKeys)
     {
-      tmpKeyFrame = new AnimKeyFrame;
+      tmpKeyFrame = new KeyFrameF;
       if (this->currentKeyFrame == this->nextKeyFrame)
 	this->nextKeyFrame = tmpKeyFrame;
Index: orxonox/trunk/src/simple_animation.cc
===================================================================
--- orxonox/trunk/src/simple_animation.cc	(revision 3847)
+++ orxonox/trunk/src/simple_animation.cc	(revision 3848)
@@ -26,4 +26,31 @@
 
 
+Animation3D::Animation3D(void)
+{
+
+}
+
+Animation3D::~Animation3D(void)
+{
+
+}
+
+
+void Animation3D::rewind(void)
+{
+
+}
+
+
+void Animation3D::tick(float timePassed)
+{
+
+}
+
+
+
+
+
+
 
 SimpleAnimation* SimpleAnimation::singletonRef = 0;
@@ -45,5 +72,5 @@
 {
    this->setClassName ("SimpleAnimation");
-   this->frames = new tList<KeyFrame>();
+   this->frames = new tList<KeyFrame3D>();
    this->animators = new tList<Animation3D>();
    this->localTime = 0;
@@ -64,6 +91,6 @@
 SimpleAnimation::~SimpleAnimation () 
 {
-  tIterator<KeyFrame>* iterator = this->frames->getIterator();
-  KeyFrame* frame = iterator->nextElement(); 
+  tIterator<KeyFrame3D>* iterator = this->frames->getIterator();
+  KeyFrame3D* frame = iterator->nextElement(); 
   while( frame != NULL) 
     { 
@@ -106,5 +133,5 @@
   Vector* lastPosition;
   Vector* tmpVect;
-  tList<KeyFrame>* frames;
+  tList<KeyFrame3D>* frames;
   animationMode animMode;
   movementMode movMode;
@@ -126,5 +153,5 @@
       anim->lastPosition = new Vector();
       anim->tmpVect = new Vector();
-      anim->frames = new tList<KeyFrame>();
+      anim->frames = new tList<KeyFrame3D>();
       anim->animMode = LOOP;
       anim->bRunning = false;
@@ -150,5 +177,5 @@
       return;
     }
-  KeyFrame* frame = new KeyFrame;
+  KeyFrame3D* frame = new KeyFrame3D;
   frame->position = point;
   frame->direction = direction;
@@ -174,5 +201,5 @@
       return;
     }
-  KeyFrame* frame = new KeyFrame;
+  KeyFrame3D* frame = new KeyFrame3D;
   frame->position = point;
   frame->direction = direction;
@@ -187,5 +214,5 @@
    \param the keyframe to add
 */
-void SimpleAnimation::addKeyFrame(KeyFrame* frame)
+void SimpleAnimation::addKeyFrame(KeyFrame3D* frame)
 {
   if( !this->bDescriptive || this->workingAnimator == NULL)
@@ -215,6 +242,6 @@
 {
   /*
-  tIterator<KeyFrame>* iterator = this->frames->getIterator();
-  KeyFrame* frame = iterator->nextElement(); 
+  tIterator<KeyFrame3D>* iterator = this->frames->getIterator();
+  KeyFrame3D* frame = iterator->nextElement(); 
   while( frame != NULL) 
     { 
@@ -225,5 +252,5 @@
   delete this->frames;
 
-  this->frames = new tList<KeyFrame>();
+  this->frames = new tList<KeyFrame3D>();
   this->localTime = 0;
   this->bRunning = false;
Index: orxonox/trunk/src/simple_animation.h
===================================================================
--- orxonox/trunk/src/simple_animation.h	(revision 3847)
+++ orxonox/trunk/src/simple_animation.h	(revision 3848)
@@ -13,5 +13,5 @@
 #include "base_object.h"
 #include "list.h"
-#include "animation_player.h"
+#include "animation.h"
 
 
@@ -30,5 +30,5 @@
    This represents one point with direction of the animation
 */
-typedef struct KeyFrame {
+typedef struct KeyFrame3D {
   Vector* position;
   Quaternion* direction;
@@ -42,7 +42,34 @@
    This represents an animation for a object
 */
-class Animation3D
+class Animation3D : public Animation
 {
  public:
+  Animation3D(void);
+  virtual ~Animation3D(void);
+    
+  virtual void rewind(void);
+
+  void addKeyFrame(Vector* point, Quaternion* direction, float time, ANIM_FUNCTION animFunc = ANIM_LINEAR);
+  void addKeyFrame(KeyFrame3D* frame);
+
+  virtual void tick(float timePassed);
+
+  // animation functions
+  void setAnimFunc(ANIM_FUNCTION animFunc);
+
+  float constant(float timePassed) const;
+  float linear(float timePassed) const;
+  float sine(float timePassed) const;
+  float cosine(float timePassed) const;
+  float exp(float timePassed) const;
+  float negExp(float timePassed) const;
+  float quadratic(float timePassed) const;
+  float random(float timePassed) const;
+  //  ANIM_FUNCTION animFunc;
+  KeyFrame3D* currentKeyFrame;
+  KeyFrame3D* nextKeyFrame;
+  tList<KeyFrame3D>* keyFrameList;
+
+  // private
   WorldEntity* object;
   Vector* lastPosition;
@@ -51,7 +78,7 @@
   float localTime;
 
-  tList<KeyFrame>* frames;
-  KeyFrame* currentFrame;
-  KeyFrame* lastFrame;
+  tList<KeyFrame3D>* frames;
+  KeyFrame3D* currentFrame;
+  KeyFrame3D* lastFrame;
 
   bool bRunning;
@@ -75,5 +102,5 @@
   void addKeyFrame(Vector* point, Quaternion* direction, float time);
   void addKeyFrame(Vector* point, Quaternion* direction, float time, movementMode mode);
-  void addKeyFrame(KeyFrame* frame);
+  void addKeyFrame(KeyFrame3D* frame);
   void setAnimationMode(animationMode mode);
   void reset();
@@ -94,8 +121,8 @@
   bool bDescriptive;               //<! is true, when AnimatorBegin() was executed but no AnimatorEnd() yet: in describtive mode: pass commands
   bool bRunning;                   //<! is set, when the animation is running
-  tList<KeyFrame>* frames;         //<! where keyframes are stored in
+  tList<KeyFrame3D>* frames;         //<! where keyframes are stored in
   tList<Animation3D>* animators;      //<! a list of animation's
-  KeyFrame* currentFrame;          //<! the frame that is been played now
-  KeyFrame* lastFrame;
+  KeyFrame3D* currentFrame;          //<! the frame that is been played now
+  KeyFrame3D* lastFrame;
   Vector* lastPosition;
   movementMode mode;               //<! this is an enum of the mode, how the speed is distributed
Index: orxonox/trunk/src/story_entities/world.cc
===================================================================
--- orxonox/trunk/src/story_entities/world.cc	(revision 3847)
+++ orxonox/trunk/src/story_entities/world.cc	(revision 3848)
@@ -484,44 +484,44 @@
 	    this->spawn(c);
 	    
-	   
-	    KeyFrame* f1 = new KeyFrame;
-	    f1->position = new Vector(-1.1, 0.0, 2.6);
-	    f1->direction = new Quaternion();
-	    f1->time = 1.0;
-	    f1->mode = NEG_EXP;
-
-
-	    KeyFrame* f2 = new KeyFrame;
-	    f2->position = new Vector(-2.1, 0.0, 2.6);
-	    f2->direction = new Quaternion();
-	    f2->time = 0.1;
-	    f2->mode = NEG_EXP;
-
-	    KeyFrame* f3 = new KeyFrame;
-	    f3->position = new Vector(10.0, 2.0, -1.0);
-	    f3->direction = new Quaternion();
-	    f3->time = 0.2;
-	    f3->mode = NEG_EXP;
-
-	    KeyFrame* f4 = new KeyFrame;
-	    f4->position = new Vector(10.0, 5.0, -1.0);
-	    f4->direction = new Quaternion();
-	    f4->time = 1.0;
-	    f4->mode = NEG_EXP;
-
-
-
-	    this->simpleAnimation->animatorBegin();
-	    this->simpleAnimation->selectObject(b);
-	    this->simpleAnimation->setAnimationMode(SINGLE);
-	    this->simpleAnimation->addKeyFrame(f1);
-	    this->simpleAnimation->addKeyFrame(f2);
-	    this->simpleAnimation->start();
-	    this->simpleAnimation->selectObject(c);
-	    this->simpleAnimation->addKeyFrame(f3);
-	    this->simpleAnimation->addKeyFrame(f4);
-	    this->simpleAnimation->start();
-	    this->simpleAnimation->animatorEnd();
-
+	    /*	   
+		  KeyFrame* f1 = new KeyFrame;
+		  f1->position = new Vector(-1.1, 0.0, 2.6);
+		  f1->direction = new Quaternion();
+		  f1->time = 1.0;
+		  f1->mode = NEG_EXP;
+		  
+		  
+		  KeyFrame* f2 = new KeyFrame;
+		  f2->position = new Vector(-2.1, 0.0, 2.6);
+		  f2->direction = new Quaternion();
+		  f2->time = 0.1;
+		  f2->mode = NEG_EXP;
+		  
+		  KeyFrame* f3 = new KeyFrame;
+		  f3->position = new Vector(10.0, 2.0, -1.0);
+		  f3->direction = new Quaternion();
+		  f3->time = 0.2;
+		  f3->mode = NEG_EXP;
+		  
+		  KeyFrame* f4 = new KeyFrame;
+		  f4->position = new Vector(10.0, 5.0, -1.0);
+		  f4->direction = new Quaternion();
+		  f4->time = 1.0;
+		  f4->mode = NEG_EXP;
+		  
+		  
+		  
+		  this->simpleAnimation->animatorBegin();
+		  this->simpleAnimation->selectObject(b);
+		  this->simpleAnimation->setAnimationMode(SINGLE);
+		  this->simpleAnimation->addKeyFrame(f1);
+		  this->simpleAnimation->addKeyFrame(f2);
+		  this->simpleAnimation->start();
+		  this->simpleAnimation->selectObject(c);
+		  this->simpleAnimation->addKeyFrame(f3);
+		  this->simpleAnimation->addKeyFrame(f4);
+		  this->simpleAnimation->start();
+		  this->simpleAnimation->animatorEnd();
+	    */
 
 	    /*
