Changeset 1601 for code/branches/hud/src/orxonox/overlays/OverlayGroup.cc
- Timestamp:
- Jun 14, 2008, 6:37:12 PM (16 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
code/branches/hud/src/orxonox/overlays/OverlayGroup.cc
r1600 r1601 28 28 29 29 #include "OrxonoxStableHeaders.h" 30 #include " HUD.h"30 #include "OverlayGroup.h" 31 31 32 32 #include <string> … … 44 44 #include "objects/WorldEntity.h" 45 45 #include "GraphicsEngine.h" 46 #include " HUDBar.h"47 #include " RadarObject.h"48 #include " RadarOverlayElement.h"49 #include " Navigation.h"46 #include "hud/HUDBar.h" 47 #include "hud/RadarObject.h" 48 #include "hud/RadarOverlayElement.h" 49 #include "hud/HUDNavigation.h" 50 50 51 51 namespace orxonox 52 52 { 53 CreateFactory( HUD);54 55 SetConsoleCommandShortcut( HUD, cycleNavigationFocus).setAccessLevel(AccessLevel::User);56 SetConsoleCommandShortcut( HUD, releaseNavigationFocus).setAccessLevel(AccessLevel::User);57 SetConsoleCommand( HUD, toggleVisibility, false).setAccessLevel(AccessLevel::User);58 59 HUD* HUD::instance_s = 0;53 CreateFactory(OverlayGroup); 54 55 SetConsoleCommandShortcut(OverlayGroup, cycleNavigationFocus).setAccessLevel(AccessLevel::User); 56 SetConsoleCommandShortcut(OverlayGroup, releaseNavigationFocus).setAccessLevel(AccessLevel::User); 57 SetConsoleCommand(OverlayGroup, toggleVisibility, false).setAccessLevel(AccessLevel::User); 58 59 OverlayGroup* OverlayGroup::hudInstance_s = 0; 60 60 61 61 using namespace Ogre; 62 62 63 HUD::HUD()64 { 65 assert( instance_s == 0);66 instance_s = this;67 RegisterObject( HUD);63 OverlayGroup::OverlayGroup() 64 { 65 assert(hudInstance_s == 0); 66 hudInstance_s = this; 67 RegisterObject(OverlayGroup); 68 68 69 69 // Singleton like in Ogre. Constructor and destructor are public, … … 82 82 } 83 83 84 HUD::~HUD()84 OverlayGroup::~OverlayGroup() 85 85 { 86 86 if (this->isInitialized()) … … 109 109 } 110 110 111 instance_s = 0;112 } 113 114 void HUD::XMLPort(Element& xmlElement, XMLPort::Mode mode)111 hudInstance_s = 0; 112 } 113 114 void OverlayGroup::XMLPort(Element& xmlElement, XMLPort::Mode mode) 115 115 { 116 116 BaseObject::XMLPort(xmlElement, mode); … … 119 119 showRenderTime_ = true; 120 120 121 XMLPortObject( HUD, HUDOverlay, "", addHUDElement, getHUDElement, xmlElement, mode, false, true);121 XMLPortObject(OverlayGroup, OrxonoxOverlay, "", addElement, getElement, xmlElement, mode, false, true); 122 122 123 123 // create Factories … … 156 156 } 157 157 158 void HUD::addHUDElement(HUDOverlay* element)158 void OverlayGroup::addElement(OrxonoxOverlay* element) 159 159 { 160 160 if (hudElements_.find(element->getName()) != hudElements_.end()) … … 166 166 } 167 167 168 HUDOverlay* HUD::getHUDElement(unsigned int index)168 OrxonoxOverlay* OverlayGroup::getElement(unsigned int index) 169 169 { 170 170 if (index < this->hudElements_.size()) 171 171 { 172 std::map<std::string, HUDOverlay*>::const_iterator it = hudElements_.begin();172 std::map<std::string, OrxonoxOverlay*>::const_iterator it = hudElements_.begin(); 173 173 for (unsigned int i = 0; i != index; ++it, ++i) 174 174 ; … … 179 179 } 180 180 181 void HUD::tick(float dt)181 void OverlayGroup::tick(float dt) 182 182 { 183 183 radar_->update(); 184 184 } 185 185 186 void HUD::windowResized(int newWidth, int newHeight)186 void OverlayGroup::windowResized(int newWidth, int newHeight) 187 187 { 188 188 this->radar_->resize(); 189 189 } 190 190 191 void HUD::addRadarObject(WorldEntity* object, const ColourValue& colour){191 void OverlayGroup::addRadarObject(WorldEntity* object, const ColourValue& colour){ 192 192 RadarObject* obj = new RadarObject(container_, object, colour); 193 193 roSet_.insert(roSet_.end(), obj); … … 203 203 } 204 204 205 void HUD::removeRadarObject(WorldEntity* object){205 void OverlayGroup::removeRadarObject(WorldEntity* object){ 206 206 for(std::list<RadarObject*>::iterator it=roSet_.begin(); it!=roSet_.end(); ++it){ 207 207 if ((*it)->getObject() == object) … … 217 217 } 218 218 219 /*static*/ HUD& HUD::getSingleton()220 { 221 assert( instance_s);222 return * instance_s;223 } 224 225 /*static*/ void HUD::toggleVisibility(const std::string& name)226 { 227 if ( HUD::getSingleton().hudElements_.find(name) != HUD::getSingleton().hudElements_.end())228 { 229 HUD::getSingleton().hudElements_[name]->setVisibility(!HUD::getSingleton().hudElements_[name]->isVisible());230 } 231 } 232 233 /*static*/ void HUD::setEnergy(float value){234 HUD::getSingleton().energyBar_->setValue(value);235 } 236 237 /*static*/ void HUD::cycleNavigationFocus()238 { 239 if ( HUD::getSingleton().hudElements_.find("Navigation") != HUD::getSingleton().hudElements_.end())240 { 241 Navigation* navi = dynamic_cast<Navigation*>(HUD::getSingleton().hudElements_["Navigation"]);219 /*static*/ OverlayGroup& OverlayGroup::getHUD() 220 { 221 assert(hudInstance_s); 222 return *hudInstance_s; 223 } 224 225 /*static*/ void OverlayGroup::toggleVisibility(const std::string& name) 226 { 227 if (OverlayGroup::getHUD().hudElements_.find(name) != OverlayGroup::getHUD().hudElements_.end()) 228 { 229 OverlayGroup::getHUD().hudElements_[name]->setVisibility(!OverlayGroup::getHUD().hudElements_[name]->isVisible()); 230 } 231 } 232 233 /*static*/ void OverlayGroup::setEnergy(float value){ 234 OverlayGroup::getHUD().energyBar_->setValue(value); 235 } 236 237 /*static*/ void OverlayGroup::cycleNavigationFocus() 238 { 239 if (OverlayGroup::getHUD().hudElements_.find("Navigation") != OverlayGroup::getHUD().hudElements_.end()) 240 { 241 HUDNavigation* navi = dynamic_cast<HUDNavigation*>(OverlayGroup::getHUD().hudElements_["Navigation"]); 242 242 navi->cycleFocus(); 243 243 } 244 244 } 245 245 246 /*static*/ void HUD::releaseNavigationFocus(){247 // HUD::getSingleton().nav_->releaseFocus();246 /*static*/ void OverlayGroup::releaseNavigationFocus(){ 247 //OverlayGroup::getHUD().nav_->releaseFocus(); 248 248 } 249 249 }
Note: See TracChangeset
for help on using the changeset viewer.