/*! * @file glgui_radar.h * @brief Definition of an Radar, that displays a bar and a Text */ #ifndef _GLGUI_RADAR_H #define _GLGUI_RADAR_H #include "glgui_widget.h" class WorldEntity; namespace OrxGui { //! A class for ... class GLGuiRadar : public GLGuiWidget { public: typedef enum { Linear, Exponential, } Attenuation; public: GLGuiRadar(); virtual ~GLGuiRadar(); void setRange(float range); void setUpdateInterval(float updateInterval) { this->_updateInterval = updateInterval; }; void setAttenuation(Attenuation attenuation); float range() const { return this->_range; } void tick(float dt); void draw() const; protected: virtual void resize(); virtual void showing(); virtual void hiding(); private: typedef struct { Color dotColor; const std::list& entityList; std::vector position; } DotList; std::vector _dotLists; Attenuation _attenuation; float _range; float _updateInterval; float _timePassed; }; } #endif /* _GLGUI_RADAR_H */