Index: /orxonox/branches/trackManager/src/Makefile.am
===================================================================
--- /orxonox/branches/trackManager/src/Makefile.am	(revision 3499)
+++ /orxonox/branches/trackManager/src/Makefile.am	(revision 3500)
@@ -33,4 +33,5 @@
 		 camera.cc \
 		 track_manager.cc \
+		 track_node.cc \
 		 light.cc \
 		 story_entities/story_entity.cc \
Index: /orxonox/branches/trackManager/src/Makefile.in
===================================================================
--- /orxonox/branches/trackManager/src/Makefile.in	(revision 3499)
+++ /orxonox/branches/trackManager/src/Makefile.in	(revision 3500)
@@ -55,14 +55,14 @@
 am_orxonox_OBJECTS = orxonox.$(OBJEXT) game_loader.$(OBJEXT) \
 	command_node.$(OBJEXT) keynames.$(OBJEXT) camera.$(OBJEXT) \
-	track_manager.$(OBJEXT) light.$(OBJEXT) story_entity.$(OBJEXT) \
-	campaign.$(OBJEXT) world.$(OBJEXT) world_entity.$(OBJEXT) \
-	player.$(OBJEXT) environment.$(OBJEXT) skysphere.$(OBJEXT) \
-	ai.$(OBJEXT) p_node.$(OBJEXT) null_parent.$(OBJEXT) \
-	helper_parent.$(OBJEXT) data_tank.$(OBJEXT) fontset.$(OBJEXT) \
-	array.$(OBJEXT) objModel.$(OBJEXT) model.$(OBJEXT) \
-	material.$(OBJEXT) texture.$(OBJEXT) base_entity.$(OBJEXT) \
-	base_object.$(OBJEXT) ini_parser.$(OBJEXT) list.$(OBJEXT) \
-	vector.$(OBJEXT) matrix.$(OBJEXT) curve.$(OBJEXT) \
-	glmenu_imagescreen.$(OBJEXT)
+	track_manager.$(OBJEXT) track_node.$(OBJEXT) light.$(OBJEXT) \
+	story_entity.$(OBJEXT) campaign.$(OBJEXT) world.$(OBJEXT) \
+	world_entity.$(OBJEXT) player.$(OBJEXT) environment.$(OBJEXT) \
+	skysphere.$(OBJEXT) ai.$(OBJEXT) p_node.$(OBJEXT) \
+	null_parent.$(OBJEXT) helper_parent.$(OBJEXT) \
+	data_tank.$(OBJEXT) fontset.$(OBJEXT) array.$(OBJEXT) \
+	objModel.$(OBJEXT) model.$(OBJEXT) material.$(OBJEXT) \
+	texture.$(OBJEXT) base_entity.$(OBJEXT) base_object.$(OBJEXT) \
+	ini_parser.$(OBJEXT) list.$(OBJEXT) vector.$(OBJEXT) \
+	matrix.$(OBJEXT) curve.$(OBJEXT) glmenu_imagescreen.$(OBJEXT)
 orxonox_OBJECTS = $(am_orxonox_OBJECTS)
 orxonox_LDADD = $(LDADD)
@@ -88,5 +88,6 @@
 @AMDEP_TRUE@	./$(DEPDIR)/skysphere.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/story_entity.Po ./$(DEPDIR)/texture.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/track_manager.Po ./$(DEPDIR)/vector.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/track_manager.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/track_node.Po ./$(DEPDIR)/vector.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/world.Po ./$(DEPDIR)/world_entity.Po
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
@@ -223,4 +224,5 @@
 		 camera.cc \
 		 track_manager.cc \
+		 track_node.cc \
 		 light.cc \
 		 story_entities/story_entity.cc \
@@ -396,4 +398,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track_manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track_node.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/world.Po@am__quote@
Index: /orxonox/branches/trackManager/src/story_entities/world.cc
===================================================================
--- /orxonox/branches/trackManager/src/story_entities/world.cc	(revision 3499)
+++ /orxonox/branches/trackManager/src/story_entities/world.cc	(revision 3500)
@@ -29,4 +29,5 @@
 #include "light.h"
 #include "fontset.h"
+#include "track_node.h"
 
 using namespace std;
@@ -238,5 +239,6 @@
 	    this->glmis->step();
 
-	    trackManager->setBindSlave(env);
+	    trackManager->setBindSlave(TrackNode::getInstance());
+	    env->setParent(TrackNode::getInstance());
 
 	    break;
@@ -814,5 +816,6 @@
 	}
       //this->timeSlice (dt);
-      
+      printf("testing trackNode: x:%f\n", TrackNode::getInstance()->absCoordinate.x);
+
       /* function to let all entities tick (iterate through list) */
       WorldEntity* entity;
Index: /orxonox/branches/trackManager/src/track_node.cc
===================================================================
--- /orxonox/branches/trackManager/src/track_node.cc	(revision 3499)
+++ /orxonox/branches/trackManager/src/track_node.cc	(revision 3500)
@@ -66,32 +66,2 @@
 }
 
-/**
-   \brief updates the absCoordinate/absDirection
-
-   this is used to go through the parent-tree to update all the absolute coordinates
-   and directions. this update should be done by the engine, so you don't have to 
-   worry, normaly...
-*/
-void TrackNode::update (float timeStamp)
-{
-  this->absCoordinate = trackManager->calcPos();
-  this->absDirection = Quaternion(trackManager->calcDir(), Vector(0,1,0));
-  
-  PNode* pn = this->children->enumerate ();
-  while( pn != NULL) 
-    { 
-      /* if this node has changed, make sure, that all children are updated also */
-      if( this->bRelCoorChanged || this->bAbsCoorChanged)
-	pn->parentCoorChanged ();
-      if( this->bRelDirChanged || this->bAbsDirChanged)
-	pn->parentDirChanged ();
-      pn->update (timeStamp);
-      pn = this->children->nextElement ();
-    }
-
-  this->timeStamp = timeStamp;
-  this->bRelCoorChanged = false;
-  this->bAbsCoorChanged = false;
-  this->bRelDirChanged = false;
-  this->bAbsDirChanged = false;
-}
Index: /orxonox/branches/trackManager/src/track_node.h
===================================================================
--- /orxonox/branches/trackManager/src/track_node.h	(revision 3499)
+++ /orxonox/branches/trackManager/src/track_node.h	(revision 3500)
@@ -23,5 +23,4 @@
   ~TrackNode ();
   
-  virtual void update (float timeStamp);
 
  private:
