Index: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc	(revision 6848)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc	(revision 6849)
@@ -30,11 +30,8 @@
 
 #include <string>
-#include <vector>
-#include <map>
 #include <OgreCamera.h>
 #include <OgreOverlayManager.h>
 #include <OgreTextAreaOverlayElement.h>
 #include <OgrePanelOverlayElement.h>
-
 #include "util/Math.h"
 #include "util/Convert.h"
@@ -47,4 +44,5 @@
 #include "controllers/HumanController.h"
 #include "worldentities/pawns/Pawn.h"
+#include "worldentities/WorldEntity.h"
 
 namespace orxonox
@@ -139,6 +137,4 @@
     void HUDNavigation::tick(float dt)
     {
-
-	
         SUPER(HUDNavigation, tick, dt);
 
@@ -291,15 +287,39 @@
     }
     
-//     map <WorldEntity*, pair <Ogre::PanelOverlayElement*, Ogre::TextAreaOverlayElement*> > ActiveObjectList;
+    void HUDNavigation::addObject(RadarViewable* object)
+    {
+        if (object == dynamic_cast<RadarViewable*>(this->getOwner()))
+            return;
+	
+	assert(object);
+	  
+        // Make sure the object hasn't been added yet
+        assert( this->activeObjectList_.find(object) == this->activeObjectList_.end() );
+
+        // Create everything needed to display the object on the radar and add it to the map
+	
+	 // create nav marker
+        Ogre::PanelOverlayElement* panel = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+            .createOverlayElement("Panel", "HUDNavigation_navMarker_" + getUniqueNumberString()));
+	    
+        panel->setMaterialName("Orxonox/NavArrows");
+	 
+        Ogre::TextAreaOverlayElement* text = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton()
+             .createOverlayElement("TextArea", "HUDNavigation_navText_" + getUniqueNumberString()));
+	
+	activeObjectList_[object] = std::make_pair (panel, text) ;	
+	activeObjectList_[object].first->show();
+	activeObjectList_[object].second->show();
+	}
     
-//     void updateActiveObjectMap(){
-//       --> iteration durch die betsehende map über alle keys (Worldentity*)
-// 	     --> check: 'existiert noch' 'sizeChanged' 'angleChanged' 'positionChanged'
-// 		 --> update des aktuellen Objects (Panel & Text) 
-// 		 --> lücke schliessen in der map (aufrücken nach links)
-// 	 --> neue objekte suchen
-// 		 -- map.add neue objekte hinzufügen (pair <panel, text> einfügen.
-//     }	
-    
+    	void HUDNavigation::removeObject(RadarViewable* viewable){
+	  assert(activeObjectList_.find(viewable)!=activeObjectList_.end());
+	  activeObjectList_.erase(viewable);
+	}
+// 	
+//         void HUDNavigation::objectChanged(RadarViewable* viewable){}
+//         float HUDNavigation::getRadarSensitivity(){}
+//         void HUDNavigation::radarTick(float dt){}
+// 	
 
 
Index: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h	(revision 6848)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h	(revision 6849)
@@ -30,6 +30,9 @@
 #define _HUDNavigation_H__
 
+#include <utility>
+#include <map>
 #include "overlays/OverlaysPrereqs.h"
 
+#include "interfaces/RadarListener.h"
 #include "util/OgreForwardRefs.h"
 #include "tools/interfaces/Tickable.h"
@@ -41,6 +44,5 @@
 namespace orxonox
 {
-class WorldEntity;
-    class _OverlaysExport HUDNavigation : public OrxonoxOverlay, public Tickable
+    class _OverlaysExport HUDNavigation : public OrxonoxOverlay, public Tickable, public RadarListener
     {
     public:
@@ -50,7 +52,10 @@
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
         virtual void tick(float dt);
-	
-	virtual map <WorldEntity*, pair <Ogre::PanelOverlayElement*, Ogre::TextAreaOverlayElement*> > ActiveObjectList;
-	
+	virtual void addObject(RadarViewable* object);
+	 
+	virtual void removeObject(RadarViewable* viewable);
+         virtual void objectChanged(RadarViewable* viewable){}
+         inline float getRadarSensitivity() const{}
+         inline void radarTick(float dt) {}
 
     private:
@@ -63,5 +68,5 @@
 
         // XMLPort accessors
-        void setNavMarkerSize(float size) { this->navMarkerSize_ = size; this->sizeChanged(); }
+        void setNavMarkerSize(float size) { this->navMarkerSize_ = size; this->sizeChanged(); } 
         float getNavMarkerSize() const    { return this->navMarkerSize_; }
 
@@ -94,6 +99,8 @@
         bool wasOutOfView_;                         //!< Performance booster variable: setMaterial is not cheap
 	
+	std::map<RadarViewable*, std::pair<Ogre::PanelOverlayElement*, Ogre::TextAreaOverlayElement*> > activeObjectList_;
 	
     };
+    
 }
 
Index: code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc	(revision 6848)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc	(revision 6849)
@@ -45,5 +45,5 @@
 namespace orxonox
 {
-    CreateFactory(HUDRadar);
+    CreateFactory(HUDRadar); 
 
     HUDRadar::HUDRadar(BaseObject* creator)
