OgreHUD.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OGREHUD_HH
00028 #define OGREHUD_HH
00029
00030 #include <Ogre.h>
00031 #include <OgrePanelOverlayElement.h>
00032
00033 namespace gazebo
00034 {
00037
00038 class CameraSensor;
00039 class OgreAdaptor;
00040
00042 class OgreHUD
00043 {
00045 private: OgreHUD();
00046
00048 private: ~OgreHUD();
00049
00051 public: static OgreHUD *Instance();
00052
00054 public: void Update();
00055
00057 public: void SetCamera(const CameraSensor *camera);
00058
00060 public: void AddTextBox( const std::string& id,
00061 const std::string &panelId,
00062 const std::string& text,
00063 Ogre::Real x,
00064 Ogre::Real y,
00065 Ogre::Real width,
00066 Ogre::Real height,
00067 const Ogre::ColourValue& color =
00068 Ogre::ColourValue(1.0, 1.0, 1.0, 1.0));
00069
00071 public: void ToggleVisible();
00072
00074 public: void ToggleHelp();
00075
00077 public: void HideTextBox(const std::string &id);
00078
00080 public: void ShowTextBox(const std::string &id);
00081
00083 public: void RemoveTextBox(const std::string& id);
00084
00086 public: void SetText(const std::string& id, const std::string& Text);
00087
00089 private: void CreateTextBoxes();
00090
00092 private: void CreateHelp();
00093
00094 private: Ogre::OverlayManager *overlayMgr;
00095 private: Ogre::OverlayContainer *hudPanel;
00096
00097 private: Ogre::PanelOverlayElement *cameraPanel;
00098 private: Ogre::OverlayContainer *helpPanel;
00099 private: Ogre::OverlayContainer *backgroundPanel;
00100
00101 private: static OgreHUD *myself;
00102
00103 private: OgreAdaptor *ogreAdaptor;
00104 };
00105
00107 }
00108 #endif