body_go_to_point.h

説明を見る。
00001 // -*-c++-*-
00002 
00008 /*
00009  *Copyright:
00010 
00011  Copyright (C) Hidehisa AKIYAMA
00012 
00013  This code is free software; you can redistribute it and/or
00014  modify it under the terms of the GNU Lesser General Public
00015  License as published by the Free Software Foundation; either
00016  version 2.1 of the License, or (at your option) any later version.
00017 
00018  This library is distributed in the hope that it will be useful,
00019  but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021  Lesser General Public License for more details.
00022 
00023  You should have received a copy of the GNU Lesser General Public
00024  License along with this library; if not, write to the Free Software
00025  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00026 
00027  *EndCopyright:
00028  */
00029 
00031 
00032 #ifndef RCSC_ACTION_BODY_GO_TO_POINT_H
00033 #define RCSC_ACTION_BODY_GO_TO_POINT_H
00034 
00035 #include <rcsc/player/soccer_action.h>
00036 #include <rcsc/common/player_type.h>
00037 #include <rcsc/geom/vector_2d.h>
00038 
00039 namespace rcsc {
00040 
00045 class Body_GoToPoint
00046     : public BodyAction {
00047 private:
00049     const Vector2D M_target_point;
00051     const double M_dist_thr;
00053     const double M_dash_power;
00055     const int M_cycle;
00057     bool M_back_mode;
00059     const bool M_save_recovery;
00061     const double M_dir_thr;
00062 public:
00075     Body_GoToPoint( const Vector2D & point,
00076                     const double & dist_thr,
00077                     const double & dash_power,
00078                     const int cycle = 100,
00079                     const bool back_mode = false,
00080                     const bool save_recovery = true,
00081                     const double & dir_thr = 12.0 )
00082         : M_target_point( point )
00083         , M_dist_thr( dist_thr )
00084         , M_dash_power( std::fabs( dash_power ) )
00085         , M_cycle( cycle )
00086         , M_back_mode( back_mode )
00087         , M_save_recovery( save_recovery )
00088         , M_dir_thr( dir_thr )
00089       { }
00090 
00096     bool execute( PlayerAgent * agent );
00097 
00098 private:
00106     bool doTurn( PlayerAgent * agent,
00107                  const Vector2D & target_rel,
00108                  AngleDeg * accel_angle );
00109 
00117     bool doDash( PlayerAgent * agent,
00118                  Vector2D target_rel,
00119                  const AngleDeg & accel_angle );
00120 };
00121 
00122 }
00123 
00124 #endif

librcscに対してThu May 1 15:41:20 2008に生成されました。  doxygen 1.5.0