Index: /orxonox/trunk/src/Makefile.am
===================================================================
--- /orxonox/trunk/src/Makefile.am	(revision 3850)
+++ /orxonox/trunk/src/Makefile.am	(revision 3851)
@@ -34,6 +34,6 @@
 		 track_node.cc \
 		 animation.cc \
+		 animation3d.cc \
 		 animation_player.cc \
-		 simple_animation.cc \
 		 garbage_collector.cc \
 		 story_entities/story_entity.cc \
@@ -86,6 +86,7 @@
 		 track_node.h \
 		 animation.h \
+		 t_animation.h \
+		 animation3d.h \
 		 animation_player.h \
-		 simple_animation.h \
 		 garbage_collector.h \
 		 story_entities/story_entity.h \
Index: /orxonox/trunk/src/Makefile.in
===================================================================
--- /orxonox/trunk/src/Makefile.in	(revision 3850)
+++ /orxonox/trunk/src/Makefile.in	(revision 3851)
@@ -56,6 +56,6 @@
 	command_node.$(OBJEXT) keynames.$(OBJEXT) camera.$(OBJEXT) \
 	track_manager.$(OBJEXT) track_node.$(OBJEXT) \
-	animation.$(OBJEXT) animation_player.$(OBJEXT) \
-	simple_animation.$(OBJEXT) garbage_collector.$(OBJEXT) \
+	animation.$(OBJEXT) animation3d.$(OBJEXT) \
+	animation_player.$(OBJEXT) garbage_collector.$(OBJEXT) \
 	story_entity.$(OBJEXT) campaign.$(OBJEXT) world.$(OBJEXT) \
 	world_entity.$(OBJEXT) player.$(OBJEXT) environment.$(OBJEXT) \
@@ -77,4 +77,5 @@
 am__depfiles_maybe = depfiles
 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ai.Po ./$(DEPDIR)/animation.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/animation3d.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/animation_player.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/array.Po ./$(DEPDIR)/base_entity.Po \
@@ -99,7 +100,6 @@
 @AMDEP_TRUE@	./$(DEPDIR)/projectile.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/resource_manager.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/satellite.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/simple_animation.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/skybox.Po ./$(DEPDIR)/skysphere.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/satellite.Po ./$(DEPDIR)/skybox.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/skysphere.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/story_entity.Po ./$(DEPDIR)/terrain.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/test_bullet.Po ./$(DEPDIR)/test_gun.Po \
@@ -247,6 +247,6 @@
 		 track_node.cc \
 		 animation.cc \
+		 animation3d.cc \
 		 animation_player.cc \
-		 simple_animation.cc \
 		 garbage_collector.cc \
 		 story_entities/story_entity.cc \
@@ -299,6 +299,7 @@
 		 track_node.h \
 		 animation.h \
+		 t_animation.h \
+		 animation3d.h \
 		 animation_player.h \
-		 simple_animation.h \
 		 garbage_collector.h \
 		 story_entities/story_entity.h \
@@ -425,4 +426,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ai.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/animation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/animation3d.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/animation_player.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
@@ -456,5 +458,4 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource_manager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/satellite.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_animation.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skybox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skysphere.Po@am__quote@
Index: /orxonox/trunk/src/animation.h
===================================================================
--- /orxonox/trunk/src/animation.h	(revision 3850)
+++ /orxonox/trunk/src/animation.h	(revision 3851)
@@ -49,5 +49,5 @@
   virtual void rewind() = 0;
 
-  virtual void tick(float time) = 0;
+  virtual void tick(float timePassed) = 0;
 
   /* implement in subclasses:
@@ -64,5 +64,5 @@
      \returns the BaseObject, this animation operates on
   */
-  BaseObject* getBaseObject(void) const { return baseObject;}
+  BaseObject* getBaseObject(void) const {return baseObject;}
 
  protected:
