- Timestamp:
- May 18, 2010, 5:34:48 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
r6917 r6924 30 30 #define _HUDNavigation_H__ 31 31 32 #include <utility> 32 #include "overlays/OverlaysPrereqs.h" 33 33 34 #include <map> 34 #include "overlays/OverlaysPrereqs.h" 35 #include "interfaces/RadarViewable.h" 35 #include <string> 36 36 37 #include "interfaces/RadarListener.h"38 37 #include "util/OgreForwardRefs.h" 39 38 #include "tools/interfaces/Tickable.h" 39 #include "interfaces/RadarListener.h" 40 40 #include "overlays/OrxonoxOverlay.h" 41 42 #include <vector>43 41 44 42 namespace orxonox 45 43 { 46 class _OverlaysExport HUDNavigation : public OrxonoxOverlay, public Tickable, public RadarListener47 {48 public:49 HUDNavigation(BaseObject* creator);50 virtual ~HUDNavigation();44 class _OverlaysExport HUDNavigation : public OrxonoxOverlay, public Tickable, public RadarListener 45 { 46 public: 47 HUDNavigation(BaseObject* creator); 48 virtual ~HUDNavigation(); 51 49 52 virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode); 53 virtual void tick(float dt); 54 virtual void addObject(RadarViewable* object); 50 virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode); 51 virtual void tick(float dt); 55 52 56 virtual void removeObject(RadarViewable* viewable); 57 virtual void objectChanged(RadarViewable* viewable) {} 58 inline float getRadarSensitivity() const {return 1.0f;} 59 inline void radarTick(float dt) {} 60 virtual void changedOwner(); 53 virtual void addObject(RadarViewable* object); 54 virtual void removeObject(RadarViewable* viewable); 55 virtual void objectChanged(RadarViewable* viewable) {} 61 56 57 virtual void changedOwner(); 58 virtual void sizeChanged(); 59 virtual void angleChanged() { } 60 virtual void positionChanged() { } 61 virtual void radarTick(float dt) {} 62 62 63 private: 63 inline float getRadarSensitivity() const 64 { return 1.0f; } 64 65 66 private: 67 struct ObjectInfo 68 { 69 Ogre::PanelOverlayElement* panel_; 70 Ogre::TextAreaOverlayElement* text_; 71 bool outOfView_; 72 bool wasOutOfView_; 73 }; 65 74 75 // XMLPort accessors 76 void setNavMarkerSize(float size) 77 { navMarkerSize_ = size; this->sizeChanged(); } 78 float getNavMarkerSize() const 79 { return navMarkerSize_; } 66 80 67 void sizeChanged(); 68 void angleChanged() { } 69 void positionChanged() { } 81 void setTextSize(float size); 82 float getTextSize() const; 70 83 71 // void updateActiveObjectList(map activeObjectList_); 84 void setFont(const std::string& font); 85 const std::string& getFont() const; 72 86 87 typedef std::map<RadarViewable*, ObjectInfo > ObjectMap; 88 ObjectMap activeObjectList_; 73 89 74 75 // XMLPort accessors 76 void setNavMarkerSize(float size) { 77 navMarkerSize_ = size; 78 this->sizeChanged(); 79 } 80 float getNavMarkerSize() const { 81 return navMarkerSize_; 82 } 83 84 /* 85 void setAimMarkerSize(float size) { this->aimMarkerSize_ = size; this->sizeChanged(); } 86 float getAimMarkerSize() const { return this->aimMarkerSize_; } 87 */ 88 89 void setTextSize(float size); 90 float getTextSize() const; 91 92 void setFont(const std::string& font); 93 const std::string& getFont() const; 94 95 void updateMarker(); 96 void updateFocus(); 97 // float getDist2Focus() const; 98 void getSingleton(); 99 100 101 void updateActiveObjectMap(); 102 103 Ogre::PanelOverlayElement* navMarker_; //!< the panel used to show the arrow and the target marker 104 float navMarkerSize_; //!< One paramter size of the navigation marker 105 /* 106 Ogre::PanelOverlayElement* aimMarker_; //!< Panel used to show the aim Marker 107 float aimMarkerSize_; //!< One paramter size of the aim marker 108 */ 109 Ogre::TextAreaOverlayElement* navText_; //!< Text overlay to display the target distance 110 111 112 struct objectStruct{ 113 114 Ogre::PanelOverlayElement* panel_; 115 Ogre::TextAreaOverlayElement* text_; 116 bool outOfView_; 117 bool wasOutOfView_; 118 90 float navMarkerSize_; 91 std::string fontName_; 92 float textSize_; 119 93 }; 120 121 typedef std::map<RadarViewable*, objectStruct > activeObjectListType;122 activeObjectListType activeObjectList_;123 activeObjectListType::iterator tempRadarViewable;124 125 typedef std::set<RadarViewable*> respawnObjectSetType;126 127 128 129 std::string fontName_;130 float textSize_;131 132 };133 134 94 } 135 95
Note: See TracChangeset
for help on using the changeset viewer.