Controller.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 CONTROLLER_HH
00028 #define CONTROLLER_HH
00029
00030 #include <string>
00031 #include <vector>
00032
00033 #include "UpdateParams.hh"
00034
00035 namespace gazebo
00036 {
00037 class Iface;
00038 class XMLConfigNode;
00039 class Entity;
00040
00044
00046 class Controller
00047 {
00050 public: Controller( Entity *parent );
00051
00053 public: virtual ~Controller();
00054
00058 public: void Load(XMLConfigNode *node);
00059
00062 public: void Init();
00063
00067 public: void Update(UpdateParams ¶ms);
00068
00071 public: void Fini();
00072
00075 protected: virtual void LoadChild(XMLConfigNode * ) {return;}
00076
00079 protected: virtual void InitChild() {return;}
00080
00083 protected: virtual void UpdateChild(UpdateParams &) {return;}
00084
00087 protected: virtual void FiniChild() {return;}
00088
00091 public: std::string GetName() const;
00092
00094 protected: std::string name;
00095
00097 protected: Entity *parent;
00098
00100 protected: double updatePeriod;
00101
00103 protected: std::vector<Iface*> ifaces;
00104 };
00105
00107
00108 }
00109
00110 #endif
00111