Index: /orxonox/trunk/src/animation3d.cc
===================================================================
--- /orxonox/trunk/src/animation3d.cc	(revision 3851)
+++ /orxonox/trunk/src/animation3d.cc	(revision 3851)
@@ -0,0 +1,241 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: Benjamin Grauer
+
+   2005-04-17: Benjamin Grauer
+          Rewritte all functions, so it will fit into the Animation-class
+*/
+
+
+#include "animation3d.h"
+
+#include "stdincl.h"
+#include "vector.h"
+#include "p_node.h"
+
+using namespace std;
+
+
+Animation3D::Animation3D(void)
+{
+  // create a new List
+  this->keyFrameList = new tList<KeyFrame3D>();
+  KeyFrame3D* tmpKeyFrame = new KeyFrame3D;
+  tmpKeyFrame->position = Vector();
+  tmpKeyFrame->direction = Quaternion();
+  keyFrameList->add(tmpKeyFrame);
+
+  this->currentKeyFrame = tmpKeyFrame;
+  this->nextKeyFrame = tmpKeyFrame;
+
+  this->animFunc = &Animation3D::linear;
+}
+
+Animation3D::~Animation3D(void)
+{
+  // delete all the KeyFrames
+  tIterator<KeyFrame3D>* itKF = keyFrameList->getIterator();
+  KeyFrame3D*  enumKF = itKF->nextElement();
+  while (enumKF)
+    {
+      delete enumKF;
+      enumKF = itKF->nextElement();
+    }
+  delete itKF;
+  delete this->keyFrameList;
+}
+
+
+void Animation3D::rewind(void)
+{
+  this->currentKeyFrame = keyFrameList->firstElement();
+  this->nextKeyFrame = keyFrameList->nextElement(keyFrameList->firstElement());
+  this->localTime = 0.0;
+}
+
+
+void Animation3D::addKeyFrame(Vector position, Quaternion direction, float duration = 1.0, ANIM_FUNCTION animFunc)
+{
+  // some small check
+  if (duration <= 0.0)
+    duration = 1.0;
+
+  KeyFrame3D* tmpKeyFrame;
+    
+  if (bHasKeys)
+    {
+      tmpKeyFrame = new KeyFrame3D;
+      if (this->currentKeyFrame == this->nextKeyFrame)
+	this->nextKeyFrame = tmpKeyFrame;
+      this->keyFrameList->add(tmpKeyFrame);
+
+    }
+  else
+    {
+      tmpKeyFrame = this->keyFrameList->firstElement();
+      bHasKeys = true;
+      this->setAnimFunc(animFunc);
+    }
+
+  tmpKeyFrame->position = position;
+  tmpKeyFrame->direction = direction;
+  tmpKeyFrame->duration = duration;
+  tmpKeyFrame->animFunc = animFunc;
+
+}
+
+void Animation3D::tick(float timePassed)
+{
+  if (this->bRunning)
+    { 
+      this->localTime += timePassed;
+      if (localTime >= this->currentKeyFrame->duration)
+	{
+	  // switching to the next Key-Frame
+	  this->localTime -= this->currentKeyFrame->duration;
+	  this->currentKeyFrame = this->nextKeyFrame;
+	  // checking, if we should still Play the animation
+	  if (this->currentKeyFrame == this->keyFrameList->lastElement())
+	    {
+	      switch (this->postInfinity)
+		{
+		case ANIM_INF_CONSTANT:
+		  this->bRunning = false;
+		  break;
+		case ANIM_INF_REWIND:
+		  break;
+		}
+	    }
+	  this->nextKeyFrame = this->keyFrameList->nextElement(this->nextKeyFrame);
+	  this->setAnimFunc(this->currentKeyFrame->animFunc);	  
+	  
+	  if( this->currentKeyFrame->animFunc == ANIM_NEG_EXP)
+	    {
+	      this->tmpVect = this->nextKeyFrame->position - this->currentKeyFrame->position;
+	      this->deltaT = 1/this->currentKeyFrame->duration * logf(1.0 + 600.0/this->tmpVect.len());
+	    }
+	}
+
+      /* now animate it */
+      (this->*animFunc)(this->localTime);
+      /*
+      switch( this->movMode)
+	{
+	case LINEAR:
+	  *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
+	  *this->tmpVect = *this->tmpVect * this->localTime / this->currentFrame->time;
+	  this->currentFrame->object->setRelCoor(*this->lastFrame->position + *this->tmpVect);
+	  *this->lastPosition = *this->tmpVect;
+	  break;
+	case EXP:
+	      
+	  break;
+	case NEG_EXP:
+	  *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
+	  *this->tmpVect = *this->tmpVect * (1 - expf(- this->localTime * this->deltaT));     
+	  this->currentFrame->object->setRelCoor(*this->lastFrame->position + *this->tmpVect);
+	  *this->lastPosition = *this->tmpVect;
+	  break;
+	case SIN:
+	  *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
+	  *this->tmpVect = *this->tmpVect * 0.5*(1 - cos(M_PI * this->localTime / this->currentFrame->time));     
+	  this->currentFrame->object->setRelCoor(*this->lastFrame->position + *this->tmpVect);
+	  *this->lastPosition = *this->tmpVect;
+	  break;
+	case COS:
+	      
+	  break;
+	case QUADRATIC:
+	  *this->tmpVect = *this->currentFrame->position - *this->lastFrame->position;
+	  *this->tmpVect = *this->tmpVect * 1/3 * ldexpf(this->localTime, 3);
+	  break;
+	default:
+	  break;
+	}
+      */
+    }
+}
+
+
+
+void Animation3D::setAnimFunc(ANIM_FUNCTION animFunc)
+{
+  switch (animFunc)
+    {
+    default:
+    case ANIM_CONSTANT:
+      this->animFunc = &Animation3D::constant;
+      break;
+    case ANIM_LINEAR:
+      this->animFunc = &Animation3D::linear;
+      break;
+    case ANIM_SINE:
+      this->animFunc = &Animation3D::sine;
+      break;
+    case ANIM_COSINE:
+      this->animFunc = &Animation3D::cosine;
+      break;
+    case ANIM_EXP:
+      this->animFunc = &Animation3D::exp;
+      break;
+    case ANIM_NEG_EXP:
+      this->animFunc = &Animation3D::negExp;
+      break;
+    case ANIM_QUADRATIC:
+      this->animFunc = &Animation3D::quadratic;
+      break;
+    case ANIM_RANDOM:
+      this->animFunc = &Animation3D::random;
+      break;
+    }
+}
+
+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
+{
+
+}
Index: /orxonox/trunk/src/animation3d.h
===================================================================
--- /orxonox/trunk/src/animation3d.h	(revision 3851)
+++ /orxonox/trunk/src/animation3d.h	(revision 3851)
@@ -0,0 +1,61 @@
+/*! 
+    \file animation3d.h
+*/
+
+#include "animation.h"
+
+#include "vector.h"
+class PNode;
+
+//! KeyFrame3D Struct
+/**
+   This represents one point with direction of the animation
+*/
+typedef struct KeyFrame3D {
+  float duration;
+  Vector position;
+  Quaternion direction;
+  ANIM_FUNCTION animFunc;
+};
+
+//! Animation Struct
+/**
+   This represents an animation for a object
+*/
+class Animation3D : public Animation
+{
+ public:
+  Animation3D(void);
+  virtual ~Animation3D(void);
+    
+  virtual void rewind(void);
+
+  void addKeyFrame(Vector position, 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);
+
+ 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;
+  //  ANIM_FUNCTION animFunc;
+  KeyFrame3D* currentKeyFrame;
+  KeyFrame3D* nextKeyFrame;
+  tList<KeyFrame3D>* keyFrameList;
+  float (Animation3D::*animFunc)(float) const;
+
+  // more class-local description
+  PNode* object;
+  Vector lastPosition;
+  Vector tmpVect;
+  float deltaT;
+};
Index: /orxonox/trunk/src/simple_animation.cc
===================================================================
--- /orxonox/trunk/src/simple_animation.cc	(revision 3850)
+++ /orxonox/trunk/src/simple_animation.cc	(revision 3851)
@@ -1,6 +1,4 @@
 
