Changeset 1615 for code/branches/hud/src/orxonox/overlays/hud
- Timestamp:
- Jun 22, 2008, 12:06:55 AM (16 years ago)
- Location:
- code/branches/hud/src/orxonox/overlays/hud
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/hud/src/orxonox/overlays/hud/HUDBar.cc
r1614 r1615 43 43 unsigned int HUDBar::materialcount_s = 0; 44 44 45 using namespace Ogre;46 47 45 HUDBar::HUDBar() 48 46 : bar_(0) … … 54 52 HUDBar::~HUDBar() 55 53 { 56 if (this->isInitialized()) 57 { 58 if (this->bar_) 59 OverlayManager::getSingleton().destroyOverlayElement(this->bar_); 60 // FIXME: Check whether we have to delete the textureUnitState_; 61 } 54 if (this->bar_) 55 Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->bar_); 62 56 } 63 57 … … 82 76 barOffsetLeft_s = 0.06f; 83 77 barOffsetTop_s = 0.0f; 84 this->bar_ = static_cast<PanelOverlayElement*>(OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "Bar" + getUniqueNumberStr())); 78 79 this->bar_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton() 80 .createOverlayElement("Panel", "HUDBar_bar_" + getUniqueNumberStr())); 85 81 this->bar_->setMaterialName(materialname); 86 82 this->background_->addChild(bar_); -
code/branches/hud/src/orxonox/overlays/hud/HUDBar.h
r1614 r1615 41 41 namespace orxonox 42 42 { 43 class _OrxonoxExport HUDBar : public OrxonoxOverlay44 {43 class _OrxonoxExport HUDBar : public OrxonoxOverlay 44 { 45 45 public: 46 HUDBar();47 virtual ~HUDBar();46 HUDBar(); 47 virtual ~HUDBar(); 48 48 49 virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);49 virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode); 50 50 51 void setValue(float value);52 void addColour(float value, const ColourValue& colour);53 void clearColours();51 virtual void setValue(float value); 52 void addColour(float value, const ColourValue& colour); 53 void clearColours(); 54 54 55 inline void setRightToLeft(bool r2l)55 inline void setRightToLeft(bool r2l) 56 56 { this->right2Left_ = r2l; } 57 inline bool getRightToLeft() const57 inline bool getRightToLeft() const 58 58 { return this->right2Left_; } 59 inline float getValue() const59 inline float getValue() const 60 60 { return this->value_; } 61 61 62 62 private: 63 static unsigned int materialcount_s; 64 bool right2Left_; 65 bool autoColour_; // whether bar changes colour automatically 66 float value_; // progress of bar 67 Ogre::PanelOverlayElement* bar_; 68 Ogre::TextureUnitState* textureUnitState_; 69 std::map<float, ColourValue> colours_; 63 bool right2Left_; 64 bool autoColour_; //!< whether bar changes colour automatically 65 float value_; //!< progress of bar 70 66 71 float barWidth_s; 72 float barHeight_s; 73 float barOffsetLeft_s; 74 float barOffsetTop_s; 67 Ogre::PanelOverlayElement* bar_; 68 Ogre::TextureUnitState* textureUnitState_; 69 std::map<float, ColourValue> colours_; 70 71 float barWidth_s; 72 float barHeight_s; 73 float barOffsetLeft_s; 74 float barOffsetTop_s; 75 76 static unsigned int materialcount_s; 75 77 }; 76 78 } -
code/branches/hud/src/orxonox/overlays/hud/HUDFPSText.cc
r1614 r1615 35 35 namespace orxonox 36 36 { 37 CreateFactory(HUDFPSText);37 CreateFactory(HUDFPSText); 38 38 39 HUDFPSText::HUDFPSText()40 {41 RegisterObject(HUDFPSText);42 }39 HUDFPSText::HUDFPSText() 40 { 41 RegisterObject(HUDFPSText); 42 } 43 43 44 HUDFPSText::~HUDFPSText() 45 { 46 if (this->isInitialized()) 44 HUDFPSText::~HUDFPSText() 47 45 { 48 46 } 49 }50 47 51 void HUDFPSText::tick(float dt)52 {53 float fps = GraphicsEngine::getSingleton().getAverageFPS();54 this->text_->setCaption(this->getCaption() + convertToString(fps));55 }48 void HUDFPSText::tick(float dt) 49 { 50 float fps = GraphicsEngine::getSingleton().getAverageFPS(); 51 this->text_->setCaption(this->getCaption() + convertToString(fps)); 52 } 56 53 } -
code/branches/hud/src/orxonox/overlays/hud/HUDFPSText.h
r1599 r1615 32 32 #include "OrxonoxPrereqs.h" 33 33 34 #include " HUDText.h"34 #include "overlays/OverlayText.h" 35 35 36 36 namespace orxonox 37 37 { 38 class _OrxonoxExport HUDFPSText : public HUDText, public Tickable39 {40 public:41 HUDFPSText();42 virtual~HUDFPSText();38 class _OrxonoxExport HUDFPSText : public OverlayText, public Tickable 39 { 40 public: 41 HUDFPSText(); 42 ~HUDFPSText(); 43 43 44 //virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode); 44 private: 45 void tick(float dt); 45 46 46 virtual void tick(float dt); 47 48 private: 49 }; 47 private: 48 }; 50 49 } 51 50 #endif /* _HUDFPSText_H__ */ -
code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.cc
r1614 r1615 35 35 36 36 #include "util/Math.h" 37 #include "util/String.h" 37 38 #include "core/ConsoleCommand.h" 38 39 #include "objects/SpaceShip.h" … … 45 46 CreateFactory(HUDNavigation); 46 47 47 //HUDNavigation* HUDNavigation::instance_s = 0;48 49 using namespace Ogre;50 51 48 HUDNavigation::HUDNavigation() 52 : container_(0) 53 , navMarker_(0) 54 , aimMarker_(0) 55 , navText_(0) 49 : navMarker_(0) 50 , aimMarker_(0) 51 , navText_(0) 56 52 { 57 53 RegisterObject(HUDNavigation); 58 59 /*assert(instance_s == 0); // singleton class60 HUDNavigation::instance_s = this;*/61 54 } 62 55 63 56 HUDNavigation::~HUDNavigation() 64 57 { 65 if (this->isInitialized()) 66 { 67 if (this->navMarker_) 68 OverlayManager::getSingleton().destroyOverlayElement(this->navMarker_); 69 if (this->navText_) 70 OverlayManager::getSingleton().destroyOverlayElement(this->navText_); 71 if (this->aimMarker_) 72 OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_); 73 if (this->container_) 74 OverlayManager::getSingleton().destroyOverlayElement(this->container_); 75 } 76 77 //HUDNavigation::instance_s = 0; 58 if (this->navMarker_) 59 Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navMarker_); 60 if (this->navText_) 61 Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navText_); 62 if (this->aimMarker_) 63 Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_); 78 64 } 79 65 … … 84 70 if (mode == XMLPort::LoadObject) 85 71 { 86 // create container because we cannot add a Text element to an Overlay87 container_ = static_cast<OverlayContainer*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_navContainer"));88 89 72 // create nav text 90 navText_ = static_cast<TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("TextArea", getName() + "_navText")); 73 navText_ = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton() 74 .createOverlayElement("TextArea", "HUDNavigation_navText_" + getUniqueNumberStr())); 91 75 navText_->setCharHeight(0.05f); 92 76 navText_->setFontName("Monofur"); 93 77 94 78 // create nav marker 95 navMarker_ = static_cast<PanelOverlayElement*>(OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_navMarker")); 79 navMarker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton() 80 .createOverlayElement("Panel", "HUDNavigation_navMarker_" + getUniqueNumberStr())); 96 81 navMarker_->setMaterialName("Orxonox/NavArrows"); 97 82 navMarkerSize_ = 0.05; //default … … 99 84 100 85 // create aim marker 101 aimMarker_ = static_cast<PanelOverlayElement*>(OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_aimMarker")); 86 aimMarker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton() 87 .createOverlayElement("Panel", "HUDNavigation_aimMarker_" + getUniqueNumberStr())); 102 88 aimMarker_->setMaterialName("Orxonox/NavCrosshair"); 103 89 aimMarkerSize_ = 0.04; // default 104 90 105 container_->addChild(navMarker_);106 container_->addChild(aimMarker_);107 container_->addChild(navText_);108 container_->show(); 109 110 overlay_->add2D(container_);91 background_->addChild(navMarker_); 92 background_->addChild(aimMarker_); 93 background_->addChild(navText_); 94 95 // hide at first 96 this->setVisibility(false); 111 97 } 112 98 … … 122 108 } 123 109 124 void HUDNavigation::setNavMarkerSize(float size)125 {126 this->navMarkerSize_ = size;127 }128 129 float HUDNavigation::getNavMarkerSize() const130 {131 return this->navMarkerSize_;132 }133 134 void HUDNavigation::setAimMarkerSize(float size)135 {136 this->aimMarkerSize_ = size;137 }138 139 float HUDNavigation::getAimMarkerSize() const140 {141 return this->aimMarkerSize_;142 }143 144 110 void HUDNavigation::setFont(const std::string& font) 145 111 { … … 148 114 } 149 115 150 std::stringHUDNavigation::getFont() const116 const std::string& HUDNavigation::getFont() const 151 117 { 152 118 if (this->navText_) 153 119 return this->navText_->getFontName(); 154 120 else 155 return "";121 return blankString; 156 122 } 157 123 … … 310 276 navText_->setCharHeight(navText_->getCharHeight() * yScale); 311 277 } 312 313 /*static*/ /*HUDNavigation& HUDNavigation::getInstance()314 {315 assert(instance_s);316 return *instance_s;317 }*/318 278 } -
code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.h
r1614 r1615 39 39 class _OrxonoxExport HUDNavigation : public OrxonoxOverlay, public Tickable 40 40 { 41 41 public: 42 42 HUDNavigation(); 43 43 ~HUDNavigation(); … … 45 45 void XMLPort(Element& xmlElement, XMLPort::Mode mode); 46 46 47 void tick(float dt); 48 49 float getDist2Focus() const; 50 51 protected: 47 private: 52 48 void sizeChanged(); 53 49 void angleChanged() { } 54 50 void positionChanged() { } 55 51 56 private: 57 HUDNavigation(HUDNavigation& instance); 52 void tick(float dt); 53 54 // XMLPort accessors 55 void setNavMarkerSize(float size) { this->navMarkerSize_ = size; } 56 float getNavMarkerSize() const { return this->navMarkerSize_; } 57 58 void setAimMarkerSize(float size) { this->aimMarkerSize_ = size; } 59 float getAimMarkerSize() const { return this->aimMarkerSize_; } 60 61 void setTextSize(float size); 62 float getTextSize() const; 63 64 void setFont(const std::string& font); 65 const std::string& getFont() const; 66 58 67 void updateMarker(); 59 68 void updateFocus(); 69 float getDist2Focus() const; 60 70 61 // XMLPort accessors62 void setNavMarkerSize(float size);63 float getNavMarkerSize() const;64 void setAimMarkerSize(float size);65 float getAimMarkerSize() const;66 void setTextSize(float size);67 float getTextSize() const;68 void setFont(const std::string& font);69 std::string getFont() const;70 71 Ogre::OverlayContainer* container_; //!< Container that holds the navigation elements72 71 Ogre::PanelOverlayElement* navMarker_; //!< the panel used to show the arrow and the target marker 73 72 float navMarkerSize_; //!< One paramter size of the navigation marker … … 76 75 Ogre::TextAreaOverlayElement* navText_; //!< Text overlay to display the target distance 77 76 bool wasOutOfView_; //!< Performance booster variable: setMaterial is not cheap 78 };77 }; 79 78 } 80 79 -
code/branches/hud/src/orxonox/overlays/hud/HUDRTRText.cc
r1614 r1615 35 35 namespace orxonox 36 36 { 37 CreateFactory(HUDRTRText);37 CreateFactory(HUDRTRText); 38 38 39 HUDRTRText::HUDRTRText()40 {41 RegisterObject(HUDRTRText);42 }39 HUDRTRText::HUDRTRText() 40 { 41 RegisterObject(HUDRTRText); 42 } 43 43 44 HUDRTRText::~HUDRTRText() 45 { 46 if (this->isInitialized()) 44 HUDRTRText::~HUDRTRText() 47 45 { 48 46 } 49 }50 47 51 void HUDRTRText::tick(float dt)52 {53 float rtr = GraphicsEngine::getSingleton().getAverageRTR();54 this->text_->setCaption(this->getCaption() + convertToString(rtr));55 }48 void HUDRTRText::tick(float dt) 49 { 50 float rtr = GraphicsEngine::getSingleton().getAverageRTR(); 51 this->text_->setCaption(this->getCaption() + convertToString(rtr)); 52 } 56 53 } -
code/branches/hud/src/orxonox/overlays/hud/HUDRTRText.h
r1599 r1615 32 32 #include "OrxonoxPrereqs.h" 33 33 34 #include " HUDText.h"34 #include "overlays/OverlayText.h" 35 35 36 36 namespace orxonox 37 37 { 38 class _OrxonoxExport HUDRTRText : public HUDText, public Tickable39 {40 public:41 HUDRTRText();42 virtual~HUDRTRText();38 class _OrxonoxExport HUDRTRText : public OverlayText, public Tickable 39 { 40 public: 41 HUDRTRText(); 42 ~HUDRTRText(); 43 43 44 //virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode); 45 46 virtual void tick(float dt); 47 48 private: 49 }; 44 private: 45 void tick(float dt); 46 }; 50 47 } 51 48 #endif /* _HUDRTRText_H__ */ -
code/branches/hud/src/orxonox/overlays/hud/HUDRadar.cc
r1614 r1615 45 45 CreateFactory(HUDRadar); 46 46 47 using namespace Ogre;48 49 47 HUDRadar::HUDRadar() 50 48 : marker_(0) … … 55 53 HUDRadar::~HUDRadar() 56 54 { 57 if (this->isInitialized()) 55 if (this->marker_) 56 Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->marker_); 57 for (std::vector<Ogre::PanelOverlayElement*>::iterator it = this->radarDots_.begin(); 58 it != this->radarDots_.end(); ++it) 58 59 { 59 if (this->marker_) 60 OverlayManager::getSingleton().destroyOverlayElement(this->marker_); 61 for (std::vector<Ogre::PanelOverlayElement*>::iterator it = this->radarDots_.begin(); 62 it != this->radarDots_.end(); ++it) 63 { 64 OverlayManager::getSingleton().destroyOverlayElement(*it); 65 } 60 Ogre::OverlayManager::getSingleton().destroyOverlayElement(*it); 66 61 } 67 62 } … … 69 64 void HUDRadar::XMLPort(Element& xmlElement, XMLPort::Mode mode) 70 65 { 66 if (mode == XMLPort::LoadObject) 67 this->bCorrectAspect_ = true; 68 71 69 OrxonoxOverlay::XMLPort(xmlElement, mode); 72 70 73 71 if (mode == XMLPort::LoadObject) 74 72 { 73 marker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton() 74 .createOverlayElement("Panel", "HUDRadar_marker_" + getUniqueNumberStr())); 75 marker_->setMaterialName("Orxonox/RadarMarker"); 76 overlay_->add2D(marker_); 77 marker_->hide(); 78 75 79 this->sensitivity_ = 1.0f; 76 80 this->halfDotSizeDistance_ = 3000.0f; … … 85 89 shapeMaterials_[RadarViewable::Triangle] = "RadarSquare.tga"; 86 90 shapeMaterials_[RadarViewable::Square] = "RadarSquare.tga"; 87 88 if (mode == XMLPort::LoadObject)89 {90 marker_ = (Ogre::PanelOverlayElement*)Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_Marker");91 marker_->setMaterialName("Orxonox/RadarMarker");92 overlay_->add2D(marker_);93 marker_->hide();94 }95 91 } 96 92 -
code/branches/hud/src/orxonox/overlays/hud/HUDRadar.h
r1614 r1615 44 44 class _OrxonoxExport HUDRadar : public OrxonoxOverlay, public RadarListener 45 45 { 46 46 public: 47 47 HUDRadar(); 48 48 ~HUDRadar(); … … 50 50 void XMLPort(Element& xmlElement, XMLPort::Mode mode); 51 51 52 float getRadarSensitivity() const { return this->sensitivity_; } 53 void setRadarSensitivity(float sensitivity) { this->sensitivity_ = sensitivity; } 54 52 private: 53 // XML accessors 55 54 float getHalfDotSizeDistance() const { return this->halfDotSizeDistance_; } 56 55 void setHalfDotSizeDistance(float distance) { this->halfDotSizeDistance_ = distance; } … … 59 58 void setMaximumDotSize(float size) { this->maximumDotSize_ = size; } 60 59 61 private: 60 float getRadarSensitivity() const { return this->sensitivity_; } 61 // used also by RadarListener interface! 62 void setRadarSensitivity(float sensitivity) { this->sensitivity_ = sensitivity; } 63 64 // RadarListener interface 62 65 void displayObject(RadarViewable* viewable, bool bIsMarked); 63 float getRadarSensitivity() { return 1.0f; }64 66 void radarTick(float dt); 65 67 -
code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.cc
r1614 r1615 34 34 namespace orxonox 35 35 { 36 CreateFactory(HUDSpeedBar);36 CreateFactory(HUDSpeedBar); 37 37 38 using namespace Ogre; 38 HUDSpeedBar::HUDSpeedBar() 39 { 40 RegisterObject(HUDSpeedBar); 39 41 40 HUDSpeedBar::HUDSpeedBar() 41 { 42 RegisterObject(HUDSpeedBar); 42 } 43 43 44 } 45 46 HUDSpeedBar::~HUDSpeedBar() 47 { 48 if (this->isInitialized()) 44 HUDSpeedBar::~HUDSpeedBar() 49 45 { 50 46 } 51 }52 47 53 void HUDSpeedBar::tick(float dt) 54 { 55 SpaceShip* ship = SpaceShip::getLocalShip(); 56 if (ship) 48 void HUDSpeedBar::tick(float dt) 57 49 { 58 float v = ship->getVelocity().length(); 59 float vmax = ship->getMaxSpeed(); 60 this->setValue(v/vmax); 50 SpaceShip* ship = SpaceShip::getLocalShip(); 51 if (ship) 52 { 53 float v = ship->getVelocity().length(); 54 float vmax = ship->getMaxSpeed(); 55 this->setValue(v/vmax); 56 } 61 57 } 62 }63 58 } -
code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.h
r1614 r1615 37 37 namespace orxonox 38 38 { 39 class _OrxonoxExport HUDSpeedBar : public HUDBar, public Tickable40 {39 class _OrxonoxExport HUDSpeedBar : public HUDBar, public Tickable 40 { 41 41 public: 42 HUDSpeedBar(); 43 virtual ~HUDSpeedBar(); 44 45 //virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode); 46 47 virtual void tick(float dt); 42 HUDSpeedBar(); 43 ~HUDSpeedBar(); 48 44 49 45 private: 50 46 void tick(float dt); 51 47 }; 52 48 }
Note: See TracChangeset
for help on using the changeset viewer.