Index: /code/branches/presentation/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc
===================================================================
--- /code/branches/presentation/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc	(revision 2486)
+++ /code/branches/presentation/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc	(revision 2486)
@@ -0,0 +1,80 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#include "BoxCollisionShape.h"
+
+#include "BulletCollision/CollisionShapes/btBoxShape.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "tools/BulletConversions.h"
+
+namespace orxonox
+{
+    CreateFactory(BoxCollisionShape);
+
+    BoxCollisionShape::BoxCollisionShape(BaseObject* creator) : CollisionShape(creator)
+    {
+        RegisterObject(BoxCollisionShape);
+
+        this->halfExtents_ = Vector3(1, 1, 1);
+        updateBox();
+
+        this->registerVariables();
+    }
+
+    BoxCollisionShape::~BoxCollisionShape()
+    {
+        if (this->isInitialized())
+            delete this->collisionShape_;
+    }
+
+    void BoxCollisionShape::registerVariables()
+    {
+        registerVariable(this->halfExtents_, variableDirection::toclient, new NetworkCallback<BoxCollisionShape>(this, &BoxCollisionShape::updateBox));
+    }
+
+    void BoxCollisionShape::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(BoxCollisionShape, XMLPort, xmlelement, mode);
+
+        XMLPortParam(BoxCollisionShape, "halfExtents",  setHalfExtents,  getHalfExtents,  xmlelement, mode);
+        XMLPortParamLoadOnly(BoxCollisionShape, "width",  setWidth,  xmlelement, mode);
+        XMLPortParamLoadOnly(BoxCollisionShape, "height", setHeight, xmlelement, mode);    
+        XMLPortParamLoadOnly(BoxCollisionShape, "length", setLength, xmlelement, mode);    
+    }
+
+    void BoxCollisionShape::updateBox()
+    {
+        if (this->collisionShape_)
+            delete this->collisionShape_;
+        this->collisionShape_ = new btBoxShape(omni_cast<btVector3>(this->halfExtents_));
+        this->updateParent();
+    }
+}
Index: /code/branches/presentation/src/orxonox/objects/collisionshapes/BoxCollisionShape.h
===================================================================
--- /code/branches/presentation/src/orxonox/objects/collisionshapes/BoxCollisionShape.h	(revision 2486)
+++ /code/branches/presentation/src/orxonox/objects/collisionshapes/BoxCollisionShape.h	(revision 2486)
@@ -0,0 +1,74 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _BoxCollisionShape_H__
+#define _BoxCollisionShape_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "CollisionShape.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport BoxCollisionShape : public CollisionShape
+    {
+        public:
+            BoxCollisionShape(BaseObject* creator);
+            virtual ~BoxCollisionShape();
+
+            void registerVariables();
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+            inline void setHalfExtents(const Vector3& extents)
+                { this->halfExtents_ = extents; updateBox(); }
+            inline const Vector3& getHalfExtents() const
+                { return halfExtents_;}
+
+            inline void setWidth(float value)
+                { this->halfExtents_.z = value / 2; updateBox(); }
+            inline float getWidth() const
+                { return this->halfExtents_.z * 2; }
+
+            inline void setHeight(float value)
+                { this->halfExtents_.y = value / 2; updateBox(); }
+            inline float getHeight() const
+                { return this->halfExtents_.y * 2; }
+
+            inline void setLength(float value)
+                { this->halfExtents_.x = value / 2; updateBox(); }
+            inline float getLength() const
+                { return this->halfExtents_.x * 2; }
+
+            void updateBox();
+
+        private:
+            Vector3 halfExtents_;
+     };
+}
+
+#endif /* _BoxCollisionShape_H__ */
Index: /code/branches/presentation/src/orxonox/objects/collisionshapes/CMakeLists.txt
===================================================================
--- /code/branches/presentation/src/orxonox/objects/collisionshapes/CMakeLists.txt	(revision 2485)
+++ /code/branches/presentation/src/orxonox/objects/collisionshapes/CMakeLists.txt	(revision 2486)
@@ -1,5 +1,7 @@
 SET( SRC_FILES
+  BoxCollisionShape.cc
   CollisionShape.cc
   CompoundCollisionShape.cc
+  ConeCollisionShape.cc
   PlaneCollisionShape.cc
   SphereCollisionShape.cc
Index: /code/branches/presentation/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc
===================================================================
--- /code/branches/presentation/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc	(revision 2486)
+++ /code/branches/presentation/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc	(revision 2486)
@@ -0,0 +1,80 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#include "ConeCollisionShape.h"
+
+#include "BulletCollision/CollisionShapes/btConeShape.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "tools/BulletConversions.h"
+
+namespace orxonox
+{
+    CreateFactory(ConeCollisionShape);
+
+    ConeCollisionShape::ConeCollisionShape(BaseObject* creator) : CollisionShape(creator)
+    {
+        RegisterObject(ConeCollisionShape);
+
+        this->radius_ = 1.0f;
+        this->height_ = 1.0f;
+        updateCone();
+
+        this->registerVariables();
+    }
+
+    ConeCollisionShape::~ConeCollisionShape()
+    {
+        if (this->isInitialized())
+            delete this->collisionShape_;
+    }
+
+    void ConeCollisionShape::registerVariables()
+    {
+        registerVariable(this->radius_, variableDirection::toclient, new NetworkCallback<ConeCollisionShape>(this, &ConeCollisionShape::updateCone));
+        registerVariable(this->height_, variableDirection::toclient, new NetworkCallback<ConeCollisionShape>(this, &ConeCollisionShape::updateCone));
+    }
+
+    void ConeCollisionShape::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(ConeCollisionShape, XMLPort, xmlelement, mode);
+
+        XMLPortParam(ConeCollisionShape, "radius", setRadius, getRadius, xmlelement, mode);
+        XMLPortParam(ConeCollisionShape, "height", setHeight, getHeight, xmlelement, mode);    
+    }
+
+    void ConeCollisionShape::updateCone()
+    {
+        if (this->collisionShape_)
+            delete this->collisionShape_;
+        this->collisionShape_ = new btConeShape(this->radius_, this->height_);
+        this->updateParent();
+    }
+}
Index: /code/branches/presentation/src/orxonox/objects/collisionshapes/ConeCollisionShape.h
===================================================================
--- /code/branches/presentation/src/orxonox/objects/collisionshapes/ConeCollisionShape.h	(revision 2486)
+++ /code/branches/presentation/src/orxonox/objects/collisionshapes/ConeCollisionShape.h	(revision 2486)
@@ -0,0 +1,65 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _ConeCollisionShape_H__
+#define _ConeCollisionShape_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "CollisionShape.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport ConeCollisionShape : public CollisionShape
+    {
+        public:
+            ConeCollisionShape(BaseObject* creator);
+            virtual ~ConeCollisionShape();
+
+            void registerVariables();
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+            inline void setRadius(float value)
+                { this->radius_ = value; updateCone(); }
+            inline float getRadius() const
+                { return radius_; }
+
+            inline void setHeight(float value)
+                { this->height_ = value; updateCone(); }
+            inline float getHeight() const
+                { return this->height_; }
+
+            void updateCone();
+
+        private:
+            float radius_;
+            float height_;
+     };
+}
+
+#endif /* _ConeCollisionShape_H__ */
Index: /code/branches/presentation/src/orxonox/objects/collisionshapes/SphereCollisionShape.h
===================================================================
--- /code/branches/presentation/src/orxonox/objects/collisionshapes/SphereCollisionShape.h	(revision 2485)
+++ /code/branches/presentation/src/orxonox/objects/collisionshapes/SphereCollisionShape.h	(revision 2486)
@@ -48,5 +48,5 @@
                 { this->radius_ = radius; updateSphere(); }
             inline float getRadius() const
-                { return this->radius_;}
+                { return this->radius_; }
 
             void updateSphere();
