ARGoS  3
A parallel, multi-engine simulator for swarm robotics
core/simulator/visualization/visualization.h
Go to the documentation of this file.
00001 
00012 #ifndef VISUALIZATION_H
00013 #define VISUALIZATION_H
00014 
00015 namespace argos {
00016    class CVisualization;
00017 }
00018 
00019 #include <argos3/core/utility/configuration/base_configurable_resource.h>
00020 #include <argos3/core/simulator/simulator.h>
00021 
00022 #include <string>
00023 #include <map>
00024 
00025 namespace argos {
00026 
00027    class CVisualization : public CBaseConfigurableResource {
00028 
00029    public:
00030 
00031       CVisualization() :
00032          m_cSimulator(CSimulator::GetInstance()),
00033          m_cSpace(m_cSimulator.GetSpace()) {}
00034 
00035       virtual ~CVisualization() {}
00036 
00037       virtual void Init(TConfigurationNode& t_tree);
00038 
00039       virtual void Reset() {}
00040 
00041       virtual void Destroy() {}
00042 
00043       virtual void Execute();
00044       
00045       inline const std::string& GetId() const {
00046          return m_strId;
00047       }
00048 
00049       inline void SetId(const std::string& str_id) {
00050          m_strId = str_id;
00051       }
00052 
00053    protected:
00054 
00056       CSimulator& m_cSimulator;
00057 
00059       CSpace& m_cSpace;
00060 
00062       std::string m_strId;
00063 
00064    };
00065 
00066 #define REGISTER_VISUALIZATION(CLASSNAME,           \
00067                                LABEL,               \
00068                                AUTHOR,              \
00069                                VERSION,             \
00070                                BRIEF_DESCRIPTION,   \
00071                                LONG_DESCRIPTION,    \
00072                                STATUS)              \
00073    REGISTER_SYMBOL(CVisualization,                  \
00074                    CLASSNAME,                       \
00075                    LABEL,                           \
00076                    AUTHOR,                          \
00077                    VERSION,                         \
00078                    BRIEF_DESCRIPTION,               \
00079                    LONG_DESCRIPTION,                \
00080                    STATUS)
00081 
00082 }
00083 
00084 #endif