Index: orxonox/trunk/src/lib/collision_detection/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/collision_detection/Makefile.am	(revision 4543)
+++ orxonox/trunk/src/lib/collision_detection/Makefile.am	(revision 4544)
@@ -25,4 +25,5 @@
 		     bv_tree_node.h \
 		     bounding_volume.h \
-		     bounding_sphere.h
+		     bounding_sphere.h \
+		     fast_math.h
 
Index: orxonox/trunk/src/lib/collision_detection/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/collision_detection/Makefile.in	(revision 4543)
+++ orxonox/trunk/src/lib/collision_detection/Makefile.in	(revision 4544)
@@ -208,5 +208,6 @@
 		     bv_tree_node.h \
 		     bounding_volume.h \
-		     bounding_sphere.h
+		     bounding_sphere.h \
+		     fast_math.h
 
 all: all-am
Index: orxonox/trunk/src/lib/collision_detection/bv_tree_node.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bv_tree_node.h	(revision 4543)
+++ orxonox/trunk/src/lib/collision_detection/bv_tree_node.h	(revision 4544)
@@ -9,8 +9,8 @@
 
 #include "base_object.h"
+#include "fast_math.h"
 
 // FORWARD DEFINITION
 class BoundingVolume;
-class sVec3D;
 class BVTree;
 template<class T> class tList;
Index: orxonox/trunk/src/lib/collision_detection/collision.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/collision.h	(revision 4543)
+++ orxonox/trunk/src/lib/collision_detection/collision.h	(revision 4544)
@@ -13,5 +13,4 @@
 
 class WorldEntity;
-class sVec3D;
 class BoundingVolume;
 
Index: orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 4543)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 4544)
@@ -19,4 +19,6 @@
 #include "list.h"
 #include "obb.h"
+#include "fast_math.h"
+#include "vector.h"
 
 #include <math.h>
@@ -51,5 +53,5 @@
    \param verticesList: the list of vertices of the object - each vertices triple is interpreted as a triangle
 */
-void OBBTreeNode::spawnBVTree(const int depth, const sVec3D *verticesList, const int length)
+void OBBTreeNode::spawnBVTree(const int depth, sVec3D *verticesList, const int length)
 {
   float     facelet[length];                         //!< surface area of the i'th triangle of the convex hull
@@ -57,10 +59,24 @@
   float     centroid[length];                        //!< centroid of the i'th convex hull  
   OBB*      obb = new OBB();                         //!< the new obb to add
+  Vector    p, q, r;                                 //!< holder of the polygon data, much more conveniant to work with Vector than sVec3d
+  Vector    t1, t2;
 
-  /* fist compute all the convex hull facelets */
-  for(int i = 0; i < length; ++i)
+  /* fist compute all the convex hull face/facelets */
+  for(int i = 0; i < length; i+=3)
     {
-      facelet[i] = 0.5f * fabs(5.0);
+      p = *(verticesList + i);
+      q = *(verticesList + i + 1);
+      r = *(verticesList + i + 2);
+      
+      t1 = p - q; t2 = p - r;
+      
+      /* finding the facelet surface via cross-product */
+      facelet[i] = 0.5f * fabs( t1.cross(t2).len() );
+
+      /* update the entire convex hull surface */
+      face += facelet[i];
     }
+
+
 }
 
Index: orxonox/trunk/src/lib/collision_detection/obb_tree_node.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree_node.h	(revision 4543)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree_node.h	(revision 4544)
@@ -12,5 +12,4 @@
 // FORWARD DEFINITION
 class BoundingVolume;
-class sVec3D;
 
 //! A class that represents a bounding volume tree
@@ -22,5 +21,5 @@
   virtual ~OBBTreeNode();
 
-  virtual void spawnBVTree(const int depth, const sVec3D *verticesList, const int length);
+  virtual void spawnBVTree(const int depth, sVec3D *verticesList, const int length);
 
   BoundingVolume* getBV(int index) const { return this->bvElement; }
