Index: /code/branches/hud3/src/orxonox/hud/HUD.cc
===================================================================
--- /code/branches/hud3/src/orxonox/hud/HUD.cc	(revision 1309)
+++ /code/branches/hud3/src/orxonox/hud/HUD.cc	(revision 1310)
@@ -65,5 +65,5 @@
 
     energyCounter = static_cast<SmartBarOverlayElement*>(overlayManager.createOverlayElement("SmartBar", "energyCounter"));
-    energyCounter->show();
+    //energyCounter->show();
 
 
@@ -133,15 +133,14 @@
 */
 
-    energyCounterPanel->setLeft(-50);
-    energyCounterPanel->setTop(10);
-    energyCounterPanel->setWidth(100);
-    energyCounterPanel->setHeight(20);
-    energyCounterPanel->setHorizontalAlignment(Ogre::GHA_CENTER);
-    energyCounterPanel->setMetricsMode(Ogre::GMM_PIXELS);
+    energyCounterPanel->setLeft(0.0);
+    energyCounterPanel->setTop(0.0);
+    energyCounterPanel->setWidth(1.0);
+    energyCounterPanel->setHeight(1.0);
+    energyCounterPanel->setMetricsMode(Ogre::GMM_RELATIVE);
 
-    energyCounter->initSmartBarOverlayElement(-100,0,200,20,BarOverlayElement::LEFT);
+    energyCounter->initSmartBarOverlayElement(10,10,200,20,BarOverlayElement::LEFT);
     energyCounter->reset(80);
 
-    radar->initRadarOverlayElement(10,10,200,energyCounterPanel);
+    radar->initRadarOverlayElement(0.5, 0.8, 0.2, energyCounterPanel);
 
 
Index: /code/branches/hud3/src/orxonox/hud/RadarOverlayElement.cc
===================================================================
--- /code/branches/hud3/src/orxonox/hud/RadarOverlayElement.cc	(revision 1309)
+++ /code/branches/hud3/src/orxonox/hud/RadarOverlayElement.cc	(revision 1310)
@@ -41,4 +41,5 @@
 #include <OgreStringConverter.h>
 #include "RadarOverlayElement.h"
+#include "GraphicsEngine.h"
 
 namespace orxonox
@@ -56,9 +57,12 @@
     }
 