-
-
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -14,114 +12,12 @@
    ### File Specific:
    main-programmer: Patrick Boenzli
-   co-programmer: ...
+   co-programmer: Benjamin Grauer
+
+   2005-04-17: Benjamin Grauer
+          Rewritte all functions, so it will fit into the Animation-class
 */
 
 
 #include "simple_animation.h"
-#include "stdincl.h"
-#include "vector.h"
-#include "world_entity.h"
-
-using namespace std;
-
-
-Animation3D::Animation3D(void)
-{
-
-}
-
-Animation3D::~Animation3D(void)
-{
-
-}
-
-
-void Animation3D::rewind(void)
-{
-
-}
-
-void Animation3D::setAnimFunc(ANIM_FUNCTION animFunc)
-{
-  switch (animFunc)
-    {
-    default:
-    case ANIM_CONSTANT:
-      this->animFunc = &Animation3D::constant;
-      break;
-    case ANIM_LINEAR:
-      this->animFunc = &Animation3D::linear;
-      break;
-    case ANIM_SINE:
-      this->animFunc = &Animation3D::sine;
-      break;
-    case ANIM_COSINE:
-      this->animFunc = &Animation3D::cosine;
-      break;
-    case ANIM_EXP:
-      this->animFunc = &Animation3D::exp;
-      break;
-    case ANIM_NEG_EXP:
-      this->animFunc = &Animation3D::negExp;
-      break;
-    case ANIM_QUADRATIC:
-      this->animFunc = &Animation3D::quadratic;
-      break;
-    case ANIM_RANDOM:
-      this->animFunc = &Animation3D::random;
-      break;
-    }
-}
-
-
-void Animation3D::tick(float timePassed)
-{
-
-}
-
-
-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
-{
-
-}
-
-
-
-
 
 
@@ -216,7 +112,7 @@
    \param object wo work on
 */
