Index: code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 1622)
+++ code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 1623)
@@ -291,5 +291,5 @@
     @param name
         The name of the overlay defined BaseObject::setName() (usually done with the "name"
-        attribute in the xml file.
+        attribute in the xml file).
     */
     /*static*/ void OrxonoxOverlay::scaleOverlay(const std::string& name, float scale)
@@ -305,5 +305,5 @@
     @param name
         The name of the overlay defined BaseObject::setName() (usually done with the "name"
-        attribute in the xml file.
+        attribute in the xml file).
     */
     /*static*/ void OrxonoxOverlay::scrollOverlay(const std::string& name, const Vector2& scroll)
@@ -319,5 +319,5 @@
     @param name
         The name of the overlay defined BaseObject::setName() (usually done with the "name"
-        attribute in the xml file.
+        attribute in the xml file).
     */
     /*static*/ void OrxonoxOverlay::rotateOverlay(const std::string& name, const Degree& angle)
Index: code/branches/hud/src/orxonox/overlays/OverlayGroup.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/OverlayGroup.cc	(revision 1622)
+++ code/branches/hud/src/orxonox/overlays/OverlayGroup.cc	(revision 1623)
@@ -27,4 +27,9 @@
  */
 
+/**
+@file
+@brief Definition of the OverlayGroup class.
+*/
+
 #include "OrxonoxStableHeaders.h"
 #include "OverlayGroup.h"
@@ -45,22 +50,32 @@
 
     OverlayGroup::OverlayGroup()
-        : scale_(1.0, 1.0)
     {
         RegisterObject(OverlayGroup);
     }
 
-    OverlayGroup::~OverlayGroup()
-    {
-    }
-
+    /**
+    @brief
+        Loads the group and all its children OrxonoxOverlays.
+    @copydoc
+        BaseObject::XMLPort()
+    */
     void OverlayGroup::XMLPort(Element& xmlElement, XMLPort::Mode mode)
     {
         BaseObject::XMLPort(xmlElement, mode);
 
+        if (mode == XMLPort::LoadObject)
+        {
+            // set default values
+            this->scale_  = Vector2(1.0, 1.0);
+            this->scroll_ = Vector2(0.0, 0.0);
+        }
+
         XMLPortParam(OverlayGroup, "scale", setScale, getScale, xmlElement, mode);
         XMLPortParam(OverlayGroup, "scroll", setScroll, getScroll, xmlElement, mode);
+        // loads all the child elements
         XMLPortObject(OverlayGroup, OrxonoxOverlay, "", addElement, getElement, xmlElement, mode, false, true);
     }
 
+    //! Scales every element in the map.
     void OverlayGroup::setScale(const Vector2& scale)
     {
@@ -70,4 +85,5 @@
     }
 
+    //! Scrolls every element in the map.
     void OverlayGroup::setScroll(const Vector2& scroll)
     {
@@ -77,4 +93,10 @@
     }
 
+    /**
+    @brief
+        Adds an element to the map (used when loading with XMLPort).
+    @remarks
+        The names of the OrxonoxOverlays have to be unique!
+    */
     void OverlayGroup::addElement(OrxonoxOverlay* element)
     {
@@ -87,4 +109,5 @@
     }
 
+    //! Returns a different element as long as index < hudElements_.size().
     OrxonoxOverlay* OverlayGroup::getElement(unsigned int index)
     {
@@ -101,4 +124,13 @@
 
 
+    //########### Console commands ############
+
+    /**
+    @brief
+        Hides/shows an overlay group by its name.
+    @param name
+        The name of the group defined BaseObject::setName() (usually done with the "name"
+        attribute in the xml file).
+    */
     /*static*/ void OverlayGroup::toggleVisibility(const std::string& name)
     {
@@ -110,4 +142,11 @@
     }
 
+    /**
+    @brief
+        Scales an overlay group by its name.
+    @param name
+        The name of the group defined BaseObject::setName() (usually done with the "name"
+        attribute in the xml file).
+    */
     /*static*/ void OverlayGroup::scaleGroup(const std::string& name, float scale)
     {
@@ -119,4 +158,11 @@
     }
 
+    /**
+    @brief
+        Scrolls an overlay group by its name.
+    @param name
+        The name of the group defined BaseObject::setName() (usually done with the "name"
+        attribute in the xml file).
+    */
     /*static*/ void OverlayGroup::scrollGroup(const std::string& name, const Vector2& scroll)
     {
Index: code/branches/hud/src/orxonox/overlays/OverlayGroup.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/OverlayGroup.h	(revision 1622)
+++ code/branches/hud/src/orxonox/overlays/OverlayGroup.h	(revision 1623)
@@ -27,4 +27,9 @@
  */
 
+/**
+@file
+@brief Declaration of the OverlayGroup class.
+*/
+
 #ifndef _OverlayGroup_H__
 #define _OverlayGroup_H__
@@ -39,9 +44,17 @@
 namespace orxonox
 {
+    /**
+    @brief
+        OverlayGroup does almost exactly what it says: It groups OrxonoxOverlays together.
+        You can scroll the entire group by a certain amount. Scale however works differently
+        than expected: Each OrxonoxOverlay scales individually. That's quite useful when you
+        create your HUD with an OverlayGroup and then want to alter its size.
+    */
     class _OrxonoxExport OverlayGroup : public BaseObject
     {
     public:
         OverlayGroup();
-        ~OverlayGroup();
+        //! Empty destructor.
+        ~OverlayGroup() { }
 
         void XMLPort(Element& xmlElement, XMLPort::Mode mode);
@@ -50,13 +63,16 @@
         static void scaleGroup(const std::string& name, float scale);
         static void scrollGroup(const std::string& name, const Vector2& scroll);
-        static void rotateGroup(const std::string& name, Radian angle);
 
     private:
+        //! Scales each OrxonoxOverlay individually by scale.
         void scale(const Vector2& scale) { this->setScale(scale * this->scale_); }
         void setScale(const Vector2& scale);
+        //! Returns the current size of the group.
         Vector2 getScale() const { return this->scale_; }
 
+        //! Scrolls each OrxonoxOverlay individually by scroll.
         void scroll(const Vector2& scroll) { this->setScroll(scroll + this->scroll_); }
         void setScroll(const Vector2& scroll);
+        //! Returns the current scrolling offset of the group.
         Vector2 getScroll() const { return this->scale_; }
 
@@ -64,7 +80,7 @@
         OrxonoxOverlay* getElement(unsigned int index);
 
-        std::map<std::string, OrxonoxOverlay*> hudElements_;
-        Vector2 scale_;
-        Vector2 scroll_;
+        std::map<std::string, OrxonoxOverlay*> hudElements_;    //!< Contains all the OrxonoxOverlays of the this group.
+        Vector2 scale_;                                         //!< Current scale (independant of the elements).
+        Vector2 scroll_;                                        //!< Current scrolling offset.
     };
 }
