body_kick_one_step.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_KICK_ONE_STEP_H
00033 #define RCSC_ACTION_BODY_KICK_ONE_STEP_H
00034 
00035 #include <rcsc/player/soccer_action.h>
00036 #include <rcsc/geom/vector_2d.h>
00037 
00038 namespace rcsc {
00039 
00046 class Body_KickOneStep
00047     : public BodyAction {
00048 private:
00050     Vector2D M_target_point;
00052     double M_first_speed;
00053 
00055     Vector2D M_ball_result_pos;
00057     Vector2D M_ball_result_vel;
00059     int M_kick_step;
00060 public:
00066     Body_KickOneStep( const Vector2D & target_point,
00067                       const double & first_speed )
00068         : M_target_point( target_point )
00069         , M_first_speed( first_speed )
00070         , M_ball_result_pos( Vector2D::INVALIDATED )
00071         , M_ball_result_vel( Vector2D::INVALIDATED )
00072         , M_kick_step( 0 )
00073       { }
00074 
00080     bool execute( PlayerAgent * agent );
00081 
00086     const
00087     Vector2D & ballResultPos() const
00088       {
00089           return M_ball_result_pos;
00090       }
00091 
00096     const
00097     Vector2D & ballResultVel() const
00098       {
00099           return M_ball_result_vel;
00100       }
00101 
00102 
00110     static
00111     Vector2D get_max_possible_vel( const AngleDeg & target_angle,
00112                                    const double & kick_rate,
00113                                    const Vector2D & ball_vel );
00114 };
00115 
00116 }
00117 
00118 #endif

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