-void SimpleAnimation::selectObject(WorldEntity* entity)
-{
-  Animation3D* anim = getAnimationFromWorldEntity(entity);
+void SimpleAnimation::selectObject(PNode* entity)
+{
+  Animation3D* anim = getAnimationFromPNode(entity);
   if( anim == NULL)
     {
@@ -482,5 +378,5 @@
 
 
-Animation3D* SimpleAnimation::getAnimationFromWorldEntity(WorldEntity* entity)
+Animation3D* SimpleAnimation::getAnimationFromPNode(PNode* entity)
 {
   tIterator<Animation3D>* iterator = this->animators->getIterator();
Index: /orxonox/trunk/src/simple_animation.h
===================================================================
--- /orxonox/trunk/src/simple_animation.h	(revision 3850)
+++ /orxonox/trunk/src/simple_animation.h	(revision 3851)
@@ -18,5 +18,4 @@
 class Vector;
 class Quaternion;
-class WorldEntity;
 class PNode;
 
@@ -33,5 +32,5 @@
   Vector* position;
   Quaternion* direction;
-  WorldEntity* object;
+  PNode* object;
   float time;
   movementMode mode;
@@ -58,4 +57,5 @@
   void setAnimFunc(ANIM_FUNCTION animFunc);
 
+ private:
   float constant(float timePassed) const;
   float linear(float timePassed) const;
@@ -73,5 +73,5 @@
 
   // private
-  WorldEntity* object;
+  PNode* object;
   Vector* lastPosition;
   Vector* tmpVect;
@@ -100,5 +100,5 @@
   void animatorBegin();
   void animatorEnd();
-  void selectObject(WorldEntity* entity);
+  void selectObject(PNode* entity);
   void addKeyFrame(Vector* point, Quaternion* direction, float time);
   void addKeyFrame(Vector* point, Quaternion* direction, float time, movementMode mode);
@@ -132,9 +132,9 @@
   
   Vector* tmpVect;                 //<! this is the temporary vector save place - 
-  WorldEntity* workingObject;      //<! this is a pointer to the current working object that has been selected via selectObject()
+  PNode* workingObject;      //<! this is a pointer to the current working object that has been selected via selectObject()
   Animation3D* workingAnimator;       //<! the animator with which you are currently working
   float deltaT;                    //<! this is a time constant for the movement
 
-  Animation3D* getAnimationFromWorldEntity(WorldEntity* entity);
+  Animation3D* getAnimationFromPNode(PNode* entity);
 
 };
Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 3850)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 3851)
@@ -38,5 +38,4 @@
 #include "track_manager.h"
 #include "garbage_collector.h"
-#include "simple_animation.h"
 #include "animation_player.h"
 
@@ -161,6 +160,4 @@
   TextEngine::getInstance()->flush();
 
-  delete this->simpleAnimation;
-
   AnimationPlayer::getInstance()->debug();
   delete AnimationPlayer::getInstance(); // this should be at the end of the unloading sequence.
@@ -203,5 +200,4 @@
   wi->init(this);
   this->garbageCollector = GarbageCollector::getInstance();
-  this->simpleAnimation = SimpleAnimation::getInstance();
 }
 
