亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fullstatesender.cc

?? 在LINUX下運(yùn)行的仿真機(jī)器人服務(wù)器源代碼
?? CC
字號(hào):
// -*-c++-*-/***************************************************************************                                fullstatesender.cc                   Classes for sending full state messages                             -------------------    begin                : 22-AUG-2002    copyright            : (C) 2002 by The RoboCup Soccer Simulator                            Maintenance Group.    email                : sserver-admin@lists.sourceforge.net ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU LGPL as published by the Free Software  * *   Foundation; either version 2 of the License, or (at your option) any  * *   later version.                                                        * *                                                                         * ***************************************************************************/#include "fullstatesender.h"#include "player.h"#include "serializer.h"#include "field.h"static char *PlayModeString[] = PLAYMODE_STRINGS;namespace rcss{/*!//===================================================================////  CLASS: FullStateSender////  DESC: Base class for the full state protocol.////===================================================================*/    FullStateSender::FullStateSender( std::ostream& transport )        : M_transport( transport )    {}    FullStateSender::~FullStateSender()    {}/*!//===================================================================////  CLASS: FullStateObserver////  DESC: Interface for an object that receives full state information.////===================================================================*/    FullStateObserver::FullStateObserver()        : M_sender( NULL ),          M_owns_sender( false )    {}    FullStateObserver::FullStateObserver( FullStateSender& sender )        : M_sender( &sender ),          M_owns_sender( false )    {}    FullStateObserver::FullStateObserver( std::auto_ptr< FullStateSender > sender )        : M_sender( sender.release() ),          M_owns_sender( true )    {}    FullStateObserver::~FullStateObserver()    { clear(); }    void    FullStateObserver::setFullStateSender( FullStateSender& sender )    {        clear();        M_sender = &sender;        M_owns_sender = false;    }    void    FullStateObserver::setFullStateSender( std::auto_ptr< FullStateSender > sender )    {        clear();        M_sender = sender.release();        M_owns_sender = true;    }    void    FullStateObserver::sendFullState()    { M_sender->sendFullState(); }     void    FullStateObserver::clear()    {        if( M_owns_sender )        {            delete M_sender;            M_sender = NULL;        }    } /*!//===================================================================////  CLASS: FullStateSenderPlayer////  DESC: Base class for the full state protocol for players.////===================================================================*/    FullStateSenderPlayer::Factory&    FullStateSenderPlayer::factory()    { static Factory rval; return rval; }    FullStateSenderPlayer::FullStateSenderPlayer( const Params& params )        : FullStateSender( params.m_transport ),          M_serializer( params.m_serializer ),          M_self( params.m_self ),          M_stadium( params.m_stadium )    {}    FullStateSenderPlayer::~FullStateSenderPlayer()    {}/*!//===================================================================////  CLASS: FullStateSenderPlayerV1////  DESC: version 1 of the full state protocol. No actual information//        is sent in this version as the protocol did not exist until//        version 5////===================================================================*/    FullStateSenderPlayerV1::FullStateSenderPlayerV1( const Params& params )        : FullStateSenderPlayer( params )    {}    FullStateSenderPlayerV1::~FullStateSenderPlayerV1()    {}    void    FullStateSenderPlayerV1::sendFullState()    {}/*!//===================================================================////  CLASS: FullStateSenderPlayerV5////  DESC: version 5 of the full state protocol. This is the first//        version in which full state information may be sent to//        players.////===================================================================*/    FullStateSenderPlayerV5::FullStateSenderPlayerV5( const Params& params )        : FullStateSenderPlayerV1( params )    {}    FullStateSenderPlayerV5::~FullStateSenderPlayerV5()    {}    void    FullStateSenderPlayerV5::sendFullState()    {        // send begining of FS        serializer().serializeFSBegin( transport(), stadium().time );        if( stadium().mode == PM_FreeKick_Left             && stadium().M_caught_ball )            serializer().serializeFSPlayMode( transport(),                                              "goalie_catch_ball_l" );        else if( stadium().mode == PM_FreeKick_Right                  && stadium().M_caught_ball )            serializer().serializeFSPlayMode( transport(),                                              "goalie_catch_ball_r" );        else            serializer().serializeFSPlayMode( transport(),                                              PlayModeString[stadium().mode] );                serializer().serializeFSViewMode( transport(),                                          ( self().highquality                                             ? "high"                                             : "low" ),                                          ( self().vis_angle                                             == self().defangle/2                                             ? "narrow"                                            : ( self().vis_angle                                                 == self().defangle*2                                                ? "wide"                                                : "normal" ) ) );        sendSelf();                sendScore();        sendBall();        for( int k = 0;  k < MAX_PLAYER * 2; k++ )        {            Player& p = *( stadium().player[k] );                        if( p.alive == DISABLE )                continue;            sendPlayer( p );        }        // send end of FS        serializer().serializeFSEnd( transport() );        transport() << std::ends << std::flush;    }    void    FullStateSenderPlayerV5::sendSelf()    {            }    void    FullStateSenderPlayerV5::sendScore()    {                int left = 0, right = 0;        if( stadium().team_l )            left = stadium().team_l->point;        if( stadium().team_l )            left = stadium().team_r->point;                serializer().serializeFSScore( transport(),                                        left,                                         right );    }       void    FullStateSenderPlayerV5::sendBall()    {        const float quantize_step = .001;        serializer().serializeFSBall( transport(),                                      Quantize( stadium().ball->pos.x,                                                 quantize_step ),                                      Quantize( stadium().ball->pos.y,                                                quantize_step ),                                      Quantize( stadium().ball->vel.x,                                                quantize_step ),                                      Quantize( stadium().ball->vel.y,                                                quantize_step ) );    }    void    FullStateSenderPlayerV5::sendPlayer( const Player& p )    {        const float quantize_step = .001;        char side = (p.team->side == LEFT) ? 'l' : 'r';        serializer().serializeFSPlayerBegin( transport(),                                             side,                                             p.unum,                                             false, // goalie info not sent                                             0, // player type info not sent                                             Quantize( p.pos.x,                                                       quantize_step ), //pos_x                                             Quantize( p.pos.y,                                                        quantize_step ), //pos_y                                             Quantize( p.vel.x,                                                       quantize_step ), //vel_x                                             Quantize( p.vel.y,                                                       quantize_step ), //vel_y                                             Quantize( Rad2Deg( p.angle_body),                                                       quantize_step ),                                             Quantize( Rad2Deg( p.angle_neck_committed ),                                                       quantize_step) ); //neck_angle         serializer().serializeFSPlayerEnd( transport(),                                           int(p.stamina),                                           Quantize( p.effort, .0001 ),                                           Quantize( p.recovery, .0001) );    }/*!//===================================================================////  CLASS: FullStateSenderPlayerV8////  DESC: version 8 of the full state protocol. ////===================================================================*/    FullStateSenderPlayerV8::FullStateSenderPlayerV8( const Params& params )        : FullStateSenderPlayerV5( params )    {}    FullStateSenderPlayerV8::~FullStateSenderPlayerV8()    {}    void    FullStateSenderPlayerV8::sendSelf()    {      rcss::geom::Vector2D arm_vec;      self().getArm().getRelDest ( rcss::geom::Vector2D ( self().pos.x,                                                          self().pos.y ),                                   self().angle_body                                    + self().angle_neck_committed,                                   arm_vec );      serializer().serializeFSCounts( transport(),                                        self().count_kick,                                         self().count_dash,                                        self().count_turn,                                        self().count_catch,                                        self().count_move,                                        self().count_turn_neck,                                        self().count_change_view,                                        self().count_say );      serializer().serializeArm( transport(),                                    self().getArm().getCyclesTillMovable(),                                   self().getArm().getCyclesTillExpiry(),                                   arm_vec.getMag(), Rad2IDegRound( arm_vec.getHead () ),                                   self().getArm().getCounter() );      }    void    FullStateSenderPlayerV8::sendScore()    {                int left = 0, right = 0;        if( stadium().team_l )            left = stadium().team_l->point;        if( stadium().team_l )            left = stadium().team_r->point;        if( self().team == stadium().team_r )            std::swap( left, right );        serializer().serializeFSScore( transport(),                                        left,                                         right );     }       void    FullStateSenderPlayerV8::sendBall()    {        serializer().serializeFSBall( transport(),                                      stadium().ball->pos.x,                                      stadium().ball->pos.y,                                      stadium().ball->vel.x,                                      stadium().ball->vel.y );    }    void    FullStateSenderPlayerV8::sendPlayer( const Player& p )    {        char side = (p.team->side == LEFT) ? 'l' : 'r';        serializer().serializeFSPlayerBegin( transport(),                                             side,                                             p.unum,                                             p.goalie,                                             p.player_type_id,                                             p.pos.x,                                             p.pos.y,                                             p.vel.x,                                             p.vel.y,                                             Rad2Deg( p.angle_body ),                                             Rad2Deg( p.angle_neck_committed ) );        if( p.getArm().isPointing() )        {            rcss::geom::Vector2D arm_vec;            p.getArm().getRelDest( rcss::geom::Vector2D ( p.pos.x, p.pos.y ),                                p.angle_body + p.angle_neck_committed,                                arm_vec );            serializer().serializeFSPlayerArm( transport(),                                               arm_vec.getMag(),                                               arm_vec.getHead() );        }                serializer().serializeFSPlayerEnd( transport(),                                           p.stamina,                                           p.effort,                                           p.recovery );    }/*!//===================================================================////  Register senders for different versions////===================================================================*/    namespace fullstatesender    {        template< typename Sender >        FullStateSender::Ptr        create( const FullStateSenderPlayer::Params& params )        { return FullStateSender::Ptr( new Sender( params ) ); }               lib::RegHolder vp1 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV1 >, 1 );        lib::RegHolder vp2 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV1 >, 2 );        lib::RegHolder vp3 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV1 >, 3 );        lib::RegHolder vp4 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV1 >, 4 );        lib::RegHolder vp5 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV5 >, 5 );        lib::RegHolder vp6 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV5 >, 6 );        lib::RegHolder vp7 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV5 >, 7 );        lib::RegHolder vp8 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV8 >, 8 );        lib::RegHolder vp9 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV8 >, 9 );    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av亚洲精华国产精华精华| 国产91精品露脸国语对白| 国产日产欧产精品推荐色 | 国内精品在线播放| 亚洲欧洲精品一区二区精品久久久 | 亚洲欧美日韩系列| 精品国产成人系列| 欧美亚洲综合另类| caoporm超碰国产精品| 久久66热偷产精品| 婷婷久久综合九色综合伊人色| 国产精品入口麻豆原神| 欧美成人高清电影在线| 在线不卡一区二区| 欧美自拍偷拍午夜视频| 99久久久精品免费观看国产蜜| 韩国中文字幕2020精品| 日韩一区精品字幕| 亚洲第一激情av| 亚洲精品中文字幕乱码三区| 中文av字幕一区| 久久久久久综合| 精品国产区一区| 欧美一级欧美一级在线播放| 欧美主播一区二区三区| 色综合久久88色综合天天免费| 成人一道本在线| 国产成人免费视频| 国产一区二区三区四区五区美女| 激情深爱一区二区| 久久国产成人午夜av影院| 天堂久久久久va久久久久| 婷婷六月综合网| 日韩精品国产欧美| 日日摸夜夜添夜夜添精品视频| 亚洲综合男人的天堂| 亚洲综合图片区| 午夜精品免费在线| 视频一区二区国产| 日本午夜精品视频在线观看| 奇米色777欧美一区二区| 日本中文在线一区| 久久精品国产久精国产爱| 久久成人久久爱| 国产乱子轮精品视频| 高清shemale亚洲人妖| 99久久精品费精品国产一区二区| 99国产精品久久久久久久久久久| 色综合天天综合给合国产| 日本精品视频一区二区| 欧美日韩视频在线观看一区二区三区| 欧美日韩黄色一区二区| 这里只有精品99re| www久久精品| 中文字幕一区二| 亚洲国产日韩a在线播放性色| 天天综合日日夜夜精品| 久久99精品久久久久| 丁香婷婷综合色啪| 色激情天天射综合网| 欧美精品久久久久久久多人混战 | 欧美在线免费视屏| 欧美一区二区免费视频| 久久久久久久久久久久电影 | 99久久久国产精品| 欧美日韩在线观看一区二区| 日韩欧美一区二区久久婷婷| 国产日韩欧美精品综合| 亚洲欧美一区二区三区孕妇| 天堂蜜桃一区二区三区| 国产河南妇女毛片精品久久久| 99久久精品一区| 欧美一区二区在线视频| 国产欧美中文在线| 亚洲成人自拍网| 国产精品一区二区免费不卡| 色综合天天综合网国产成人综合天| 3atv在线一区二区三区| 国产日韩三级在线| 午夜视频一区在线观看| 国产精品1024| 欧美日韩三级在线| 日本一区二区高清| 三级久久三级久久久| 成人av资源站| 日韩欧美中文字幕公布| ...av二区三区久久精品| 免费高清在线一区| 97久久精品人人爽人人爽蜜臀| 91麻豆精品国产综合久久久久久| 国产精品视频在线看| 日日欢夜夜爽一区| 91老师片黄在线观看| 精品处破学生在线二十三| 亚洲小说欧美激情另类| 国产成人免费在线观看| 日韩一本二本av| 亚洲一区二区三区四区在线免费观看 | 337p亚洲精品色噜噜狠狠| 久久精品免视看| 蜜臀av一区二区在线免费观看 | 丁香天五香天堂综合| 欧美狂野另类xxxxoooo| 国产精品久久久久久久久晋中| 秋霞成人午夜伦在线观看| 色婷婷亚洲婷婷| 中文字幕av一区二区三区高| 精品一区二区三区在线视频| 欧美午夜精品一区| 自拍av一区二区三区| 国产成人高清视频| 久久一留热品黄| 蜜臀av一区二区在线免费观看| 欧美日韩一区 二区 三区 久久精品| 亚洲国产成人一区二区三区| 国产综合色视频| 精品美女在线播放| 蜜桃在线一区二区三区| 欧美精品粉嫩高潮一区二区| 一区二区在线观看免费| 91啪在线观看| 亚洲欧美偷拍三级| 99久久伊人精品| 国产精品视频一二三区| 福利电影一区二区三区| 国产精品丝袜一区| 成人av动漫在线| 国产精品久久久久久亚洲伦 | 日韩欧美一区在线| 麻豆精品新av中文字幕| 欧美一区日本一区韩国一区| 日本一不卡视频| 日韩免费一区二区| 激情综合亚洲精品| 国产香蕉久久精品综合网| 国产一区二区三区香蕉| 中文字幕免费不卡在线| 成人午夜激情片| 中文字幕亚洲区| 91久久国产最好的精华液| 一区二区久久久| 欧美男女性生活在线直播观看| 亚洲444eee在线观看| 日韩午夜激情视频| 国内久久精品视频| 国产精品超碰97尤物18| 91免费视频大全| 午夜激情久久久| 欧美成人三级电影在线| 国产成人综合在线观看| 中文字幕制服丝袜一区二区三区 | 日韩三级.com| 成人一区在线观看| 亚洲精品videosex极品| 欧美男女性生活在线直播观看| 麻豆精品在线播放| 欧美激情综合五月色丁香小说| av一区二区三区黑人| 亚洲国产综合91精品麻豆| 欧美一级一区二区| 国产伦精品一区二区三区免费 | 久久日韩精品一区二区五区| 国产精品小仙女| 一区二区三区日韩欧美精品| 91麻豆精品国产91久久久久| 国产精品综合二区| 亚洲一线二线三线久久久| 精品奇米国产一区二区三区| 成人aaaa免费全部观看| 日韩福利视频导航| 国产精品网站在线| 91精品国产黑色紧身裤美女| 国产传媒欧美日韩成人| 亚洲第一av色| 久久久久国产一区二区三区四区 | 91在线观看免费视频| 秋霞电影网一区二区| 国产精品剧情在线亚洲| 这里只有精品电影| 99久久精品国产毛片| 久久精品国产色蜜蜜麻豆| 尤物视频一区二区| 精品国产不卡一区二区三区| 在线欧美小视频| 国产精品一区二区视频| 午夜精品久久久久| 最新欧美精品一区二区三区| 日韩免费看的电影| 欧美午夜免费电影| 成人午夜av电影| 热久久免费视频| 亚洲一区欧美一区| 国产欧美日韩麻豆91| 欧美一区二区在线播放| 91美女片黄在线| 国产美女精品在线| 日韩精品成人一区二区在线| 亚洲免费av观看| 国产欧美日韩另类一区| 精品国产一区二区国模嫣然|