Index: /orxonox/trunk/src/Makefile.am
===================================================================
--- /orxonox/trunk/src/Makefile.am	(revision 4852)
+++ /orxonox/trunk/src/Makefile.am	(revision 4853)
@@ -17,4 +17,5 @@
                        lib/particles/libORXparticles.a \
                        lib/collision_detection/libORXcd.a \
+                       lib/graphics/spatial_separation/libORXquadtree.a \
                        lib/tinyxml/libtinyxml.a
 
Index: /orxonox/trunk/src/Makefile.in
===================================================================
--- /orxonox/trunk/src/Makefile.in	(revision 4852)
+++ /orxonox/trunk/src/Makefile.in	(revision 4853)
@@ -269,4 +269,5 @@
                        lib/particles/libORXparticles.a \
                        lib/collision_detection/libORXcd.a \
+                       lib/graphics/spatial_separation/libORXquadtree.a \
                        lib/tinyxml/libtinyxml.a
 
Index: /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree_node.cc
===================================================================
--- /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree_node.cc	(revision 4852)
+++ /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree_node.cc	(revision 4853)
@@ -38,5 +38,4 @@
 {
   this->pModelInfo = pModelInfo;
-  this->pDimension = this->getDimension(this->pModelInfo);
   
   /* create an array of triangle references */
@@ -98,4 +97,7 @@
 {
   PRINTF(0)("got command to separate node\n");
+
+  this->pDimension = this->getDimension(this->pModelInfo);
+
   tList<sTriangleExt*>*           listA = new tList<sTriangleExt*>();    //!< triangle list of nodeA
   tList<sTriangleExt*>*           listB = new tList<sTriangleExt*>();    //!< triangle list of nodeB
@@ -111,16 +113,48 @@
 	{
 	  pVert = &this->pVertices[this->pTriangles[i]->indexToVertices[j]];
-	  if(  pVert[0] > rectCenter->x + this->offset && pVert[2] > rectCenter->z + this->offset)
-	    printf("nA");
+	  if( pVert[0] > rectCenter->x + this->offset && pVert[2] > rectCenter->z + this->offset)
+	    listA->add(&this->pTriangles[i]);
 	  if( pVert[0] > rectCenter->x + this->offset && pVert[2]< rectCenter->z + this->offset) 
-	    printf("nB");
+	    listB->add(&this->pTriangles[i]);
 	  if( pVert[0] < rectCenter->x + this->offset && pVert[2] > rectCenter->z + this->offset)
-	    printf("nC");
+	    listC->add(&this->pTriangles[i]);
 	  if( pVert[0] < rectCenter->x + this->offset && pVert[2] < rectCenter->z + this->offset)
-	    printf("nD");
+	    listD->add(&this->pTriangles[i]);
 	}
     }
-  PRINTF(0)("\nseparation complete\n");
-}
+  printf("Temp. list Num. o El: A: %i, B: %i, C: %i, D: %i\n", listA->getSize(), listB->getSize(), listC->getSize(), listD->getSize());
+
+
+  
+  /* Separating into to the triangle lists  */
+  sTriangleExt**                 pTriA;                                 //!< Triangle array A
+  sTriangleExt**                 pTriB;                                 //!< Triangle array B
+  sTriangleExt**                 pTriC;                                 //!< Triangle array C
+  sTriangleExt**                 pTriD;                                 //!< Triangle array D
+  float                          lenA;                                  //!< length array A
+  float                          lenB;                                  //!< length array B
+  float                          lenC;                                  //!< length array C
+  float                          lenD;                                  //!< length array D
+  tIterator<sTriangleExt*>*      iterator;                              //!< iterator for the list iterations
+  sTriangleExt*                  tempTri;                               //!< temp save place for triangle pointer
+
+  lenA = listA->getSize();
+  lenB = listB->getSize();
+  lenC = listC->getSize();
+  lenD = listD->getSize();
+  
+  pTriA = new sTriangleExt*[listA->getSize()];
+  pTriB = new sTriangleExt*[listB->getSize()];
+  pTriC = new sTriangleExt*[listC->getSize()];  
+  pTriD = new sTriangleExt*[listD->getSize()];
+
+
+  iterator = listA->getIterator();
+
+
+
+  PRINTF(0)("separation complete\n");
+}
+
 
 
@@ -170,4 +204,5 @@
 
   PRINTF(0)("Dimension Informationation: X: min/max %f/%f Y: min/max %f/%f\n", minX, maxX, minY, maxY);
+  PRINTF(0)("Center: %f,%f   Axis: %f\n", rect->getCenter()->x, rect->getCenter()->y, rect->getCenter()->z, rect->getAxis());
   return rect;
 }
Index: /orxonox/trunk/src/lib/math/vector.h
===================================================================
--- /orxonox/trunk/src/lib/math/vector.h	(revision 4852)
+++ /orxonox/trunk/src/lib/math/vector.h	(revision 4853)
@@ -259,4 +259,6 @@
    /** \brief sets both axis of the rectangle to a defined vector @param v1 the length of the x axis @param v2 the length of the z axis*/
    inline void setAxis(float v1, float v2) { this->axis[0] = v1; this->axis[1] = v2; }
+   /** \brief gets one axis length of the rectangle  @returns the length of the axis 0 */
+   inline float getAxis() { return this-> axis[0]; }
 
   private:
