Index: orxonox/trunk/src/lib/collision_detection/bounding_volume.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bounding_volume.cc	(revision 4558)
+++ orxonox/trunk/src/lib/collision_detection/bounding_volume.cc	(revision 4560)
@@ -17,4 +17,5 @@
 
 #include "bounding_volume.h"
+#include "vector.h"
 
 using namespace std;
Index: orxonox/trunk/src/lib/collision_detection/bounding_volume.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bounding_volume.h	(revision 4558)
+++ orxonox/trunk/src/lib/collision_detection/bounding_volume.h	(revision 4560)
@@ -24,5 +24,5 @@
   inline const Vector* getCenter() const { return this->center; }
 
-  virtual tList<sVect3D>* getVertices() const = NULL;
+  virtual sVect3D* getVertices() const = NULL;
   virtual void mergeWith(const BoundingVolume &bv) = NULL;
 
@@ -32,5 +32,5 @@
 
 
- protected:
+ public:
   Vector*             center;                     //!< Center point of box
 
Index: orxonox/trunk/src/lib/collision_detection/obb.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb.h	(revision 4558)
+++ orxonox/trunk/src/lib/collision_detection/obb.h	(revision 4560)
@@ -22,7 +22,7 @@
 
   inline const Vector* getAxis () const { return this->axis; }
-  inline const sVect3D* getHalfLength() const { return this->halfLength; } 
+  inline const float* getHalfLength() const { return this->halfLength; } 
 
-  virtual tList<sVect3D>* getVertices() const { return this->verticesBuffer; }
+  virtual sVect3D* getVertices() const { return this->vertices; }
   virtual void mergeWith(const BoundingVolume &bv);
 
Index: orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 4558)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 4560)
@@ -56,6 +56,6 @@
 {
   this->bvElement = this->createBox();
-  this->calculateBoxAttributes(box);
-  this->forkBox(box);
+  this->calculateBoxAttributes(this->bvElement, verticesList, length);
+  this->forkBox(this->bvElement);
 }
 
@@ -67,5 +67,5 @@
 
 
-void OBBTreeNode::calculateBoxAttributes(OBB* box)
+void OBBTreeNode::calculateBoxAttributes(OBB* box, sVec3D* verticesList, int length)
 {
   float     facelet[length];                         //!< surface area of the i'th triangle of the convex hull
@@ -75,5 +75,5 @@
   Vector    p, q, r;                                 //!< holder of the polygon data, much more conveniant to work with Vector than sVec3d
   Vector    t1, t2;                                  //!< temporary values
-  float     covariance[3][3];                        //!< the covariance matrix
+  float**   covariance;                               //!< the covariance matrix
     
   this->numOfVertices = length;
@@ -130,5 +130,5 @@
       printf(" |\n");
     }
-  printf("center: %f, %f, %f\n\n", centre.x, centre.y, centre.z);
+  printf("center: %f, %f, %f\n\n", center.x, center.y, center.z);
 
   for(int i = 0; i < length; i++)
@@ -137,8 +137,13 @@
     }
 
-
+   
+  for(int i = 0; i < 3; ++i)
+    {
     
-  box->covarianceMatrix = covariance;
-  box->center = center;
+      box->covarianceMatrix[i][0] = covariance[i][0];
+      box->covarianceMatrix[i][1] = covariance[i][1];
+      box->covarianceMatrix[i][3] = covariance[i][2];
+    }
+  *box->center = center;
 
 
@@ -161,7 +166,7 @@
   for(int i = 0; i < 3; ++i)
     {
-      if( aLength < box->axis[i])
+      if( aLength < box->axis[i].len())
 	{
-	  aLength = box->axis[i];
+	  aLength = box->axis[i].len();
 	  axisNr = i;
 	}
@@ -194,7 +199,7 @@
   this->bvElement->axis;
   
-  glBegin(GL_TRIANGLE);
-  glVertex3f(this->bvElement->center );
-  glEnd();
+  //glBegin(GL_TRIANGLE);
+  //glVertex3f(this->bvElement->center );
+  //glEnd();
 }
 
Index: orxonox/trunk/src/lib/collision_detection/obb_tree_node.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree_node.h	(revision 4558)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree_node.h	(revision 4560)
@@ -27,5 +27,5 @@
   virtual void spawnBVTree(const int depth, sVec3D *verticesList, const int length);
 
-  BoundingVolume* getBV(int index) const { return this->bvElement; }
+  BoundingVolume* getBV(int index) const { return (BoundingVolume*)this->bvElement; }
   inline const int getIndex() { return this->treeIndex; }  
 
@@ -38,11 +38,10 @@
  private:
   OBB* createBox();
-  void calculateBoxAttributes(OBB* box);
+  void calculateBoxAttributes(OBB* box, sVec3D* verticesList, int length);
   void forkBox(OBB* box);
   
 
-
  protected:
-  BoundingVolume* bvElement;
+  OBB* bvElement;
   OBBTreeNode* nodeLeft;
   OBBTreeNode* nodeRight;
