Index: /orxonox/branches/trackManager/src/Makefile.am
===================================================================
--- /orxonox/branches/trackManager/src/Makefile.am	(revision 3373)
+++ /orxonox/branches/trackManager/src/Makefile.am	(revision 3374)
@@ -18,5 +18,4 @@
 		 ini_parser.cc \
 		 keynames.cc \
-		 track.cc \
 		 base_entity.cc \
 		 game_loader.cc \
@@ -51,5 +50,4 @@
 		 error.h \
 		 player.h \
-		 track.h \
 		 camera.h \
 		 ini_parser.h \
Index: /orxonox/branches/trackManager/src/Makefile.in
===================================================================
--- /orxonox/branches/trackManager/src/Makefile.in	(revision 3373)
+++ /orxonox/branches/trackManager/src/Makefile.in	(revision 3374)
@@ -57,11 +57,11 @@
 	world_entity.$(OBJEXT) vector.$(OBJEXT) camera.$(OBJEXT) \
 	command_node.$(OBJEXT) ini_parser.$(OBJEXT) keynames.$(OBJEXT) \
-	track.$(OBJEXT) base_entity.$(OBJEXT) game_loader.$(OBJEXT) \
-	campaign.$(OBJEXT) story_entity.$(OBJEXT) \
-	environment.$(OBJEXT) model.$(OBJEXT) array.$(OBJEXT) \
-	material.$(OBJEXT) texture.$(OBJEXT) list.$(OBJEXT) \
-	p_node.$(OBJEXT) null_parent.$(OBJEXT) base_object.$(OBJEXT) \
-	helper_parent.$(OBJEXT) track_manager.$(OBJEXT) \
-	matrix.$(OBJEXT) curve.$(OBJEXT) glmenu_imagescreen.$(OBJEXT)
+	base_entity.$(OBJEXT) game_loader.$(OBJEXT) campaign.$(OBJEXT) \
+	story_entity.$(OBJEXT) environment.$(OBJEXT) model.$(OBJEXT) \
+	array.$(OBJEXT) material.$(OBJEXT) texture.$(OBJEXT) \
+	list.$(OBJEXT) p_node.$(OBJEXT) null_parent.$(OBJEXT) \
+	base_object.$(OBJEXT) helper_parent.$(OBJEXT) \
+	track_manager.$(OBJEXT) matrix.$(OBJEXT) curve.$(OBJEXT) \
+	glmenu_imagescreen.$(OBJEXT)
 orxonox_OBJECTS = $(am_orxonox_OBJECTS)
 orxonox_LDADD = $(LDADD)
@@ -85,7 +85,6 @@
 @AMDEP_TRUE@	./$(DEPDIR)/p_node.Po ./$(DEPDIR)/player.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/story_entity.Po ./$(DEPDIR)/texture.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/track.Po ./$(DEPDIR)/track_manager.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/vector.Po ./$(DEPDIR)/world.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/world_entity.Po
+@AMDEP_TRUE@	./$(DEPDIR)/track_manager.Po ./$(DEPDIR)/vector.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/world.Po ./$(DEPDIR)/world_entity.Po
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
@@ -216,5 +215,4 @@
 		 ini_parser.cc \
 		 keynames.cc \
-		 track.cc \
 		 base_entity.cc \
 		 game_loader.cc \
@@ -248,5 +246,4 @@
 		 error.h \
 		 player.h \
-		 track.h \
 		 camera.h \
 		 ini_parser.h \
@@ -377,5 +374,4 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/story_entity.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track_manager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector.Po@am__quote@
Index: /orxonox/branches/trackManager/src/curve.cc
===================================================================
--- /orxonox/branches/trackManager/src/curve.cc	(revision 3373)
+++ /orxonox/branches/trackManager/src/curve.cc	(revision 3374)
@@ -142,5 +142,5 @@
 
   // rebuilding the Derivation curve
-  if(this->derivation == 0)
+  if(this->derivation <= 1)
     {
       tmpNode = firstNode;
@@ -202,4 +202,9 @@
 }
 
