00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef OXYGEN_AGENTASPECT_H
00023 #define OXYGEN_AGENTASPECT_H
00024
00025
00026
00027
00028
00029 #include <oxygen/sceneserver/transform.h>
00030 #include <oxygen/gamecontrolserver/actionobject.h>
00031 #include <oxygen/gamecontrolserver/baseparser.h>
00032 #include "effector.h"
00033 #include "perceptor.h"
00034
00035 namespace oxygen
00036 {
00037 #if 0
00038 }
00039 #endif
00040
00041 class AgentAspect : public Transform
00042 {
00043 public:
00044 AgentAspect();
00045 virtual ~AgentAspect();
00046
00052 virtual bool Init(const std::string& createEffector);
00053
00057 virtual bool RealizeActions(boost::shared_ptr<ActionObject::TList> actions);
00058
00062 virtual boost::shared_ptr<PredicateList> QueryPerceptors();
00063
00065 virtual void UpdateEffectorMap();
00066
00068 virtual boost::shared_ptr<Effector> GetEffector(const std::string predicate) const;
00069
00070 protected:
00071 typedef std::map<std::string, boost::shared_ptr<Effector> > TEffectorMap;
00072
00074 TEffectorMap mEffectorMap;
00075
00076 private:
00077 };
00078
00079 DECLARE_CLASS(AgentAspect);
00080
00081 }
00082
00083 #endif //OXYGEN_AGENTASPECT_H