Index: /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree.h
===================================================================
--- /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree.h	(revision 4809)
+++ /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree.h	(revision 4810)
@@ -10,4 +10,7 @@
 
 #include "base_object.h"
+#include "vector.h"
+
+class QuadtreeNode;
 
 //! A class for quadtree separation of the world
@@ -20,4 +23,6 @@
 
  private:
+   QuadtreeNode*                   rootNode;
+
 
 };
Index: /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree_node.h
===================================================================
--- /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree_node.h	(revision 4809)
+++ /orxonox/trunk/src/lib/graphics/spatial_separation/quadtree_node.h	(revision 4810)
@@ -9,8 +9,8 @@
 
 #include "base_object.h"
-
+#include "vector.h"
 // FORWARD DEFINITION
 
-
+class QuadtreeNode;
 
 //! A class for a Quadtree Node representation
@@ -23,5 +23,12 @@
 
  private:
+   Vector                          center;             //!< center coordinate of the quadtree node - relative coordinates in model space(!)
+   float                           axisLength;         //!< axis length of the quadtree
+   float                           maxHeigth;          //!< max height of the model in the quadtree
 
+   QuadtreeNode*                   nodeA;              //!< reference to the node A
+   QuadtreeNode*                   nodeB;              //!< reference to the node B
+   QuadtreeNode*                   nodeC;              //!< reference to the node C
+   QuadtreeNode*                   nodeD;              //!< reference to the node D
 };
 
Index: /orxonox/trunk/src/lib/graphics/spatial_separation/spatial_separation.cc
===================================================================
--- /orxonox/trunk/src/lib/graphics/spatial_separation/spatial_separation.cc	(revision 4809)
+++ /orxonox/trunk/src/lib/graphics/spatial_separation/spatial_separation.cc	(revision 4810)
@@ -24,9 +24,27 @@
 /**
    \brief standard constructor
-   \todo this constructor is not jet implemented - do it
+   \param model the model that is to be separated
+   \param overlapSize each box will overlap for a given size
+
+   The boxes are overlaping because this makes collision detection a lot simpler
+
 */
-SpatialSeparation::SpatialSeparation ()
+SpatialSeparation::SpatialSeparation (AbstractModel* model, float overlapSize)
 {
    this->setClassID(CL_SPATIAL_SEPARATION, "SpatialSeparation");
+
+}
+
+/**
+   \brief standard constructor
+   \param model the model that is to be separated
+   \param overlapSize each box will overlap for a given size
+
+   The boxes are overlaping because this makes collision detection a lot simpler
+
+ */
+SpatialSeparation::SpatialSeparation (AbstractModel* model, AbstractModel* playerModel)
+{
+  this->setClassID(CL_SPATIAL_SEPARATION, "SpatialSeparation");
 
 }
Index: /orxonox/trunk/src/lib/graphics/spatial_separation/spatial_separation.h
===================================================================
--- /orxonox/trunk/src/lib/graphics/spatial_separation/spatial_separation.h	(revision 4809)
+++ /orxonox/trunk/src/lib/graphics/spatial_separation/spatial_separation.h	(revision 4810)
@@ -1,5 +1,5 @@
 /*!
     \file spatial_separation.h
-    \brief Definition of the generic spatial separation of model data
+    \brief Definition of the generic spatial separation process of model data
 
  */
@@ -19,14 +19,29 @@
 
   public:
-    SpatialSeparation();
+    SpatialSeparation(AbstractModel* model, float overlapSize);
+    SpatialSeparation(AbstractModel* model, AbstractModel* playerModel);
     virtual ~SpatialSeparation();
 
+    void setTreeDepth(int depth) { this->treeDepth = depth; }
+    void setMinLength(int minLength) { this->minLength = minLength; }
+
+    Quadtree* createQuadtree(AbstractModel* model, float minLength);
+    Quadtree* createQuadtree(AbstractModel* model, int treeDepth);
     Quadtree* createQuadtree(AbstractModel* model);
 
 
   private:
-    AbstractModel*             model;
+    void separateZone();
 
 
+  private:
+    AbstractModel*             model;        //!< the reference to the model that has to be handled
+    Quadtree*                  quadtree;     //!< the reference to the created quadtree
+
+    AbstractModel*             playerModel;  //!< referece to the player model, if needed for overlap calculations
+    float                      overlapSize;  //!< the size of overlaping
+
+    int                        treeDepth;    //!< depth of the quadtree
+    float                      minLength;    //!< min length of a quadtree node
 };
 