+Vector BezierCurve::calcAcc (float t)
+{
+  return dirCurve->dirCurve->calcPos(t);
+}
+
 /**
    \brief Calculates the Quaternion needed for our rotations
@@ -374,4 +379,8 @@
 }
 
+Vector UPointCurve::calcAcc (float t)
+{
+}
+
 /**
    \brief Calculates the Quaternion needed for our rotations
Index: /orxonox/branches/trackManager/src/curve.h
===================================================================
--- /orxonox/branches/trackManager/src/curve.h	(revision 3373)
+++ /orxonox/branches/trackManager/src/curve.h	(revision 3374)
@@ -23,5 +23,4 @@
   Vector curvePoint;     //!< The point on the Cureve at a local Time.
   float localTime;       //!< If the time of one point is asked more than once the programm will not calculate it again.
-  Curve* dirCurve;       //!< The derivation-curve of this Curve.
   int derivation;        //!< Which derivation of a Curve is this.
 
@@ -42,4 +41,5 @@
   virtual void rebuild(void) = 0;
  public:
+  Curve* dirCurve;       //!< The derivation-curve of this Curve.
   void addNode(const Vector& newNode);
   Vector getNode(unsigned int nodeToFind);
@@ -48,4 +48,5 @@
   virtual Vector calcPos(float t) = 0;
   virtual Vector calcDir(float t) = 0;
+  virtual Vector calcAcc(float t) = 0;
   virtual Quaternion calcQuat(float t) = 0;
  
@@ -69,4 +70,5 @@
   Vector calcPos(float t);
   Vector calcDir(float t);
+  Vector calcAcc(float t);
   Quaternion calcQuat(float t);
   
@@ -105,4 +107,5 @@
   Vector calcPos(float t);
   Vector calcDir(float t);
+  Vector calcAcc(float t);
   Quaternion calcQuat(float t);
   
Index: /orxonox/branches/trackManager/src/environment.cc
===================================================================
--- /orxonox/branches/trackManager/src/environment.cc	(revision 3373)
+++ /orxonox/branches/trackManager/src/environment.cc	(revision 3374)
@@ -29,5 +29,5 @@
 Environment::Environment () : WorldEntity()
 {
-  this->model = new Model("reaplow.obj");
+  this->model = new Model("fighter.obj", .3);
 }
 
Index: /orxonox/branches/trackManager/src/game_loader.cc
===================================================================
--- /orxonox/branches/trackManager/src/game_loader.cc	(revision 3373)
+++ /orxonox/branches/trackManager/src/game_loader.cc	(revision 3374)
@@ -25,5 +25,4 @@
 #include "command_node.h"
 #include "vector.h"
-#include "track.h"
 
 #include <string.h>
Index: xonox/branches/trackManager/src/track.cc
===================================================================
--- /orxonox/branches/trackManager/src/track.cc	(revision 3373)
+++ 	(revision )
@@ -1,103 +1,0 @@
-
-
-/* 
-   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: Christian Meyer
-   co-programmer: ...
-*/
-
-#include "track.h"
-
-using namespace std;
-
-/**
-   \brief creates a null Track part
-*/
-Track::Track ()
-{
-  this->ID = 0;
-  this->offset = NULL;
-  this->end = NULL;
-  this->nextID = 0;
-  this->setClassName ("Track");
-}
-
-/**
-   \brief creates a functional base Track part
-   \param number: the ID if this Track part
-   \param next: the ID of the next Track part
-   \param start: pointer to an anchor point (Vector) representing the offset of this part
-   \param finish: pointer to an anchor point (Vector) representing the end of this part
-*/
-Track::Track (Uint32 number, Uint32 next, Vector* start, Vector* finish)
-{
-  this->ID = number;
-  this->offset = start;
-  this->end = finish;
-  this->nextID = next;
-  this->setClassName ("Track");
-}
-
-/**
-   \brief removes the Track part from memory
-*/
-Track::~Track ()
-{
-}
-
-void Track::init()
-{
-  
-}
-
-
-
-
-
-/**
-   \brief this is called when a WorldEntity enters a Track part
-   \param entity: pointer to the WorldEntity in question
-   
-   You can do stuff like add or remove effects, do some coordinate finetuning 
-   or whatever in here.
-*/
-void Track::postEnter (WorldEntity* entity)
-{
-}
-
-
-/**
-   \brief this is called when a WorldEntity leaves a Track part
-   \param entity: pointer to the WorldEntity in question
-   
-   You can do stuff like add or remove effects, do some coordinate finetuning 
-   or whatever in here.
-*/
-void Track::postLeave (WorldEntity* entity)
-{
-}
-
-
-/**
-   \brief this is called every frame
-   \param deltaT: amount of time passed since the last frame in seconds
-   
-   Do time based or polling scripts here. 
-*/
-void Track::tick (float deltaT)
-{
-}
-
-
-
-
-
Index: xonox/branches/trackManager/src/track.h
===================================================================
--- /orxonox/branches/trackManager/src/track.h	(revision 3373)
+++ 	(revision )
@@ -1,39 +1,0 @@
-/*! 
-    \file track.h
-    \brief Basic level architecture
-*/ 
-
-#ifndef _TRACK_H
-#define _TRACK_H
-
-#include "stdincl.h"
-
-//!	The Red Line through a level
-/**
-   Handles level boundaries, bound movement mapping, camera placement and scripting.
-   To create special levels with special camera movement, rules or whatever, derive from this base class.
-*/
-class Track : public BaseObject
-{
- private:
-  Uint32 ID;
-  Vector* offset;
-  Vector* end;
-  // Vector* direction; // unity direction vector: it is costy to always recalculate it
-  //Vector* up; // direction where up is ment to be - diffuse in space, eh?
-  //Vector* traverse; // right-left 
-  Uint32 nextID;
-  
-  
- public:
-  Track ();
-  Track (Uint32 number, Uint32 next, Vector* start, Vector* finish);
-  ~Track ();
-  virtual void init();
-  
-  virtual void postEnter (WorldEntity* entity);	// handle coordinate transition in here !!! (when dist < 0 or dist > lasttracklenght)
-  virtual void postLeave (WorldEntity* entity);
-  virtual void tick (float deltaT);
-};
-
-#endif /* _TRACK_H */
Index: /orxonox/branches/trackManager/src/track_manager.cc
===================================================================
--- /orxonox/branches/trackManager/src/track_manager.cc	(revision 3373)
+++ /orxonox/branches/trackManager/src/track_manager.cc	(revision 3374)
@@ -466,5 +466,5 @@
     {
       Vector tmp = this->calcPos();
-      Quaternion quat = Quaternion(this->calcDir(), Vector(0,1,0)); 
+      Quaternion quat = Quaternion(this->calcDir(), Vector(0,1,this->currentTrackElem->curve->calcAcc((localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration).z)); 
       this->bindSlave->setAbsCoor(&tmp);
       this->bindSlave->setAbsDir(&quat);
Index: /orxonox/branches/trackManager/src/world.cc
===================================================================
--- /orxonox/branches/trackManager/src/world.cc	(revision 3373)
+++ /orxonox/branches/trackManager/src/world.cc	(revision 3374)
@@ -19,5 +19,4 @@
 #include "collision.h"
 #include "track_manager.h"
-#include "track.h"
 #include "player.h"
 #include "command_node.h"
@@ -250,20 +249,4 @@
 	    this->nullParent->setName ("NullParent");
 
-	    // create some path nodes
-	    this->pathnodes = new Vector[6];
-	    this->pathnodes[0] = Vector(0, 0, 0);
-	    this->pathnodes[1] = Vector(1000, 0, 0);
-	    //	    this->pathnodes[2] = Vector(-100, 140, 0);
-	    //	    this->pathnodes[3] = Vector(0, 180, 0);
-	    //	    this->pathnodes[4] = Vector(100, 140, 0);
-	    //	    this->pathnodes[5] = Vector(100, 40, 0);
-	    
-	    // create the tracks
-	    this->tracklen = 2;
-	    this->track = new Track[2];
-	    for( int i = 0; i < this->tracklen; i++)
-	      {
-		this->track[i] = Track( i, (i+1)%this->tracklen, &this->pathnodes[i], &this->pathnodes[(i+1)%this->tracklen]);
-	      }
 	    // !\todo old track-system has to be removed
 
@@ -323,12 +306,4 @@
 
 
-
-	    // create the tracks
-	    this->tracklen = 6;
-	    this->track = new Track[6];
-	    for( int i = 0; i < this->tracklen; i++)
-	      {
-		this->track[i] = Track( i, (i+1)%this->tracklen, &this->pathnodes[i], &this->pathnodes[(i+1)%this->tracklen]);
-	      }
 
 	    // create a player
@@ -522,14 +497,4 @@
     }
   */  
-  //draw track
-  glBegin(GL_LINES);
-  glColor3f(0.0, 1.0, 1.0);
-  for( int i = 0; i < tracklen; i++)
-    {
-      glVertex3f(pathnodes[i].x,pathnodes[i].y,pathnodes[i].z);
-      glVertex3f(pathnodes[(i+1)%tracklen].x,pathnodes[(i+1)%tracklen].y,pathnodes[(i+1)%tracklen].z);
-    }
-  glEnd();
-  
   /*
   glBegin(GL_LINE_STRIP);
@@ -710,19 +675,6 @@
 void World::unload()
 {
-  if( pathnodes) delete []pathnodes;
-  if( track) delete []pathnodes;
-}
-
-
-void World::setTrackLen(Uint32 len)
-{
-  this->tracklen = len;
-}
-
-int World::getTrackLen()
-{
-  return this->tracklen;
-}
-
+
+}
 
 
Index: /orxonox/branches/trackManager/src/world.h
===================================================================
--- /orxonox/branches/trackManager/src/world.h	(revision 3373)
+++ /orxonox/branches/trackManager/src/world.h	(revision 3374)
@@ -12,5 +12,4 @@
 
 class TrackManager;
-class Track;
 class WorldEntity;
 class Camera;
@@ -48,6 +47,4 @@
   virtual void releaseLoadScreen();
   
-  void setTrackLen (Uint32 tracklen);
-  int getTrackLen ();
   //bool system_command (Command* cmd);
   Camera* getCamera ();
@@ -60,6 +57,4 @@
   // base level data
   TrackManager* trackManager;
-  Track* track;
-  Uint32 tracklen;   // number of Tracks the World consist of
   Vector* pathnodes;
   Camera* localCamera;  
