Index: /orxonox/trunk/src/simple_animation.cc
===================================================================
--- /orxonox/trunk/src/simple_animation.cc	(revision 3725)
+++ /orxonox/trunk/src/simple_animation.cc	(revision 3726)
@@ -23,71 +23,4 @@
 
 using namespace std;
-
-/**
-   \brief standard constructor
-   \param the point of the object
-   \param and the orientation of it
-   \param at this time
-*/
-KeyFrame::KeyFrame(Vector* point, Quaternion* orientation, float time)
-{
-  this->setRelCoor(point);
-  this->setRelDir(orientation);
-  this->time = time;
-}
-
-
-/**
-   \brief standard constructor
-   \param the point of the object
-   \param and the orientation of it
-   \param at this time
-   \param function of the velocity of the movement 
-*/
-KeyFrame::KeyFrame(Vector* point, Quaternion* orientation, float time, movementMode mode)
-{
-  this->setRelCoor(point);
-  this->setRelDir(orientation);
-  this->time = time;
-  this->mode = mode;
-}
-
-
-/**
-   \brief standard deconstructor
-*/
-KeyFrame::~KeyFrame()
-{
-}
-
-
-/**
-   \brief sets the important properties of a Keyframe
-   \param the point of the object
-   \param and the orientation of it
-   \param at this time
-*/
-void KeyFrame::set(Vector* point, Quaternion* orientation, float time)
-{
-  this->setRelCoor(point);
-  this->setRelDir(orientation);
-  this->time = time;
-}
-
-
-/**
-   \brief sets the important properties of a Keyframe
-   \param the point of the object
-   \param and the orientation of it
-   \param at this time
-   \param function of the velocity of the movement 
-*/
-void KeyFrame::set(Vector* point, Quaternion* orientation, float time, movementMode mode)
-{
-  this->setRelCoor(point);
-  this->setRelDir(orientation);
-  this->time = time;
-  this->mode = mode;
-}
 
 
@@ -137,5 +70,9 @@
 void SimpleAnimation::addKeyFrame(Vector* point, Quaternion* orientation, float time)
 {
-  KeyFrame* frame = new KeyFrame(point, orientation, time);
+  KeyFrame* frame = new KeyFrame;
+  frame->position = point;
+  frame->orientation = orientation;
+  frame->time = time;
+  frame->mode = DEFAULT_ANIMATION_MODE;
   this->frames->add(frame);
 }
@@ -151,5 +88,9 @@
 void SimpleAnimation::addKeyFrame(Vector* point, Quaternion* orientation, float time, movementMode mode)
 {
-  KeyFrame* frame = new KeyFrame(point, orientation, time, mode);
+  KeyFrame* frame = new KeyFrame;
+  frame->position = point;
+  frame->orientation = orientation;
+  frame->time = time;
+  frame->mode = mode;
   this->frames->add(frame);
 }
@@ -267,5 +208,5 @@
     case LINEAR:
 
-      *this->tmpVect = this->currentFrame->getAbsCoor() - this->lastFrame->getAbsCoor();
+      *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
       *this->tmpVect = *this->tmpVect * this->localTime / this->currentFrame->time;
       //this->setAbsCoordinate(this->tmpVect);
@@ -275,9 +216,9 @@
       break;
     case NEG_EXP:
-      *this->tmpVect = this->currentFrame->getAbsCoor() - this->lastFrame->getAbsCoor();
+      *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
       *this->tmpVect = *this->tmpVect * (1 - exp(- this->localTime / this->currentFrame->time));     
       break;
     case SIN:
-      *this->tmpVect = this->currentFrame->getAbsCoor() - this->lastFrame->getAbsCoor();
+      *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
       *this->tmpVect = *this->tmpVect * (1 - cos(- this->localTime / this->currentFrame->time));     
       break;
@@ -286,5 +227,5 @@
       break;
     case QUADRATIC:
-      *this->tmpVect = this->currentFrame->getAbsCoor() - this->lastFrame->getAbsCoor();      
+      *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
       *this->tmpVect = *this->tmpVect * 1/3 * ldexpf(this->localTime, 3);
       break;
Index: /orxonox/trunk/src/simple_animation.h
===================================================================
--- /orxonox/trunk/src/simple_animation.h	(revision 3725)
+++ /orxonox/trunk/src/simple_animation.h	(revision 3726)
@@ -12,24 +12,23 @@
 
 #include "base_object.h"
-#include "p_node.h"
 #include "list.h"
 
 
+class Vector;
+class Quaternion;
+class WorldEntity;
+class PNode;
+
 typedef enum movementMode{LINEAR=0, EXP, NEG_EXP, SIN, COS, QUADRATIC};
+#define DEFAULT_ANIMATION_MODE LINEAR
 
-
-//! KeyFrame Class
+//! KeyFrame Struct
 /**
    This represents one point with orientation of the animation
 */
-class KeyFrame : public PNode {
- public:
-  KeyFrame(Vector* point, Quaternion* orientation, float time);
-  KeyFrame(Vector* point, Quaternion* orientation, float time, movementMode mode); 
-  virtual ~KeyFrame();
-
-  void set(Vector* point, Quaternion* orientation, float time);
-  void set(Vector* point, Quaternion* orientation, float time, movementMode mode);
-  
+typedef struct KeyFrame {
+  Vector* position;
+  Quaternion* orientation;
+  WorldEntity* object;
   float time;
   movementMode mode;
@@ -69,5 +68,5 @@
   PNode* parent;
   
-  Vector* tmpVect;                 //<! this is the temporary vector save place
+  Vector* tmpVect;                 //<! this is the temporary vector save place - 
 
 };
