00001 /** 00002 * @file ObstaclesSymbols.h 00003 * 00004 * Declaration of class ObstaclesSymbols. 00005 * 00006 * @author Max Risler 00007 */ 00008 00009 #ifndef __ObstaclesSymbols_h_ 00010 #define __ObstaclesSymbols_h_ 00011 00012 #include "../BehaviorControl.h" 00013 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2Engine.h" 00014 00015 00016 /** 00017 * The Xabsl2 symbols that are defined in "obstacles-symbols.xml" 00018 * 00019 * @author Max Risler 00020 */ 00021 class ObstaclesSymbols : public Xabsl2FunctionProvider, public BehaviorControlInterfaces 00022 { 00023 public: 00024 /* 00025 * Constructor. 00026 * @param interfaces The paramters of the BehaviorControl module. 00027 */ 00028 ObstaclesSymbols(const BehaviorControlInterfaces& interfaces); 00029 00030 /** registers the symbols at an engine */ 00031 void registerSymbols(Xabsl2Engine& engine); 00032 00033 /** updates the symbols */ 00034 void update(); 00035 00036 //!@name Input symbols 00037 //!@{ 00038 bool getCollisionFrontLeft(); /*!< A function for the symbol "self.collision-front-left" */ 00039 bool getCollisionFrontRight(); /*!< A function for the symbol "self.collision-front-right" */ 00040 bool getCollisionHindLeft(); /*!< A function for the symbol "self.collision-hind-left" */ 00041 bool getCollisionHindRight(); /*!< A function for the symbol "self.collision-hind-right" */ 00042 bool getCollisionHead(); /*!< A function for the symbol "self.collision-head" */ 00043 bool getCollisionAggregate(); /*!< A function for the symbol "self.collision-aggregate" */ 00044 double getConsecutiveCollisionTimeFrontLeft(); /*!< A function for the symbol "self.consecutive-collision-time-front-left" */ 00045 double getConsecutiveCollisionTimeFrontRight(); /*!< A function for the symbol "self.consecutive-collision-time-front-right" */ 00046 double getConsecutiveCollisionTimeHindLeft(); /*!< A function for the symbol "self.consecutive-collision-time-hind-left" */ 00047 double getConsecutiveCollisionTimeHindRight(); /*!< A function for the symbol "self.consecutive-collision-time-hind-right" */ 00048 double getConsecutiveCollisionTimeHead(); /*!< A function for the symbol "self.consecutive-collision-time-head" */ 00049 double getConsecutiveCollisionTimeAggregate(); /*!< A function for the symbol "self.consecutive-collision-time-aggregate" */ 00050 int getCollisionSide(); /*!< A function for the symbol "self.collision-side" */ 00051 //!@} 00052 00053 /** Indicates if the robot is stuck (based on obstacles model)*/ 00054 bool robotIsStuck; 00055 00056 /** Indicates that there are close obstacles */ 00057 bool obstaclesAreClose; 00058 00059 /** Indicates that there are opponents in the direction of the ball */ 00060 bool opponentsCloseToBall; 00061 }; 00062 00063 00064 #endif // __ObstaclesSymbols_h_ 00065 00066 /* 00067 * Change Log 00068 * 00069 * $Log: ObstaclesSymbols.h,v $ 00070 * Revision 1.3 2004/06/23 11:02:26 goehring 00071 * Xabsl symbol collision-side added 00072 * 00073 * Revision 1.2 2004/06/16 15:24:11 risler 00074 * no message 00075 * 00076 * Revision 1.1 2004/06/16 15:14:29 risler 00077 * added obstacles symbols 00078 * added symbol obstacles.opponent-close-to-ball 00079 * 00080 * 00081 */ 00082