Index: trunk/src/lib/collision_detection/bounding_volume.h
===================================================================
--- trunk/src/lib/collision_detection/bounding_volume.h	(revision 5687)
+++ trunk/src/lib/collision_detection/bounding_volume.h	(revision 5688)
@@ -24,5 +24,5 @@
     inline const Vector* getCenter() const { return this->center; }
 
-    sVec3D* getVertices() const { return this->vertices; }
+    const sVec3D* getVertices() const { return this->vertices; }
     virtual void mergeWith(const BoundingVolume &bv) = 0;
 
@@ -34,5 +34,5 @@
     Vector*             center;                     //!< Center point of box
 
-    sVec3D*             vertices;                   //!< if CD_STORE_VERTICES enabled, this is the place, where the vert. will be sotred
+    const sVec3D*       vertices;                   //!< if CD_STORE_VERTICES enabled, this is the place, where the vert. will be sotred
     int                 numOfVertices;              //!< number of vertices in the vertices buffer
     bool                bOrigVertices;              //!< is true if the vertices pointer points to the original model data - only important for deleting
Index: trunk/src/lib/collision_detection/bv_tree_node.h
===================================================================
--- trunk/src/lib/collision_detection/bv_tree_node.h	(revision 5687)
+++ trunk/src/lib/collision_detection/bv_tree_node.h	(revision 5688)
@@ -26,5 +26,5 @@
   virtual ~BVTreeNode();
 
-  virtual void spawnBVTree(const int depth, sVec3D *verticesList, const int length ) = 0;
+  virtual void spawnBVTree(const int depth, const sVec3D *verticesList, unsigned int length ) = 0;
   virtual void spawnBVTree(const int depth, const modelInfo& modInfo) = 0;
 
Index: trunk/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 5687)
+++ trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 5688)
@@ -168,5 +168,5 @@
  * this function creates an Bounding Volume tree from a vertices soup (no triangle data)
  */
