Index: branches/playability/src/util/track/track.cc
===================================================================
--- branches/playability/src/util/track/track.cc	(revision 10282)
+++ branches/playability/src/util/track/track.cc	(revision 10284)
@@ -27,4 +27,6 @@
 
 #include "p_node.h"
+
+#include "stdincl.h"
 
 #include "debug.h"
@@ -68,4 +70,5 @@
   this->curve = new BezierCurve();
   this->trackNode = new PNode(PNode::getNullParent(), PNODE_ALL);
+  this->nodeCount = 0;
 }
 
@@ -83,5 +86,5 @@
      LOAD_PARAM_START_CYCLE(root, element);
      {
-           LoadParam_CYCLE(element, "Point", this, Track, addPoint)
+           LoadParam_CYCLE(element, "addPoint", this, Track, addPoint)
              .describe("Adds a new Point to the currently selected TrackElement");
 
@@ -100,5 +103,5 @@
 void Track::addPoint(float x, float y, float z)
 {
-     this->addPoint(Vector (x,y,z));
+     this->addPointV(Vector (x,y,z));
 }
 
@@ -108,8 +111,10 @@
  * @param newPoint
  */
-void Track::addPoint(Vector newPoint)
+void Track::addPointV(Vector newPoint)
 {
    this->curve->addNode(newPoint);
+   if( this->nodeCount == 0) this->trackNode->setAbsCoor(newPoint);
    this->nodeCount++;
+   PRINTF(4)("Point added to curve %d\n");
 }
 
@@ -117,6 +122,6 @@
  * We probably doesn't even need this
  */
-void Track::finalize()
-{
+//void Track::finalize()
+//{
 //   for (int i = 1; i<= trackElemCount ;i++)
 //     {
@@ -159,5 +164,5 @@
       this->maxTime = this->firstTrackElem->findByID(i)->endTime; // very bad implemented :/
       */
-}
+//}
 
 Vector Track::calcPos() const
@@ -204,7 +209,7 @@
 
        // move trackNode of the track
-       this->trackNode->setAbsCoor(tmp);
+       this->trackNode->shiftCoor(tmp - this->trackNode->getAbsCoor());
        // set direction and roll angle of trackNode
-       this->trackNode->setAbsDir(quat);
+       // this->trackNode->setAbsDir(quat);
      }
 }
@@ -217,2 +222,21 @@
   return this->trackNode;
 }
+
+/**
+ *  Imports a model of the Graph into the OpenGL-environment.
+ * @param dt The Iterator used in seconds for Painting the Graph.
+
+   This is for testing facility only. Do this if you want to see the Path inside the Level.
+   eventually this will all be packed into a gl-list.
+*/
+void Track::drawGraph(float dt) const
+{
+      glBegin(GL_LINE_STRIP);
+        for(float f = 0.0; f < 1.0; f+=dt)
+          {
+            // PRINTF(4)("drawing",this->calcPos().x, this->calcPos().y, this->calcPos().z);
+            Vector tmpVector = this->curve->calcPos(f);
+            glVertex3f(tmpVector.x, tmpVector.y, tmpVector.z);
+          }
+      glEnd();
+}
Index: branches/playability/src/util/track/track.h
===================================================================
--- branches/playability/src/util/track/track.h	(revision 10282)
+++ branches/playability/src/util/track/track.h	(revision 10284)
@@ -24,7 +24,7 @@
    virtual void loadParams(const TiXmlElement* root);
    void addPoint(float x, float y, float z);
-   void addPoint(Vector newPoint);
+   void addPointV(Vector newPoint);
 
-   void finalize();
+   //void finalize();
    inline Vector calcPos() const;
    inline Vector calcDir() const;
@@ -32,4 +32,6 @@
 
    PNode* getTrackNode();
+   
+   void drawGraph(float dt) const;
       
    //float                 startingTime;         //!< The time at which this Track begins.
Index: branches/playability/src/world_entities/WorldEntities.am
===================================================================
--- branches/playability/src/world_entities/WorldEntities.am	(revision 10282)
+++ branches/playability/src/world_entities/WorldEntities.am	(revision 10284)
@@ -82,4 +82,5 @@
                 world_entities/environments/building.cc \
                 world_entities/environments/mapped_water.cc \
+                world_entities/environments/rotor.cc \
                 \
                 world_entities/elements/image_entity.cc \
@@ -203,4 +204,5 @@
                 environments/building.h \
                 environments/mapped_water.h \
+                environments/rotor.h \
                 \
                 elements/image_entity.h \
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10282)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10284)
@@ -823,13 +823,20 @@
         this->travelNode->setAbsCoor(this->getAbsCoor());
         this->travelNode->updateNode(0.01f);
-
+        
         this->setParent(this->travelNode);
+        
+        // If track exists put travelNode on trackNode of track
+        if (this->entityTrack)
+           this->travelNode->setParent(this->entityTrack->getTrackNode());
+           
+        
+        
         this->setRelCoor(0,0,0);
 
         State::getCameraNode()->setParentSoft(this->travelNode);
-        //State::getCameraNode()->setParentSoft(this);
+        //State::getCameraNode()->setParentSoft(this->entityTrack->getTrackNode());
         //State::getCameraNode()->setRelCoorSoft(-0.01, 40, 0);
         State::getCameraTargetNode()->setParentSoft(this->travelNode);
-        //State::getCameraTargetNode()->setParentSoft(this);
+        //State::getCameraTargetNode()->setParentSoft(this->entityTrack->getTrackNode());
         //State::getCameraTargetNode()->setRelCoorSoft(0,0,0);
         this->setCameraMode(Camera::ViewTop);
@@ -1004,5 +1011,6 @@
 
     //this moves camera and ship along the travel path.
-    this->travelNode->shiftCoor(Vector(this->cameraSpeed * dt, 0, 0));
+    if (!this->entityTrack)
+       this->travelNode->shiftCoor(Vector(this->cameraSpeed * dt, 0, 0));
 
     break;
Index: branches/playability/src/world_entities/world_entity.cc
===================================================================
--- branches/playability/src/world_entities/world_entity.cc	(revision 10282)
+++ branches/playability/src/world_entities/world_entity.cc	(revision 10284)
@@ -682,4 +682,7 @@
       this->models[0]->draw();
     }
+    
+    if (this->entityTrack)
+       this->entityTrack->drawGraph(0.02);
 
     //     if( this->aabbNode != NULL)
