audio_memory.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_PLAYER_AUDIO_MEMORY_H
00033 #define RCSC_PLAYER_AUDIO_MEMORY_H
00034 
00035 #include <rcsc/geom/vector_2d.h>
00036 #include <rcsc/game_time.h>
00037 
00038 #include <string>
00039 #include <vector>
00040 
00041 namespace rcsc {
00042 
00047 class AudioMemory {
00048 public:
00049 
00054     struct Ball {
00055         int sender_; 
00056         Vector2D pos_; 
00057         Vector2D vel_; 
00058 
00062         Ball( const int sender,
00063               const Vector2D & pos,
00064               const Vector2D & vel )
00065             : sender_( sender )
00066             , pos_( pos )
00067             , vel_( vel )
00068           { }
00069     };
00070 
00075     struct Pass {
00076         int sender_; 
00077         int receiver_; 
00078         Vector2D receive_pos_; 
00079 
00083         Pass( const int sender,
00084               const int receiver,
00085               const Vector2D & pos )
00086             : sender_( sender )
00087             , receiver_( receiver )
00088             , receive_pos_( pos )
00089           { }
00090     };
00091 
00096     struct OurIntercept {
00097         int sender_; 
00098         int interceptor_; 
00099         int cycle_; 
00100 
00104         OurIntercept( const int sender,
00105                       const int interceptor,
00106                       const int cycle )
00107             : sender_( sender )
00108             , interceptor_( interceptor )
00109             , cycle_( cycle )
00110           { }
00111     };
00112 
00117     struct OppIntercept {
00118         int sender_; 
00119         int interceptor_; 
00120         int cycle_; 
00121 
00125         OppIntercept( const int sender,
00126                       const int interceptor,
00127                       const int cycle )
00128             : sender_( sender )
00129             , interceptor_( interceptor )
00130             , cycle_( cycle )
00131           { }
00132     };
00133 
00138     struct Goalie {
00139         int sender_; 
00140         Vector2D pos_; 
00141         AngleDeg body_; 
00142 
00146         Goalie( const int sender,
00147                 const Vector2D & pos,
00148                 const AngleDeg & body )
00149             : sender_( sender )
00150             , pos_( pos )
00151             , body_( body )
00152           { }
00153     };
00154 
00159     struct Player {
00160         int sender_; 
00161         int unum_; 
00162         Vector2D pos_; 
00163         AngleDeg body_; 
00164 
00168         Player( const int sender,
00169                 const int unum,
00170                 const Vector2D & pos,
00171                 const AngleDeg & body )
00172             : sender_( sender )
00173             , unum_( unum )
00174             , pos_( pos )
00175             , body_( body )
00176           { }
00177     };
00178 
00183     struct OffsideLine {
00184         int sender_; 
00185         double x_; 
00186 
00190         OffsideLine( const int sender,
00191                      const double & x )
00192             : sender_( sender )
00193             , x_( x )
00194           { }
00195     };
00196 
00201     struct DefenseLine {
00202         int sender_; 
00203         double x_; 
00204 
00208        DefenseLine( const int sender,
00209                     const double & x )
00210             : sender_( sender )
00211             , x_( x )
00212           { }
00213     };
00214 
00219     struct WaitRequest {
00220         int sender_; 
00221 
00225         WaitRequest( const int sender )
00226             : sender_( sender )
00227           { }
00228     };
00229 
00234     struct PassRequest {
00235         int sender_; 
00236         Vector2D pos_; 
00237 
00241         PassRequest( const int sender,
00242                      const Vector2D & pos )
00243             : sender_( sender )
00244             , pos_( pos )
00245           { }
00246     };
00247 
00252     struct Stamina {
00253         int sender_; 
00254         double rate_; 
00255 
00259         Stamina( const int sender,
00260                  const double & rate )
00261             : sender_( sender )
00262             , rate_( rate )
00263           { }
00264     };
00265 
00270     struct Recovery {
00271         int sender_; 
00272         double rate_; 
00273 
00277         Recovery( const int sender,
00278                   const double & rate )
00279             : sender_( sender )
00280             , rate_( rate )
00281           { }
00282     };
00283 
00288     struct Dribble {
00289         int sender_; 
00290         Vector2D target_; 
00291         int queue_count_; 
00292 
00296         Dribble( const int sender,
00297                  const Vector2D & target,
00298                  const int queue_count )
00299             : sender_( sender )
00300             , target_( target )
00301             , queue_count_( queue_count )
00302           { }
00303     };
00304 
00309     struct FreeMessage {
00310         int sender_; 
00311         std::string message_; 
00312 
00316         FreeMessage( const int sender,
00317                      const std::string & message )
00318             : sender_( sender )
00319             , message_( message )
00320           { }
00321     };
00322 
00323 protected:
00324 
00325     std::vector< Ball > M_ball;
00326     GameTime M_ball_time; 
00327 
00328     std::vector< Pass > M_pass;
00329     GameTime M_pass_time; 
00330 
00331     std::vector< OurIntercept > M_our_intercept;
00332     GameTime M_our_intercept_time; 
00333 
00334     std::vector< OppIntercept > M_opp_intercept;
00335     GameTime M_opp_intercept_time; 
00336 
00337     std::vector< Goalie > M_goalie;
00338     GameTime M_goalie_time; 
00339 
00340     std::vector< Player > M_player;
00341     GameTime M_player_time; 
00342 
00343     std::vector< OffsideLine > M_offside_line;
00344     GameTime M_offside_line_time; 
00345 
00346     std::vector< DefenseLine > M_defense_line;
00347     GameTime M_defense_line_time; 
00348 
00349     std::vector< WaitRequest > M_wait_request;
00350     GameTime M_wait_request_time; 
00351 
00352     std::vector< PassRequest > M_pass_request;
00353     GameTime M_pass_request_time; 
00354 
00355     std::vector< Stamina > M_stamina;
00356     GameTime M_stamina_time; 
00357 
00358     std::vector< Recovery > M_recovery;
00359     GameTime M_recovery_time; 
00360 
00361     std::vector< Dribble > M_dribble;
00362     GameTime M_dribble_time; 
00363 
00364     std::vector< FreeMessage > M_free_message;
00365     GameTime M_free_message_time; 
00366 
00367 private:
00368     // not used
00369     AudioMemory( const AudioMemory & );
00370     AudioMemory & operator=( const AudioMemory & );
00371 
00372 public:
00373 
00377     AudioMemory();
00378 
00382     virtual
00383     ~AudioMemory()
00384       { }
00385 
00386 
00387     // accessor methods
00388 
00393     const
00394     std::vector< Ball > & ball() const
00395       {
00396           return M_ball;
00397       }
00398 
00403     const
00404     GameTime & ballTime() const
00405       {
00406           return M_ball_time;
00407       }
00408 
00413     const
00414     std::vector< Pass > & pass() const
00415       {
00416           return M_pass;
00417       }
00418 
00423     const
00424     GameTime & passTime() const
00425       {
00426           return M_pass_time;
00427       }
00428 
00433     const
00434     std::vector< OurIntercept > & ourIntercept() const
00435       {
00436           return M_our_intercept;
00437       }
00438 
00443     const
00444     GameTime & ourInterceptTime() const
00445       {
00446           return M_our_intercept_time;
00447       }
00448 
00453     const
00454     std::vector< OppIntercept > & oppIntercept() const
00455       {
00456           return M_opp_intercept;
00457       }
00458 
00463     const
00464     GameTime & oppInterceptTime() const
00465       {
00466           return M_opp_intercept_time;
00467       }
00468 
00473     const
00474     std::vector< Goalie > & goalie() const
00475       {
00476           return M_goalie;
00477       }
00478 
00483     const
00484     GameTime & goalieTime() const
00485       {
00486           return M_goalie_time;
00487       }
00488 
00493     const
00494     std::vector< Player > & player() const
00495       {
00496           return M_player;
00497       }
00498 
00503     const
00504     GameTime & playerTime() const
00505       {
00506           return M_player_time;
00507       }
00508 
00513     const
00514     std::vector< OffsideLine > & offsideLine() const
00515       {
00516           return M_offside_line;
00517       }
00518 
00523     const
00524     GameTime & offsideLineTime() const
00525       {
00526           return M_offside_line_time;
00527       }
00528 
00533     const
00534     std::vector< DefenseLine > & defenseLine() const
00535       {
00536           return M_defense_line;
00537       }
00538 
00543     const
00544     GameTime & defenseLineTime() const
00545       {
00546           return M_defense_line_time;
00547       }
00548 
00553     const
00554     std::vector< WaitRequest > & waitRequest() const
00555       {
00556           return M_wait_request;
00557       }
00558 
00563     const
00564     GameTime & waitRequestTime() const
00565       {
00566           return M_wait_request_time;
00567       }
00568 
00573     const
00574     std::vector< PassRequest > & passRequest() const
00575       {
00576           return M_pass_request;
00577       }
00578 
00583     const
00584     GameTime & passRequestTime() const
00585       {
00586           return M_pass_request_time;
00587       }
00588 
00593     const
00594     std::vector< Stamina > & stamina() const
00595       {
00596           return M_stamina;
00597       }
00598 
00603     const
00604     GameTime & staminaTime() const
00605       {
00606           return M_stamina_time;
00607       }
00608 
00613     const
00614     std::vector< Recovery > & recovery() const
00615       {
00616           return M_recovery;
00617       }
00618 
00623     const
00624     GameTime & recoveryTime() const
00625       {
00626           return M_recovery_time;
00627       }
00628 
00633     const
00634     std::vector< Dribble > & dribble() const
00635       {
00636           return M_dribble;
00637       }
00638 
00643     const
00644     GameTime & dribbleTime() const
00645       {
00646           return M_dribble_time;
00647       }
00648 
00653     const
00654     std::vector< FreeMessage > & freeMessage() const
00655       {
00656           return M_free_message;
00657       }
00658 
00663     const
00664     GameTime & freeMessageTime() const
00665       {
00666           return M_free_message_time;
00667       }
00668 
00669 
00670     // setter methods
00671 
00679     virtual
00680     void setBall( const int sender,
00681                   const Vector2D & pos,
00682                   const Vector2D & vel,
00683                   const GameTime & current );
00684 
00692     virtual
00693     void setPass( const int sender,
00694                   const int receiver,
00695                   const Vector2D & pos,
00696                   const GameTime & current );
00697 
00704     virtual
00705     void setIntercept( const int sender,
00706                        const int interceptor,
00707                        const int cycle,
00708                        const GameTime & current );
00709 
00717     virtual
00718     void setOpponentGoalie( const int sender,
00719                             const Vector2D & pos,
00720                             const AngleDeg & body,
00721                             const GameTime & current );
00722 
00731     virtual
00732     void setPlayer( const int sender,
00733                     const int unum,
00734                     const Vector2D & pos,
00735                     const AngleDeg & body,
00736                     const GameTime & current );
00737 
00744     virtual
00745     void setOffsideLine( const int sender,
00746                          const double & offside_line_x,
00747                          const GameTime & current );
00748 
00755     virtual
00756     void setDefenseLine( const int sender,
00757                          const double & defense_line_x,
00758                          const GameTime & current );
00759 
00765     virtual
00766     void setWaitRequest( const int sender,
00767                          const GameTime & current );
00768 
00775     virtual
00776     void setPassRequest( const int sender,
00777                          const Vector2D & request_pos,
00778                          const GameTime & current );
00779 
00786     virtual
00787     void setStamina( const int sender,
00788                      const double & rate,
00789                      const GameTime & current );
00790 
00797     virtual
00798     void setRecovery( const int sender,
00799                       const double & rate,
00800                       const GameTime & current );
00801 
00809     virtual
00810     void setDribbleTarget( const int sender,
00811                            const Vector2D & pos,
00812                            const int queue_count,
00813                            const GameTime & current );
00814 
00821     virtual
00822     void setFreeMessage( const int sender,
00823                          const std::string & msg,
00824                          const GameTime & current );
00825 
00826 };
00827 
00828 }
00829 
00830 #endif

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