-    void RadarOverlayElement::initRadarOverlayElement(Real left, Real top, int dim, Ogre::OverlayContainer* container){
-        dim_ = dim;
-        left_ = left;
-        top_ = top;
-        count_ = 100;
+    void RadarOverlayElement::initRadarOverlayElement(Real left, Real top, Real dim, Ogre::OverlayContainer* container){
+
+        windowW = GraphicsEngine::getSingleton().getWindowWidth();
+        windowH = GraphicsEngine::getSingleton().getWindowHeight();
+        dim_ = dim*windowH;                         //conver relative data to absolute
+        left_ = left*windowW-dim_/2;                // ...
+        top_ = top*windowH-dim_/2;                  // ...
+        count_ = 0;
         container_ = container;
 
@@ -69,9 +73,9 @@
         initialOrth_ = Vector3(0.0, 0.0, 1.0);
         currentOrth_ = initialOrth_;
-     
+
         setMetricsMode(Ogre::GMM_PIXELS);
-        setPosition(left,top);
+        setMaterialName("Orxonox/Radar");
+        setPosition(left_, top_);
         setDimensions(dim_,dim_);
-        setMaterialName("Orxonox/Radar");
 
         om = &Ogre::OverlayManager::getSingleton();
@@ -95,22 +99,15 @@
 
     void RadarOverlayElement::update() {
-    	if(count_++ >= 100) {		// for testing purposes
-			count_ = 0;
-			COUT(3) << "pos:  " << shipPos_ << std::endl;
-			COUT(3) << "dir:  " << currentDir_ << std::endl;
-			COUT(3) << "orth: " << currentOrth_ << std::endl << std::endl;     	
-    	}
         shipPos_ = SpaceShip::instance_s->getPosition();
         currentDir_ = SpaceShip::instance_s->getOrientation()*initialDir_; 		// according to beni....
 		currentOrth_ = SpaceShip::instance_s->getOrientation()*initialOrth_;
-		
+
 		radius_ = acos((currentDir_.dotProduct(targetPos_ - shipPos_))/((targetPos_ - shipPos_).length()*currentDir_.length()));
         phi_ = acos((currentOrth_.dotProduct(targetPos_ - shipPos_))/((targetPos_ - shipPos_).length()*currentOrth_.length()));
-        vec_ = currentDir_.crossProduct(currentOrth_);
-        if(vec_.dotProduct(targetPos_ - shipPos_) > 0) right_ = true;
+        if((currentDir_.crossProduct(currentOrth_)).dotProduct(targetPos_ - shipPos_) > 0) right_ = true;
         else right_=false;
-        
+
         if (right_){
-            point->setPosition(sin(phi_)*radius_/3.5*dim_/2+dim_/2+left_-2,-cos(phi_)*radius_/3.5*dim_/2+dim_/2+top_-2);         
+            point->setPosition(sin(phi_)*radius_/3.5*dim_/2+dim_/2+left_-2,-cos(phi_)*radius_/3.5*dim_/2+dim_/2+top_-2);
         }
         else {
Index: /code/branches/hud3/src/orxonox/hud/RadarOverlayElement.h
===================================================================
--- /code/branches/hud3/src/orxonox/hud/RadarOverlayElement.h	(revision 1309)
+++ /code/branches/hud3/src/orxonox/hud/RadarOverlayElement.h	(revision 1310)
@@ -49,17 +49,17 @@
     Ogre::OverlayContainer* container_;
     Ogre::OverlayManager* om;       //pointer to the one and only overlay manager
-    Vector3 initialDir_;	        //initial direction of ship
-    Vector3 currentDir_;            //current direction of ship
-    Vector3 initialOrth_;
+    Vector3 initialDir_;	        // direction of nose
+    Vector3 currentDir_;
+    Vector3 initialOrth_;           // direction of normal
     Vector3 currentOrth_;
     Vector3 targetPos_;             //position of target
     Vector3 shipPos_;               //position of ship
-    Vector3 vec_;                   //vector product dir X ort
-    double radius_;                  //defines the radius in the radar
-    double phi_;                   //defines the angle in the radar
-    float left_, top_;
+
+    double radius_;                 //defines the radius on the radar
+    double phi_;                    //defines the angle on the radar
+    float left_, top_, dim_;
     bool right_;                    //checks whether the object is on the right side (since cos is not bijective)
     int count_;
-    int dim_;
+    int windowW, windowH;
 
   public:
@@ -69,5 +69,5 @@
     virtual void initialise();
     void update();
-    void initRadarOverlayElement(Real left, Real top, int dim, Ogre::OverlayContainer* container);
+    void initRadarOverlayElement(Real left, Real top, Real dim, Ogre::OverlayContainer* container);
     void setMainShipPosition(int dirX, int dirY, int dirZ, int ortX, int ortY, int ortZ);
     int newShip(int X, int Y, int Z);
Index: /code/branches/hud3/src/orxonox/objects/SpaceShip.cc
===================================================================
--- /code/branches/hud3/src/orxonox/objects/SpaceShip.cc	(revision 1309)
+++ /code/branches/hud3/src/orxonox/objects/SpaceShip.cc	(revision 1310)
@@ -270,13 +270,16 @@
       camName_=camera;
       // change camera attributes here, if you want to ;)
-    }
-    
+      Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,-1,0));
+      Quaternion q2 = Quaternion(Radian(Degree(90)),Vector3(0,0,-1));
+      //camNode_->setOrientation(q1*q2);
+    }
+
     void SpaceShip::getFocus(){
       COUT(4) << "requesting focus" << std::endl;
       if(network::Client::getSingleton()==0 || network::Client::getSingleton()->getShipID()==objectID)
         CameraHandler::getInstance()->requestFocus(cam_);
-      
-    }
-    
+
+    }
+
     void SpaceShip::createCamera(){
 //       COUT(4) << "begin camera creation" << std::endl;
Index: /code/branches/hud3/src/orxonox/objects/SpaceShip.h
===================================================================
--- /code/branches/hud3/src/orxonox/objects/SpaceShip.h	(revision 1309)
+++ /code/branches/hud3/src/orxonox/objects/SpaceShip.h	(revision 1310)
@@ -88,5 +88,5 @@
 
             Ogre::SceneNode* camNode_;
-            Camera* cam_;  
+            Camera* cam_;
             std::string camName_;
 