@@ -935,5 +931,5 @@
       this->localCamera->tick(this->dt);
       this->garbageCollector->tick(seconds);
-      this->simpleAnimation->tick(seconds);
+
       AnimationPlayer::getInstance()->tick(seconds);
     }
Index: /orxonox/trunk/src/story_entities/world.h
===================================================================
--- /orxonox/trunk/src/story_entities/world.h	(revision 3850)
+++ /orxonox/trunk/src/story_entities/world.h	(revision 3851)
@@ -24,5 +24,4 @@
 class Terrain;
 class GarbageCollector;
-class SimpleAnimation;
 class Text;
 
@@ -116,6 +115,4 @@
   GarbageCollector* garbageCollector; //!< reference to the garbage  collector
 
-  SimpleAnimation* simpleAnimation;   //!< reference to the SimpleAnimation object
- 
   /* function for main-loop */
   void mainLoop ();
Index: /orxonox/trunk/src/t_animation.h
===================================================================
--- /orxonox/trunk/src/t_animation.h	(revision 3850)
+++ /orxonox/trunk/src/t_animation.h	(revision 3851)
@@ -1,4 +1,24 @@
-
-
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+
+/*! 
+    \file t_animation.h
+*/
+
+#ifndef _T_ANIMATION_H
+#define _T_ANIMATION_H
 
 #include "animation.h"
@@ -16,8 +36,10 @@
   void addKeyFrame(float value, float duration, ANIM_FUNCTION animFunc = ANIM_LINEAR);
 
-  virtual void tick(float time);
+  virtual void tick(float timePassed);
 
   // animation functions
   void setAnimFunc(ANIM_FUNCTION animFunc);
+
+ private:
 
   float constant(float timePassed) const;
@@ -29,4 +51,6 @@
   float quadratic(float timePassed) const;
   float random(float timePassed) const;
+
+
   //  ANIM_FUNCTION animFunc;
   float (tAnimation<T>::*animFunc)(float) const;
@@ -35,8 +59,4 @@
   tList<KeyFrameF>* keyFrameList;
 
-
-
-
- private:
   float expFactor;
   T* object;
@@ -110,5 +130,4 @@
   if (duration <= 0.0)
     duration = 1.0;
-  
 
   KeyFrameF* tmpKeyFrame;
@@ -135,14 +154,15 @@
 
 template<class T>
-void tAnimation<T>::tick(float time)
+void tAnimation<T>::tick(float timePassed)
 {
   if (this->bRunning)
     {
-      this->localTime += time;
+      this->localTime += timePassed;
       if (localTime >= this->currentKeyFrame->duration)
 	{
 	  // switching to the next Key-Frame
+	  this->localTime -= this->currentKeyFrame->duration;
+
 	  this->currentKeyFrame = this->nextKeyFrame;
-	  this->localTime = 0;
 	  // checking, if we should still Play the animation
 	  if (this->currentKeyFrame == this->keyFrameList->lastElement())
@@ -270,2 +290,5 @@
 
 }
+
+
+#endif /* _T_ANIMATION_H */
Index: /orxonox/trunk/src/world_entities/test_gun.cc
===================================================================
--- /orxonox/trunk/src/world_entities/test_gun.cc	(revision 3850)
+++ /orxonox/trunk/src/world_entities/test_gun.cc	(revision 3851)
@@ -30,5 +30,5 @@
 #include "vector.h"
 #include "list.h"
-#include "simple_animation.h"
+#include "animation3d.h"
 
 using namespace std;
@@ -53,5 +53,5 @@
 
 
-  this->animator = SimpleAnimation::getInstance();
+  this->animaton = new Animation3D;
   this->dummy1 = new WorldEntity(); // a world entity that is not drawed: use this for the weapon 
   /*
Index: /orxonox/trunk/src/world_entities/test_gun.h
===================================================================
--- /orxonox/trunk/src/world_entities/test_gun.h	(revision 3850)
+++ /orxonox/trunk/src/world_entities/test_gun.h	(revision 3851)
@@ -29,5 +29,5 @@
 class Vector;
 class Quaternion;
-class SimpleAnimation;
+class Animation3D;
 
 
@@ -52,5 +52,5 @@
 
  private:
-  SimpleAnimation* animator;
+  Animation3D* animaton;
   Vector* projOffset;
   WorldEntity* dummy1;
