00001
00002 #ifndef INCLUDED_WalkToTargetNode_h_
00003 #define INCLUDED_WalkToTargetNode_h_
00004
00005 #include "Behaviors/StateNode.h"
00006 #include "Motion/MotionManager.h"
00007
00008
00009 class WalkToTargetNode : public StateNode {
00010 public:
00011
00012 WalkToTargetNode(unsigned int obj)
00013 : StateNode("WalkToTargetNode","WalkToTarget"),tracking(obj),
00014 walker_id(MotionManager::invalid_MC_ID), headpointer_id(MotionManager::invalid_MC_ID)
00015 {}
00016
00017
00018 WalkToTargetNode(const std::string& nodename, unsigned int obj)
00019 : StateNode("WalkToTargetNode",nodename),tracking(obj),
00020 walker_id(MotionManager::invalid_MC_ID), headpointer_id(MotionManager::invalid_MC_ID)
00021 {}
00022
00023 virtual void DoStart();
00024 virtual void DoStop();
00025
00026 static std::string getClassDescription() { return "walks towards a visual target, using some basic logic for moving the head to track it"; }
00027 virtual std::string getDescription() const { return getClassDescription(); }
00028
00029
00030 virtual void processEvent(const EventBase& event);
00031
00032 virtual Transition* newDefaultLostTrans(StateNode* dest);
00033 virtual Transition* newDefaultCloseTrans(StateNode* dest);
00034
00035
00036 protected:
00037
00038 WalkToTargetNode(const std::string& classname, const std::string& nodename, unsigned int obj)
00039 : StateNode(classname,nodename),tracking(obj),
00040 walker_id(MotionManager::invalid_MC_ID), headpointer_id(MotionManager::invalid_MC_ID)
00041 {}
00042
00043 unsigned int tracking;
00044 MotionManager::MC_ID walker_id;
00045 MotionManager::MC_ID headpointer_id;
00046
00047 private:
00048 WalkToTargetNode(const WalkToTargetNode&);
00049 WalkToTargetNode operator=(const WalkToTargetNode&);
00050 };
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063 #endif