Index: /orxonox/trunk/src/animation.h
===================================================================
--- /orxonox/trunk/src/animation.h	(revision 3851)
+++ /orxonox/trunk/src/animation.h	(revision 3852)
@@ -49,5 +49,5 @@
   virtual void rewind() = 0;
 
-  virtual void tick(float timePassed) = 0;
+  virtual void tick(float dt) = 0;
 
   /* implement in subclasses:
Index: /orxonox/trunk/src/animation3d.cc
===================================================================
--- /orxonox/trunk/src/animation3d.cc	(revision 3851)
+++ /orxonox/trunk/src/animation3d.cc	(revision 3852)
@@ -27,6 +27,8 @@
 
 
-Animation3D::Animation3D(void)
-{
+Animation3D::Animation3D(PNode* object)
+{
+  this->object = object;
+
   // create a new List
   this->keyFrameList = new tList<KeyFrame3D>();
@@ -95,9 +97,9 @@
 }
 
-void Animation3D::tick(float timePassed)
+void Animation3D::tick(float dt)
 {
   if (this->bRunning)
     { 
-      this->localTime += timePassed;
+      this->localTime += dt;
       if (localTime >= this->currentKeyFrame->duration)
 	{
@@ -201,41 +203,50 @@
 }
 
-float Animation3D::constant(float timePassed) const
-{
-
-}
-
-float Animation3D::linear(float timePassed) const
-{
-
-}
-
-float Animation3D::sine(float timePassed) const
-{
-
-}
-
-float Animation3D::cosine(float timePassed) const
-{
-
-}
-
-float Animation3D::exp(float timePassed) const
-{
-
-}
-
-float Animation3D::negExp(float timePassed) const
-{
-
-}
-
-float Animation3D::quadratic(float timePassed) const
-{
-
-}
-
-float Animation3D::random(float timePassed) const
-{
-
-}
+void Animation3D::constant(float timePassed) const
+{
+  this->object->setRelCoor(this->currentKeyFrame->position);
+
+  /*
+    this->tmpVect = this->nextKeyFrame->position - this->currentKeyFrame->position;
+    this->tmpVect = this->tmpVect * this->localTime / this->currentKeyFrame->duration;
+    this->currentFrame->object->setRelCoor(*this->lastFrame->position + *this->tmpVect);
+    this->lastPosition = this->tmpVect;
+  */
+}
+
+void Animation3D::linear(float timePassed) const
+{
+  this->object->setRelCoor(this->currentKeyFrame->position +
+			  (this->nextKeyFrame->position - this->currentKeyFrame->position) * 
+			  (timePassed/this->currentKeyFrame->duration));
+}
+
+void Animation3D::sine(float timePassed) const
+{
+
+}
+
+void Animation3D::cosine(float timePassed) const
+{
+
+}
+
+void Animation3D::exp(float timePassed) const
+{
+
+}
+
+void Animation3D::negExp(float timePassed) const
+{
+
+}
+
+void Animation3D::quadratic(float timePassed) const
+{
+
+}
+
+void Animation3D::random(float timePassed) const
+{
+
+}
Index: /orxonox/trunk/src/animation3d.h
===================================================================
--- /orxonox/trunk/src/animation3d.h	(revision 3851)
+++ /orxonox/trunk/src/animation3d.h	(revision 3852)
@@ -26,5 +26,5 @@
 {
  public:
-  Animation3D(void);
+  Animation3D(PNode* object);
   virtual ~Animation3D(void);
     
@@ -34,5 +34,5 @@
   void addKeyFrame(KeyFrame3D* frame);
 
-  virtual void tick(float timePassed);
+  virtual void tick(float dt);
 
   // animation functions
@@ -40,17 +40,17 @@
 
  private:
-  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;
+  void constant(float timePassed) const;
+  void linear(float timePassed) const;
+  void sine(float timePassed) const;
+  void cosine(float timePassed) const;
+  void exp(float timePassed) const;
+  void negExp(float timePassed) const;
+  void quadratic(float timePassed) const;
+  void random(float timePassed) const;
   //  ANIM_FUNCTION animFunc;
   KeyFrame3D* currentKeyFrame;
   KeyFrame3D* nextKeyFrame;
   tList<KeyFrame3D>* keyFrameList;
-  float (Animation3D::*animFunc)(float) const;
+  void (Animation3D::*animFunc)(float) const;
 
   // more class-local description
Index: /orxonox/trunk/src/t_animation.h
===================================================================
--- /orxonox/trunk/src/t_animation.h	(revision 3851)
+++ /orxonox/trunk/src/t_animation.h	(revision 3852)
@@ -36,5 +36,5 @@
   void addKeyFrame(float value, float duration, ANIM_FUNCTION animFunc = ANIM_LINEAR);
 
-  virtual void tick(float timePassed);
+  virtual void tick(float dt);
 
   // animation functions
@@ -154,9 +154,9 @@
 
 template<class T>
-void tAnimation<T>::tick(float timePassed)
+void tAnimation<T>::tick(float dt)
 {
   if (this->bRunning)
     {
-      this->localTime += timePassed;
+      this->localTime += dt;
       if (localTime >= this->currentKeyFrame->duration)
 	{
Index: /orxonox/trunk/src/world_entities/test_gun.cc
===================================================================
--- /orxonox/trunk/src/world_entities/test_gun.cc	(revision 3851)
+++ /orxonox/trunk/src/world_entities/test_gun.cc	(revision 3852)
@@ -53,6 +53,7 @@
 
 
-  this->animaton = new Animation3D;
   this->dummy1 = new WorldEntity(); // a world entity that is not drawed: use this for the weapon 
+  this->animaton = new Animation3D(dummy1);
+
   /*
   parent->addChild(this->dummy1, PNODE_ALL);
