00001 /** 00002 * @file KickSelectionSymbols.h 00003 * 00004 * Declaration of class KickSelectionSymbols. 00005 * 00006 * @author Martin Lötzsch 00007 */ 00008 00009 #ifndef __KickSelectionSymbols_h_ 00010 #define __KickSelectionSymbols_h_ 00011 00012 #include "../BehaviorControl.h" 00013 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2Engine.h" 00014 #include "Tools/KickSelectionTable.h" 00015 00016 /** 00017 * The Xabsl2 symbols that are defined in "kick-selection-symbols.xml" 00018 * 00019 * @author Martin Lötzsch 00020 */ 00021 class KickSelectionSymbols : public Xabsl2FunctionProvider, public BehaviorControlInterfaces 00022 { 00023 public: 00024 /* 00025 * Constructor. 00026 * @param interfaces The paramters of the BehaviorControl module. 00027 * @param fileName The file name of the kick selection table to load 00028 */ 00029 KickSelectionSymbols(BehaviorControlInterfaces& interfaces, const char* fileName); 00030 00031 /** registers the symbols at an engine */ 00032 void registerSymbols(Xabsl2Engine& engine); 00033 00034 /** A function for the function "retrieve-kick" */ 00035 double retrieveKick(); 00036 00037 double intentionalKickPossible(); 00038 double intentionalKickXOffset(); 00039 double intentionalKickYOffset(); 00040 double intentionalKickKick(); 00041 00042 double intentionalKickTargetX(); 00043 double intentionalKickTargetY(); 00044 00045 00046 /** 00047 * Is called for every incoming debug message. 00048 * @param message An interface to read the message from the queue 00049 * @return if the messag was read 00050 */ 00051 bool handleMessage(InMessage& message); 00052 00053 protected: 00054 /** The function parameter "retrieve-kick.angle" */ 00055 double angle; 00056 00057 /** The function parameter "retrieve-kick.angle-width" */ 00058 double angleWidth; 00059 00060 /** The function parameter "retrieve-kick.table-id" */ 00061 double tableID; 00062 00063 double intentionalAngle; 00064 double intentionalTable; 00065 double intentionalKick; 00066 /** The kick selection table that is used */ 00067 KickSelectionTable kickSelectionTable; 00068 00069 private: 00070 Vector2<double> intentionalKickOffset; 00071 }; 00072 00073 00074 #endif // __KickSelectionSymbols_h_ 00075
1.3.6