Index: code/trunk/data/levels/collisionShapes.oxw
===================================================================
--- code/trunk/data/levels/collisionShapes.oxw	(revision 10192)
+++ code/trunk/data/levels/collisionShapes.oxw	(revision 10193)
@@ -2,5 +2,5 @@
  name = "Collision shapes"
  description = "A level with some collision shapes."
- tags = "showcase"
+ tags = "test"
  screenshot = "emptylevel.png"
 />
Index: code/trunk/src/libraries/tools/BulletDebugDrawer.cc
===================================================================
--- code/trunk/src/libraries/tools/BulletDebugDrawer.cc	(revision 10192)
+++ code/trunk/src/libraries/tools/BulletDebugDrawer.cc	(revision 10193)
@@ -21,9 +21,8 @@
     BulletDebugDrawer::BulletDebugDrawer(Ogre::SceneManager* sceneManager)
     {
-        this->drawer = new DebugDrawer(sceneManager, 0.5f);
+        this->drawer_ = new DebugDrawer(sceneManager, 0.5f);
+        this->bFill_ = true;
 
         mContactPoints = &mContactPoints1;
-        //mLines->estimateVertexCount(100000);
-        //mLines->estimateIndexCount(0);
 
         static const char* matName = "OgreBulletCollisionsDebugDefault";
@@ -44,10 +43,10 @@
     {
         Ogre::Root::getSingleton().removeFrameListener(this);
-        delete this->drawer;
+        delete this->drawer_;
     }
 
     void BulletDebugDrawer::drawLine(const btVector3& from, const btVector3& to, const btVector3& color)
     {
-        this->drawer->drawLine(vector3(from), vector3(to), colour(color, 1.0f));
+        this->drawer_->drawLine(vector3(from), vector3(to), colour(color, 1.0f));
     }
 
@@ -59,5 +58,5 @@
     void BulletDebugDrawer::drawSphere(const btVector3& p, btScalar radius, const btVector3& color)
     {
-        this->drawer->drawSphere(vector3(p), Ogre::Quaternion::IDENTITY, radius, colour(color, 1.0f), true);
+        this->drawer_->drawSphere(vector3(p), Ogre::Quaternion::IDENTITY, radius, colour(color, 1.0f), this->bFill_);
     }
 
@@ -65,5 +64,5 @@
     {
         Ogre::Matrix4 matrix = matrix4(transform);
-        this->drawer->drawSphere(matrix.getTrans(), matrix.extractQuaternion(), radius, colour(color, 1.0f), true);
+        this->drawer_->drawSphere(matrix.getTrans(), matrix.extractQuaternion(), radius, colour(color, 1.0f), this->bFill_);
     }
 
@@ -79,5 +78,5 @@
         corners[6]  = Ogre::Vector3(bbMin[0], bbMin[1], bbMax[2]);
         corners[7]  = Ogre::Vector3(bbMax[0], bbMin[1], bbMax[2]);
-        this->drawer->drawCuboid(corners, colour(color, 1.0f), true);
+        this->drawer_->drawCuboid(corners, colour(color, 1.0f), this->bFill_);
     }
 
@@ -93,5 +92,5 @@
         corners[6]  = Ogre::Vector3(trans * btVector3(bbMin[0], bbMin[1], bbMax[2]));
         corners[7]  = Ogre::Vector3(trans * btVector3(bbMax[0], bbMin[1], bbMax[2]));
-        this->drawer->drawCuboid(corners, colour(color, 1.0f), true);
+        this->drawer_->drawCuboid(corners, colour(color, 1.0f), this->bFill_);
     }
 
@@ -99,5 +98,5 @@
     {
         Ogre::Matrix4 matrix = matrix4(transform);
-        this->drawer->drawCylinder(matrix.getTrans(), matrix.extractQuaternion(), radius, halfHeight * 2, colour(color, 1.0f), true);
+        this->drawer_->drawCylinder(matrix.getTrans(), matrix.extractQuaternion(), radius, halfHeight * 2, colour(color, 1.0f), this->bFill_);
     }
 
@@ -105,5 +104,5 @@
     {
         Ogre::Matrix4 matrix = matrix4(transform);
-        this->drawer->drawCone(matrix.getTrans(), matrix.extractQuaternion(), radius, height, colour(color, 1.0f), true);
+        this->drawer_->drawCone(matrix.getTrans(), matrix.extractQuaternion(), radius, height, colour(color, 1.0f), this->bFill_);
     }
 
@@ -127,5 +126,5 @@
         {
             ContactPoint& cp = *i;
-            this->drawer->drawLine(cp.from, cp.to, cp.color);
+            this->drawer_->drawLine(cp.from, cp.to, cp.color);
             if (now <= cp.dieTime)
                 newCP->push_back(cp);
@@ -135,5 +134,5 @@
 
         // Right before the frame is rendered, call DebugDrawer::build().
-        this->drawer->build();
+        this->drawer_->build();
         return true;
     }