-void OBBTreeNode::spawnBVTree(const int depth, sVec3D *verticesList, const int length)
+void OBBTreeNode::spawnBVTree(const int depth, const sVec3D *verticesList, unsigned int length)
 {
   PRINT(3)("\n");
@@ -225,5 +225,5 @@
 
 
-void OBBTreeNode::calculateBoxCovariance(OBB* box, sVec3D* verticesList, int length)
+void OBBTreeNode::calculateBoxCovariance(OBB* box, const sVec3D* verticesList, unsigned int length)
 {
   float     facelet[length];                         //!< surface area of the i'th triangle of the convex hull
@@ -417,5 +417,5 @@
 {}
 
-void OBBTreeNode::calculateBoxEigenvectors(OBB* box, sVec3D* verticesList, int length)
+void OBBTreeNode::calculateBoxEigenvectors(OBB* box, const sVec3D* verticesList, unsigned int length)
 {
 
@@ -468,10 +468,10 @@
 void OBBTreeNode::calculateBoxAxis(OBB* box, const modelInfo& modInfo)
 {
-  this->calculateBoxAxis( box, &modInfo.pVertices, modInfo.numVertices);
-}
-
-
-
-void OBBTreeNode::calculateBoxAxis(OBB* box, sVec3D* verticesList, int length)
+  //this->calculateBoxAxis( box, modInfo.pVertices, modInfo.numVertices);
+}
+
+
+
+void OBBTreeNode::calculateBoxAxis(OBB* box, const sVec3D* verticesList, unsigned int length)
 {
 
@@ -617,6 +617,6 @@
   the points depending on which side they are located
   */
-  tList<sVec3D>      partition1;                           //!< the vertex partition 1
-  tList<sVec3D>      partition2;                           //!< the vertex partition 2
+  tList<const sVec3D>      partition1;                           //!< the vertex partition 1
+  tList<const sVec3D>      partition2;                           //!< the vertex partition 2
 
 
@@ -642,6 +642,6 @@
 
   /* now comes the separation into two different sVec3D arrays */
-  tIterator<sVec3D>* iterator;                             //!< the iterator to go through the lists
-  sVec3D*            element;                              //!< the elements
+  tIterator<const sVec3D>* iterator;                       //!< the iterator to go through the lists
+  const sVec3D*      element;                              //!< the elements
   int                index;                                //!< index storage place
   sVec3D*            vertList1;                            //!< the vertex list 1
Index: trunk/src/lib/collision_detection/obb_tree_node.h
===================================================================
--- trunk/src/lib/collision_detection/obb_tree_node.h	(revision 5687)
+++ trunk/src/lib/collision_detection/obb_tree_node.h	(revision 5688)
@@ -28,5 +28,5 @@
     virtual ~OBBTreeNode();
 
-    virtual void spawnBVTree(const int depth, sVec3D *verticesList, const int length);
+    virtual void spawnBVTree(const int depth, const sVec3D *verticesList, unsigned int length);
     virtual void spawnBVTree(const int depth, const modelInfo& modInfo);
 
@@ -42,7 +42,7 @@
 
   private:
-    void calculateBoxCovariance(OBB* box, sVec3D* verticesList, int length);
-    void calculateBoxEigenvectors(OBB* box, sVec3D* verticesList, int length);
-    void calculateBoxAxis(OBB* box, sVec3D* verticesList, int length);
+    void calculateBoxCovariance(OBB* box, const sVec3D* verticesList, unsigned int length);
+    void calculateBoxEigenvectors(OBB* box, const sVec3D* verticesList, unsigned int length);
+    void calculateBoxAxis(OBB* box, const sVec3D* verticesList, unsigned int length);
     
     void calculateBoxCovariance(OBB* box, const modelInfo& modInfo);
@@ -62,10 +62,10 @@
   private:
     unsigned int        treeIndex;                  //!< Index number of the BV in the tree
-    sVec3D*             vertices;                   //!< pointer to the vertices data
+    const sVec3D*       vertices;                   //!< pointer to the vertices data
     int                 numOfVertices;              //!< number of vertices in vertices data
     int                 depth;                      //!< the depth of the node in the tree
     static OBBTree*     obbTree;                    //!< reference to the obb tree
     Plane*              separationPlane;            //!< the separation plane of the obb
-    sVec3D*             sepPlaneCenter;             //!< only needed to draw plane @todo: separationPlane drawing
+    const sVec3D*       sepPlaneCenter;             //!< only needed to draw plane @todo: separationPlane drawing
     int                 longestAxisIndex;           //!< only needed to draw plane
 
Index: trunk/src/lib/math/vector.cc
===================================================================
--- trunk/src/lib/math/vector.cc	(revision 5687)
+++ trunk/src/lib/math/vector.cc	(revision 5688)
@@ -513,5 +513,5 @@
  * @param c: third point
 */
-Plane::Plane (Vector a, Vector b, Vector c)
+Plane::Plane (const Vector& a, const Vector& b, const Vector& c)
 {
   n = (a-b).cross(c-b);
@@ -524,5 +524,5 @@
  * @param p: anchor point
 */
-Plane::Plane (Vector norm, Vector p)
+Plane::Plane (const Vector& norm, const Vector& p)
 {
   n = norm;
@@ -536,5 +536,5 @@
   * @param p: anchor point
 */
-Plane::Plane (Vector norm, sVec3D g)
+Plane::Plane (const Vector& norm, const sVec3D& g)
 {
   Vector p(g[0], g[1], g[2]);
Index: trunk/src/lib/math/vector.h
===================================================================
--- trunk/src/lib/math/vector.h	(revision 5687)
+++ trunk/src/lib/math/vector.h	(revision 5688)
@@ -276,8 +276,8 @@
   float k;    //!< Offset constant
 
-  Plane (Vector a, Vector b, Vector c);
-  Plane (Vector norm, Vector p);
-  Plane (Vector norm, sVec3D p);
-  Plane (Vector n, float k) : n(n), k(k) {} //!< assignment constructor
+  Plane (const Vector& a, const Vector& b, const Vector& c);
+  Plane (const Vector& norm, const Vector& p);
+  Plane (const Vector& norm, const sVec3D& p);
+  Plane (const Vector& n, float k) : n(n), k(k) {} //!< assignment constructor
   Plane () : n(Vector(1,1,1)), k(0) {}
   ~Plane () {}
