00001 // -*-c++-*- 00002 00009 /* 00010 *Copyright: 00011 00012 Copyright (C) Hidehisa AKIYAMA 00013 00014 This code is free software; you can redistribute it and/or 00015 modify it under the terms of the GNU Lesser General Public 00016 License as published by the Free Software Foundation; either 00017 version 2.1 of the License, or (at your option) any later version. 00018 00019 This library is distributed in the hope that it will be useful, 00020 but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00022 Lesser General Public License for more details. 00023 00024 You should have received a copy of the GNU Lesser General Public 00025 License along with this library; if not, write to the Free Software 00026 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00027 00028 *EndCopyright: 00029 */ 00030 00032 00033 #ifndef RCSC_ACTION_BODY_ADVANCE_BALL_H 00034 #define RCSC_ACTION_BODY_ADVANCE_BALL_H 00035 00036 #include <rcsc/player/soccer_action.h> 00037 #include <rcsc/geom/angle_deg.h> 00038 #include <rcsc/game_time.h> 00039 00040 namespace rcsc { 00041 00047 class Body_AdvanceBall 00048 : public BodyAction { 00049 private: 00051 static GameTime S_last_calc_time; 00053 static AngleDeg S_cached_best_angle; 00054 00055 public: 00059 Body_AdvanceBall() 00060 { } 00061 00067 bool execute( PlayerAgent * agent ); 00068 00069 private: 00070 00076 AngleDeg getBestAngle( const PlayerAgent * agent ); 00077 }; 00078 00079 } 00080 00081 #endif