@@ -142,5 +141,5 @@
     {
         // After the frame is rendered, call DebugDrawer::clear()
-        this->drawer->clear();
+        this->drawer_->clear();
         return true;
     }
@@ -166,3 +165,9 @@
         return mDebugMode;
     }
+
+    void BulletDebugDrawer::configure(bool bFill, float fillAlpha)
+    {
+        this->bFill_ = bFill;
+        this->drawer_->setFillAlpha(fillAlpha);
+    }
 }
Index: code/trunk/src/libraries/tools/BulletDebugDrawer.h
===================================================================
--- code/trunk/src/libraries/tools/BulletDebugDrawer.h	(revision 10192)
+++ code/trunk/src/libraries/tools/BulletDebugDrawer.h	(revision 10193)
@@ -38,4 +38,6 @@
             virtual int getDebugMode() const;
 
+            void configure(bool bFill, float fillAlpha);
+
         protected:
             bool frameStarted(const Ogre::FrameEvent& evt);
@@ -51,5 +53,7 @@
             };
 
-            DebugDrawer* drawer;
+            bool bFill_;
+            DebugDrawer* drawer_;
+
             DebugDrawModes mDebugMode;
             std::vector<ContactPoint>* mContactPoints;
Index: code/trunk/src/libraries/tools/DebugDrawer.cc
===================================================================
--- code/trunk/src/libraries/tools/DebugDrawer.cc	(revision 10192)
+++ code/trunk/src/libraries/tools/DebugDrawer.cc	(revision 10193)
@@ -146,9 +146,9 @@
         Ogre::Matrix4 transform(rotation);
         transform.setTrans(centre + rotation * Ogre::Vector3(0, height / 2, 0));
-        this->buildCircle(transform, radius, segmentsCount, colour, alpha);
+        this->buildCircle(transform, radius, segmentsCount, colour);
         this->buildFilledCircle(transform, radius, segmentsCount, colour, true, alpha);
 
         transform.setTrans(centre + rotation * Ogre::Vector3(0, -height / 2, 0));
-        this->buildCircle(transform, radius, segmentsCount, colour, alpha);
+        this->buildCircle(transform, radius, segmentsCount, colour);
         this->buildFilledCircle(transform, radius, segmentsCount, colour, false, alpha);
 
@@ -181,5 +181,5 @@
         Ogre::Matrix4 transform(rotation);
         transform.setTrans(centre + rotation * Ogre::Vector3(0, -height / 2, 0));
-        this->buildCircle(transform, radius, segmentsCount, colour, alpha);
+        this->buildCircle(transform, radius, segmentsCount, colour);
         this->buildFilledCircle(transform, radius, segmentsCount, colour, false, alpha);
 
@@ -300,5 +300,5 @@
     void DebugDrawer::drawCircle(const Ogre::Vector3& centre, const Ogre::Quaternion& rotation, float radius, const Ogre::ColourValue& colour, bool isFilled)
     {
-        int segmentsCount = std::min(100.0, radius / 2.5);
+        int segmentsCount = std::min<int>(100, (int) (radius / 2.5));
 
         Ogre::Matrix4 transform(rotation);
@@ -312,5 +312,5 @@
     void DebugDrawer::drawCylinder(const Ogre::Vector3& centre, const Ogre::Quaternion& rotation, float radius, float height, const Ogre::ColourValue& colour, bool isFilled)
     {
-        int segmentsCount = std::min(100.0, radius / 2.5);
+        int segmentsCount = std::min<int>(100, (int) (radius / 2.5));
 
         if (isFilled)
@@ -322,5 +322,5 @@
     void DebugDrawer::drawCone(const Ogre::Vector3& centre, const Ogre::Quaternion& rotation, float radius, float height, const Ogre::ColourValue& colour, bool isFilled)
     {
-        int segmentsCount = std::min(100.0, radius / 2.5);
+        int segmentsCount = std::min<int>(100, (int) (radius / 2.5));
 
         if (isFilled)
Index: code/trunk/src/libraries/tools/DebugDrawer.h
===================================================================
--- code/trunk/src/libraries/tools/DebugDrawer.h	(revision 10192)
+++ code/trunk/src/libraries/tools/DebugDrawer.h	(revision 10193)
@@ -43,4 +43,9 @@
             void drawSphere(const Ogre::Vector3& centre, const Ogre::Quaternion& rotation, float radius, const Ogre::ColourValue& colour, bool isFilled = false);
             void drawTetrahedron(const Ogre::Vector3& centre, float scale, const Ogre::ColourValue& colour, bool isFilled = false);
+
+            void setFillAlpha(float alpha)
+            {
+                fillAlpha = alpha;
+            }
 
             bool getEnabled()
