Index: /code/branches/hud/src/orxonox/hud/BarV1.cc
===================================================================
--- /code/branches/hud/src/orxonox/hud/BarV1.cc	(revision 985)
+++ /code/branches/hud/src/orxonox/hud/BarV1.cc	(revision 985)
@@ -0,0 +1,68 @@
+/*
+*   ORXONOX - the hottest 3D action shooter ever to exist
+*
+*
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
+
+#include <OgreOverlayManager.h>
+#include <OgreOverlayElement.h>
+#include <OgreStringConverter.h>
+#include <OgreColourValue.h>
+#include <string.h>
+
+#include "BarV1.h"
+
+namespace orxonox
+{
+  using namespace Ogre;
+    
+/*  Bar::Bar(const Ogre::String& s){}
+  
+  Bar::~Bar(void){}
+  
+  */
+  void Bar::setPercentage(float percentage){
+    percentage_=percentage;
+    if(dir_){setWidth(int(percentage_* getWidth()));}
+	else {setHeight(int(percentage_ * getHeight()));}
+    }
+
+
+/*  void Bar::setPercentage(float percentage){
+    percentage_ = percentage;
+//    setWidth(getWidth());
+  }
+
+*/
+
+  
+  void Bar::setColor(ColourValue color){
+    color_=color;
+    setColour(color);
+  }
+	  
+	
+}
+
+
Index: /code/branches/hud/src/orxonox/hud/BarV1.h
===================================================================
--- /code/branches/hud/src/orxonox/hud/BarV1.h	(revision 985)
+++ /code/branches/hud/src/orxonox/hud/BarV1.h	(revision 985)
@@ -0,0 +1,61 @@
+/*
+*   ORXONOX - the hottest 3D action shooter ever to exist
+*
+*
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
+
+
+#ifndef _BAR_H__
+#define _BAR_H__
+
+#include <string>
+#include <OgreColourValue.h>
+#include <OgreOverlayElement.h>
+#include <OgrePrerequisites.h>
+#include <string.h>
+#include "../OrxonoxPrereqs.h"
+
+
+
+namespace orxonox
+{
+  class Bar : public Ogre::OverlayElement
+  {
+  private:
+    float percentage_;
+    bool dir_;
+    Ogre::ColourValue color_;
+	
+	
+  public:
+/*    Bar(const Ogre::String& s);
+    ~Bar(void);
+*/    void setPercentage(float percentage);
+    void setColor(Ogre::ColourValue color);
+  };
+}
+
+#endif
+
+
Index: /code/branches/hud/src/orxonox/hud/HUDV2.cc
===================================================================
--- /code/branches/hud/src/orxonox/hud/HUDV2.cc	(revision 985)
+++ /code/branches/hud/src/orxonox/hud/HUDV2.cc	(revision 985)
@@ -0,0 +1,220 @@
+/*
+*   ORXONOX - the hottest 3D action shooter ever to exist
+*
+*
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
+
+#include "OrxonoxStableHeaders.h"
+
+#include <OgreOverlayManager.h>
+#include <OgreOverlayElement.h>
+#include <OgreStringConverter.h>
+
+#include "HUD.h"
+#include "Bar.h"
+
+
+namespace orxonox
+{
+  using namespace Ogre;
+
+  HUD::HUD(void)
+  {
+    init();
+
+    setTime(99,55);
+
+    setTargetWindowName("HURRA");
+    setTargetWindowDistance(12);
+    setTargetWindowStatus("Dead");
+    setTargetWindowDistance(30);
+
+    setEnergyValue(60);
+
+    setShieldLeftTopValue(true);
+    setShieldRightTopValue(false);
+    setShieldLeftBottomValue(false);
+    setShieldRightBottomValue(true);
+
+    setRocket1(11);
+    setRocket2(22);
+    setRocket3(33);
+    setRocket4(44);
+
+    setEnergyDistr(33,33,34);
+
+    setPrimar(3);
+
+    energyDistrPixelX_ = 100;
+    energyDistrPixelY_ = 86;
+
+
+  }
+
+
+  HUD::~HUD( void ){
+
+  }
+
+  void HUD::setTime(int i, int j){
+    timeMin_=i;
+    timeSec_=j;
+    timeText_->setCaption(StringConverter::toString(timeMin_) + ":" + StringConverter::toString(timeSec_));
+  }
+
+  void HUD::setTargetWindowName(std::string i){
+    targetWindowName_=i;
+    targetWindowNameText_->setCaption( targetWindowName_ );
+  }
+
+  void HUD::setTargetWindowStatus(std::string i){
+    targetWindowStatus_=i;
+    targetWindowStatusText_->setCaption( targetWindowStatus_ );
+  }
+
+  void HUD::setTargetWindowDistance(int i){
+    targetWindowDistance_=i;
+    targetWindowDistanceText_->setCaption(StringConverter::toString(targetWindowDistance_) + "km" );
+  }
+
+  void HUD::setTargetWindowHitRating(int i){
+    targetWindowHitRating_=i;
+    targetWindowHitRatingText_->setCaption(StringConverter::toString(targetWindowHitRating_) + "%" );
+  }
+
+  void HUD::setEnergyValue(int i){
+    energyValue_=i;
+    energyLength_->setWidth((int)((float)energyValue_/(float)100*200));
+  }
+
+  void HUD::setShieldLeftTopValue(bool i){
+    shieldLeftTopValue_=i;
+    if (shieldLeftTopValue_) shieldLeftTop_->show();
+    else shieldLeftTop_->hide();
+  }
+
+  void HUD::setShieldRightTopValue(bool i){
+    shieldRightTopValue_=i;
+    if (shieldRightTopValue_) shieldRightTop_->show();
+    else shieldRightTop_->hide();
+  }
+
+  void HUD::setShieldLeftBottomValue(bool i){
+    shieldLeftBottomValue_=i;
+    if (shieldLeftBottomValue_) shieldLeftBottom_->show();
+    else shieldLeftBottom_->hide();
+  }
+
+  void HUD::setShieldRightBottomValue(bool i){
+    shieldRightBottomValue_=i;
+    if (shieldRightBottomValue_) shieldRightBottom_->show();
+    else shieldRightBottom_->hide();
+  }
+
+  void HUD::setRocket1(int i){
+    rocket1_=i;
+    rocketNum1_->setCaption(StringConverter::toString(rocket1_));
+  }
+
+  void HUD::setRocket2(int i){
+    rocket2_=i;
+    rocketNum2_->setCaption(StringConverter::toString(rocket2_));
+  }
+
+  void HUD::setRocket3(int i){
+    rocket3_=i;
+    rocketNum3_->setCaption(StringConverter::toString(rocket3_));
+  }
+
+  void HUD::setRocket4(int i){
+    rocket4_=i;
+    rocketNum4_->setCaption(StringConverter::toString(rocket4_));
+  }
+
+  void HUD::setEnergyDistr(float s, float e, float l){
+    energyDistrShield_=s;
+    energyDistrEngine_=e;
+    energyDistrLaser_=l;
+
+    float energyDistrShieldInv_ = 100 - energyDistrShield_;
+    float energyDistrEngineInv_ = 100 - energyDistrEngine_;
+    float energyDistrLaserInv_ = 100 - energyDistrLaser_;
+
+    float energyDistrT_ = -energyDistrPixelX_/((energyDistrPixelX_-energyDistrPixelX_/2*energyDistrShieldInv_/(energyDistrShieldInv_+energyDistrEngineInv_))*energyDistrLaserInv_*(energyDistrShieldInv_+energyDistrEngineInv_)/energyDistrShieldInv_/(energyDistrLaserInv_+energyDistrEngineInv_)+energyDistrPixelX_/2+energyDistrPixelX_/2*energyDistrEngineInv_/(energyDistrEngineInv_+energyDistrLaserInv_));
+    float energyDistrX_ = (-energyDistrPixelX_/2-energyDistrPixelX_/2*energyDistrEngineInv_/(energyDistrEngineInv_+energyDistrLaserInv_))*energyDistrT_;
+    float energyDistrY_ = energyDistrPixelY_+energyDistrPixelY_*energyDistrLaserInv_/(energyDistrLaserInv_+energyDistrEngineInv_)*energyDistrT_;
+
+    energyDistrPoint_->setLeft((int)energyDistrX_-3);
+    energyDistrPoint_->setTop((int)energyDistrY_-3);
+
+  }
+
+  void HUD::setPrimar(int i){
+    primarValue_=i;
+    if(i==1){
+      primarChoice_->setLeft(2);
+      primarChoice_->setWidth(48);
+    }
+    if(i==2){
+      primarChoice_->setLeft(51);
+      primarChoice_->setWidth(49);
+    }
+    else{
+      primarChoice_->setLeft(101);
+      primarChoice_->setWidth(48);
+    }
+  }
+
+
+
+  void HUD::init(void)
+  {
+    timeText_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/Time/Text");
+
+    targetWindowNameText_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/Name");
+    targetWindowDistanceText_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/DistanceText");
+    targetWindowStatusText_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/StatusText");
+    targetWindowHitRatingText_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/HitRatingText");
+
+    energyLength_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/EnergyBackground");
+
+    shieldLeftTop_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/shieldLeftTop");
+    shieldRightTop_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/shieldRightTop");
+    shieldLeftBottom_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/shieldLeftBottom");
+    shieldRightBottom_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/shieldRightBottom");
+
+    rocketNum1_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum1");
+    rocketNum2_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum2");
+    rocketNum3_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum3");
+    rocketNum4_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum4");
+
+    // FIXME: unused vars!
+    float energyDistrPixelX_ = 100;
+    float energyDistrPixelY_ = 86;
+    energyDistrPoint_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/EnergyDistrPoint");
+
+    primarChoice_ = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/PrimarChoice");
+  }
+
+}
Index: /code/branches/hud/src/orxonox/hud/HUDV2.h
===================================================================
--- /code/branches/hud/src/orxonox/hud/HUDV2.h	(revision 985)
+++ /code/branches/hud/src/orxonox/hud/HUDV2.h	(revision 985)
@@ -0,0 +1,114 @@
+/*
+*   ORXONOX - the hottest 3D action shooter ever to exist
+*
+*
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
+
+#ifndef _HUD_H__
+#define _HUD_H__
+
+#include <string>
+
+#include <OgrePrerequisites.h>
+
+#include "../OrxonoxPrereqs.h"
+
+
+namespace orxonox
+{
+  class _OrxonoxExport HUD
+  {
+  private:
+    Ogre::OverlayElement* timeText_;
+    Ogre::OverlayElement* targetWindowNameText_;
+    Ogre::OverlayElement* targetWindowStatusText_;
+    Ogre::OverlayElement* targetWindowDistanceText_;
+    Ogre::OverlayElement* targetWindowHitRatingText_;
+    Ogre::OverlayElement* energyLength_;
+    Ogre::OverlayElement* shieldLeftTop_;
+    Ogre::OverlayElement* shieldRightTop_;
+    Ogre::OverlayElement* shieldLeftBottom_;
+    Ogre::OverlayElement* shieldRightBottom_;
+    Ogre::OverlayElement* rocketNum1_;
+    Ogre::OverlayElement* rocketNum2_;
+    Ogre::OverlayElement* rocketNum3_;
+    Ogre::OverlayElement* rocketNum4_;
+    Ogre::OverlayElement* energyDistrPoint_;
+    Ogre::OverlayElement* primarChoice_;
+
+    int timeMin_;
+    int timeSec_;
+
+    std::string targetWindowName_;
+    std::string targetWindowStatus_;
+    int targetWindowDistance_;
+    int targetWindowHitRating_;
+
+    int energyValue_;
+
+    bool shieldLeftTopValue_;
+    bool shieldRightTopValue_;
+    bool shieldLeftBottomValue_;
+    bool shieldRightBottomValue_;
+
+    int rocket1_;
+    int rocket2_;
+    int rocket3_;
+    int rocket4_;
+
+    float energyDistrShield_;
+    float energyDistrEngine_;
+    float energyDistrLaser_;
+
+    float energyDistrPixelX_;
+    float energyDistrPixelY_;
+
+    int primarValue_;
+
+  public:
+    HUD( void );
+    ~HUD( void );
+    void init( void );
+
+    void setTime(int i, int j);
+    void setTargetWindowName(std::string i);
+    void setTargetWindowStatus(std::string i);
+    void setTargetWindowDistance(int i);
+    void setTargetWindowHitRating(int i);
+    void setEnergyValue(int i);
+    void setShieldLeftTopValue(bool i);
+    void setShieldRightTopValue(bool i);
+    void setShieldLeftBottomValue(bool i);
+    void setShieldRightBottomValue(bool i);
+    void setRocket1(int i);
+    void setRocket2(int i);
+    void setRocket3(int i);
+    void setRocket4(int i);
+    void setEnergyDistr(float s, float e, float l);
+    void setPrimar(int i);
+
+  };
+}
+
+#endif /* _HUD_H__ */
Index: /code/branches/hud/src/orxonox/hud/Radar.cpp
===================================================================
--- /code/branches/hud/src/orxonox/hud/Radar.cpp	(revision 985)
+++ /code/branches/hud/src/orxonox/hud/Radar.cpp	(revision 985)
@@ -0,0 +1,77 @@
+/*
+*   ORXONOX - the hottest 3D action shooter ever to exist
+*
+*
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
+
+#include <OgreOverlayManager.h>
+#include <OgreOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
+#include <OgreStringConverter.h>
+#include <string.h>
+
+#include "Radar.h"
+
+
+namespace orxonox
+{
+  using namespace Ogre;
+
+  RadarObject::RadarObject(int name, Ogre::Real x, Ogre::Real y, Ogre::Real z){
+    name_ = name;
+    x = x_;
+    y = y_;
+    z = z_;
+  }
+
+  RadarObject::~RadarObject(void){}
+    
+  void RadarObject::reset(Ogre::Real x, Ogre::Real y, Ogre::Real z){
+    x = x_;
+    y = y_;
+    z = z_;
+  }
+
+
+  Radar::Radar(){
+    number = 0;
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
Index: /code/branches/hud/src/orxonox/hud/Radar.h
===================================================================
--- /code/branches/hud/src/orxonox/hud/Radar.h	(revision 985)
+++ /code/branches/hud/src/orxonox/hud/Radar.h	(revision 985)
@@ -0,0 +1,76 @@
+/*
+*   ORXONOX - the hottest 3D action shooter ever to exist
+*
+*
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
+
+
+#ifndef _RADAR_H__
+#define _RADAR_H__
+
+#include <string.h>
+#include <OgreOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
+#include <OgrePrerequisites.h>
+#include "../OrxonoxPrereqs.h"
+
+namespace orxonox
+{
+
+  class _OrxonoxExport RadarObject
+  {
+  private:
+    int name_;
+    Ogre::Real x_;
+    Ogre::Real y_;
+    Ogre::Real z_;
+  public:
+    RadarObject(int name, Ogre::Real x, Ogre::Real y, Ogre::Real z);
+    ~RadarObject();
+    void reset(Ogre::Real x, Ogre::Real y, Ogre::Real z);
+    inline Ogre::Real getX(){return x_;}
+    inline Ogre::Real getY(){return y_;}
+    inline Ogre::Real getZ(){return z_;}
+    inline int getName(){return name_;}
+  };
+
+
+  class _OrxonoxExport Radar
+  {
+  private:
+    int number;
+
+
+  public:
+    Radar();
+    ~Radar();
+
+
+
+
+
+  };
+}	
+
+#endif
