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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? worldmodelhighlevel.cpp

?? RoboCup仿真組世界冠軍源代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
  if( dDist != NULL )    *dDist = dMinMag;  return closestObject;}/*! This method returns the object type of the second closest object to the    object type that is supplied as the second argument. Only objects are taken    into account within set 'set' and with a confidence higher than the    supplied threshold. If no threshold is supplied, the threshold defined in    PlayerSettings is used.    \param set ObjectSetT which denotes objects taken into consideration    \param obj ObjectT that represent the type of the object to check    \param dDist will be filled with the distance to this player.    \param dConfThr minimum confidence threshold for the objects in 'set'    \return ObjectType that is second closest to obj */ObjectT WorldModel::getSecondClosestInSetTo ( ObjectSetT set, ObjectT obj,                                              double *dDist,  double dConfThr ){  VecPosition v;  ObjectT     closestObject       = OBJECT_ILLEGAL;  ObjectT     secondClosestObject = OBJECT_ILLEGAL;  double      dMinMag             = 1000.0;  double      dSecondMinMag       = 1000.0;  int         iIndex;  if( dConfThr == -1.0 ) dConfThr = PS->getPlayerConfThr();  for( ObjectT o = iterateObjectStart( iIndex, set, dConfThr );       o != OBJECT_ILLEGAL;       o = iterateObjectNext ( iIndex, set, dConfThr ) )  {    if( o != obj )    {      v = getGlobalPosition( obj ) - getGlobalPosition( o );      if( v.getMagnitude() < dMinMag )                  // closer then first      {        dSecondMinMag         = dMinMag;                // put first to second        secondClosestObject   = closestObject;        dMinMag               = v.getMagnitude();       // and this to first        closestObject         = o;      }      else if( v.getMagnitude() < dSecondMinMag )       // between 1st and 2nd      {        dSecondMinMag         = v.getMagnitude();       // put this to second        secondClosestObject   = o;      }    }  }  iterateObjectDone( iIndex );  if( dDist != NULL )    *dDist = dSecondMinMag;  return secondClosestObject;}/*! This method returns the object type of the second closest object relative    to the agent. Only objects are taken into account within set 'set' and    which where seen in the last see message.    \param set ObjectSetT which denotes objects taken into consideration    \param dDist will be filled with the distance to this this object    \return ObjectType that is second closest to the agent */ObjectT WorldModel::getSecondClosestRelativeInSet( ObjectSetT set,                                                    double *dDist ){  ObjectT     closestObject       = OBJECT_ILLEGAL;  ObjectT     secondClosestObject = OBJECT_ILLEGAL;  double      dMinMag             = 1000.0;  double      dSecondMinMag       = 1000.0;  double      d;  int         iIndex;  for( ObjectT o = iterateObjectStart( iIndex, set, 1.0 );       o != OBJECT_ILLEGAL;       o = iterateObjectNext ( iIndex, set, 1.0 ) )  {    d = getRelativeDistance( o );    if( d < dMinMag )                                 // closer then first    {      dSecondMinMag         = dMinMag;                // put first to second      secondClosestObject   = closestObject;      dMinMag               = d;                      // and this to first      closestObject         = o;    }    else if( d < dSecondMinMag )                      // between first and 2nd    {      dSecondMinMag         = d;                      // put this to second      secondClosestObject   = o;    }  }  iterateObjectDone( iIndex );  if( dDist != NULL )    *dDist = dSecondMinMag;  return secondClosestObject;}/*! This method returns the object type of the furthest object to the    ObjectT that is supplied as the second argument. Only objects are    taken into account that are part of the set 'set' and have a    confidence higher than the supplied threshold. If no threshold is    supplied, the threshold defined in PlayerSettings is used.    \param set ObjectSetT which denotes objects taken into consideration    \param o ObjectT that represent the type of the object to compare to    \param dDist will be filled with the furthest distance    \param dConfThr minimum confidence threshold for the objects in 'set'    \return ObjectType that is furthest to o */ObjectT WorldModel::getFurthestInSetTo( ObjectSetT set, ObjectT objTarget,                                        double *dDist, double dConfThr ){  if( dConfThr == -1.0 ) dConfThr      = PS->getPlayerConfThr();  ObjectT     furthestObject = OBJECT_ILLEGAL;  double      dMaxMag       = -1000.0;  VecPosition v;  int         iIndex;  for( ObjectT o = iterateObjectStart( iIndex, set, dConfThr );       o != OBJECT_ILLEGAL;       o = iterateObjectNext ( iIndex, set, dConfThr ) )  {    if( o != objTarget )    {      v = getGlobalPosition( objTarget ) - getGlobalPosition( o );      if( v.getMagnitude() > dMaxMag )      {        dMaxMag        = v.getMagnitude();        furthestObject = o;      }    }  }  iterateObjectDone( iIndex );  if( dDist != NULL )    *dDist = dMaxMag;  return furthestObject;}/*! This method returns the type of the object that is located furthest    relative to the agent. Only objects are taken into account    that are part of the set 'set'.    \param set ObjectSetT which denotes objects taken into consideration    \param dDist will be filled with the furthest relative distance    \return ObjectType that is furthest to the agent */ObjectT WorldModel::getFurthestRelativeInSet( ObjectSetT set, double *dDist  ){  ObjectT     furthestObject = OBJECT_ILLEGAL;  double      dMaxMag       = -1000.0;  int         iIndex;  for( ObjectT o = iterateObjectStart( iIndex, set, 1.0 );       o != OBJECT_ILLEGAL;       o = iterateObjectNext ( iIndex, set, 1.0 ) )  {    if( getRelativeDistance( o ) > dMaxMag )    {      dMaxMag        = getRelativeDistance( o );      furthestObject = o;    }  }  iterateObjectDone( iIndex );  if( dDist != NULL )    *dDist = dMaxMag;  return furthestObject;}VecPosition WorldModel::getPosClosestOpponentTo( double *dDist, ObjectT o ){  if( o == OBJECT_ILLEGAL )    o = getAgentObjectType();  ObjectT objOpp = getClosestInSetTo( OBJECT_SET_OPPONENTS, o, dDist );  if( objOpp == OBJECT_ILLEGAL )    return VecPosition( UnknownDoubleValue, UnknownDoubleValue );      return getGlobalPosition( objOpp );}double WorldModel::getMaxTraveledDistance( ObjectT o ){  return (getCurrentTime() - getTimeLastSeen( o ) )*SS->getPlayerSpeedMax();}void WorldModel::createInterceptFeatures( ){  static int count = 0;  static Time timeLastCalled(0,0);    if( timeLastCalled == getTimeLastSenseMessage() )    count++;  else    count = 0;      if( count > 4 )    cerr << getPlayerNumber() << " called createIntercept too often: " <<        count << endl;  // we check all possible next positions of the ball and see  // whether a player (opponent or teammate) can reach the ball at that point  // if so, we log this as a feature. We finish when all features have been  // found.  ObjectSetT      set = OBJECT_SET_PLAYERS;  int             iCycles       = -1;  int             iMinCyclesTeam    = 100;  int             iMinCyclesOpp     = 100;  bool            bOnlyMe           = false;  VecPosition     posObj;  int             iIndex;  int             iCyclesToObj  ;  // no feature available, calculate information  ObjectT         objFastestTeam             = OBJECT_ILLEGAL;  ObjectT         objFastestTeamNoGoalie     = OBJECT_ILLEGAL;  ObjectT         objFastestOpp              = OBJECT_ILLEGAL;  ObjectT         objFastestPlayer           = OBJECT_ILLEGAL;  int             iCyclesFastestPlayer       = -1;  int             iCyclesFastestTeam         = -1;  int             iCyclesFastestTeamNoGoalie = -1;  int             iCyclesFastestOpp          = -1;  int             iCyclesFastestMe           = -1;  bool            bFinishedPlayer            = false;  bool            bFinishedTeammates         = false;  bool            bFinishedTeammatesNoGoalie = false;  bool            bFinishedOpponents         = false;  bool            bFinishedMe                = false;  bool            bFinished                  = false;  ObjectT         objLog                     = OBJECT_ILLEGAL;  int             iCyclesLog                 = -1;  FeatureT        featLog                    = FEATURE_ILLEGAL;  // for each next position of the ball  while( bFinished == false && iCycles <= PS->getPlayerWhenToIntercept() )  {    iCycles++;    iMinCyclesTeam = 100;    iMinCyclesOpp  = 100;    Log.log( 460, "fastest loop: %d", iCycles );    // determine its position and traverse all players to check the teammate    // and opponent who can reach it first    posObj     = predictPosAfterNrCycles( OBJECT_BALL, iCycles );    for( ObjectT o = iterateObjectStart( iIndex, set );       o != OBJECT_ILLEGAL;       o = iterateObjectNext ( iIndex, set ) )    {      if( getGlobalPosition(o).getDistanceTo(posObj)/SS->getPlayerSpeedMax()          < iCycles + 1 && (bOnlyMe == false || SoccerTypes::isOpponent( o )          || o == getAgentObjectType() ) )      {        Log.log( 460, "call predictNrCyclesToPoint %d %d %d",                       iCycles, iMinCyclesTeam, iMinCyclesOpp );        iCyclesToObj = predictNrCyclesToPoint( o, posObj );        if( iCyclesToObj < iMinCyclesOpp && SoccerTypes::isOpponent( o ) )        {          iMinCyclesOpp = iCyclesToObj;          objFastestOpp = o;        }        if( iCyclesToObj < iMinCyclesTeam && SoccerTypes::isTeammate( o ) )        {          iMinCyclesTeam = iCyclesToObj;          objFastestTeam = o;        }      }    }    iterateObjectDone( iIndex );    bool bContinue = true;    bool bLastCall = ( iCycles == PS->getPlayerWhenToIntercept() );    // log all features that have been solved    while( bContinue )    {      featLog = FEATURE_ILLEGAL;      if( bLastCall )        iCycles = 100;      // if player not set yet and either team or opp is smaller than iCycles      // set fastest player      if( bFinishedPlayer == false &&          ( min( iMinCyclesTeam, iMinCyclesOpp ) <= iCycles             ||            bLastCall == true ) )      {        featLog              = FEATURE_FASTEST_PLAYER_TO_BALL;        iCyclesLog           = iCycles;        iCyclesFastestPlayer = iCycles;        objLog               = (iMinCyclesTeam<=iMinCyclesOpp) ?                                    objFastestTeam : objFastestOpp;        objFastestPlayer     = objLog;        bFinishedPlayer      = true;      }      // if teammate not set yet and min cycles team smaller set it      else if( bFinishedTeammates == false &&               (iMinCyclesTeam <= iCycles || bFinishedOpponents == true                 || bLastCall))      {        if( bFinishedOpponents == true )          objFastestTeam = getFastestInSetTo( OBJECT_SET_TEAMMATES, posObj,                             VecPosition(0,0), 0, &iCycles );        featLog            = FEATURE_FASTEST_TEAMMATE_TO_BALL;        iCyclesLog         = iCycles;        iCyclesFastestTeam = iCycles;        objLog             = objFastestTeam;        bFinishedTeammates = true;      }      else if( bFinishedTeammatesNoGoalie == false &&         ( ( iMinCyclesTeam <= iCycles && objFastestTeam != getOwnGoalieType())           || bFinishedOpponents == true || bLastCall ) )      {        if( bFinishedOpponents == true && objFastestTeam == getOwnGoalieType())          objFastestTeam=getFastestInSetTo( OBJECT_SET_TEAMMATES_NO_GOALIE,                            posObj, VecPosition(0,0), 0, &iCycles );        featLog                   = FEATURE_FASTEST_TEAMMATE_TO_BALL_NO_GOALIE;        iCyclesLog                 = iCycles;        iCyclesFastestTeamNoGoalie = iCycles;        objLog                     = objFastestTeam;        objFastestTeamNoGoalie     = objFastestTeam;        bFinishedTeammatesNoGoalie = true;      }      else if( bFinishedMe == false &&        ((iMinCyclesTeam <= iCycles && objFastestTeam == getAgentObjectType())        || bFinishedOpponents == true || bLastCall ) )      {        if( bFinishedOpponents == true && 	    objFastestTeam != getAgentObjectType())          iCycles = predictNrCyclesToPoint( getAgentObjectType(), posObj );        featLog          = FEATURE_INTERCEPT_CYCLES_ME;        iCyclesLog       = iCycles;        iCyclesFastestMe = iCycles;        objLog           = getAgentObjectType();        bFinishedMe      = true;      }      else if( bFinishedOpponents == false &&               ( iMinCyclesOpp <= iCycles  || bLastCall ) )      {        featLog            = FEATURE_FASTEST_OPPONENT_TO_BALL;        iCyclesLog         = iCycles;        iCyclesFastestOpp  = iCycles;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米一区二区三区| 中文字幕色av一区二区三区| 成人午夜电影网站| 日韩电影在线一区二区| 日本中文字幕一区二区有限公司| 亚洲在线视频一区| 婷婷久久综合九色综合伊人色| 亚洲一区二区三区四区在线免费观看| 亚洲黄色性网站| 亚洲成人免费视频| 久色婷婷小香蕉久久| 狠狠狠色丁香婷婷综合激情| 国产成人日日夜夜| 色综合网色综合| 在线播放亚洲一区| 久久久久久一二三区| 中文字幕亚洲电影| 肉丝袜脚交视频一区二区| 日韩国产一二三区| 成人综合婷婷国产精品久久| 99久久婷婷国产综合精品电影 | 日韩主播视频在线| 青娱乐精品视频在线| 国产一区二区精品久久99| 粉嫩嫩av羞羞动漫久久久| 日本韩国欧美一区| 欧美zozozo| 一区二区三区在线免费| 国产在线不卡一区| 91色在线porny| 日韩亚洲电影在线| 国产精品二三区| 免费观看91视频大全| 99视频在线精品| 欧美一区二区福利在线| 国产精品成人在线观看| 免费av成人在线| 在线观看www91| 欧美国产一区二区在线观看| 亚洲成人av电影在线| 国产精品一区二区在线观看网站 | 2欧美一区二区三区在线观看视频| 国产欧美一区二区精品忘忧草 | 成人黄色片在线观看| 欧美日韩国产123区| 欧美国产精品中文字幕| 蜜桃av一区二区| 在线免费不卡视频| 国产精品国产自产拍高清av| 久久国产精品99精品国产 | 精彩视频一区二区| 欧美性色综合网| 亚洲男人的天堂一区二区| 国产精品中文字幕一区二区三区| 欧美日韩国产一二三| 一二三区精品福利视频| youjizz久久| 国产人成亚洲第一网站在线播放 | 精品1区2区3区| 国产精品久久久久久一区二区三区 | 国产精品乱码一区二区三区软件| 日韩va欧美va亚洲va久久| 欧美亚洲尤物久久| 一级特黄大欧美久久久| 99精品欧美一区二区三区小说 | 亚洲色欲色欲www| 国产精品99久| 久久久精品黄色| 国产在线播精品第三| 日韩欧美国产电影| 日本一道高清亚洲日美韩| 在线成人免费视频| 三级成人在线视频| 日韩精品一区二区在线| 美女网站色91| 精品国产电影一区二区| 久久狠狠亚洲综合| www国产精品av| 成人午夜激情视频| 一区二区三区资源| 欧美日韩在线播放| 午夜电影久久久| 日韩一区二区三区精品视频 | 国产精品理伦片| 99精品视频在线观看免费| 夜夜嗨av一区二区三区四季av | k8久久久一区二区三区| 亚洲天堂成人在线观看| 91福利精品第一导航| 五月综合激情婷婷六月色窝| 欧美一级一区二区| 国产在线精品一区二区| 国产精品嫩草久久久久| 91国内精品野花午夜精品| 日韩激情一区二区| 中文字幕巨乱亚洲| 欧美日韩三级视频| 精品中文字幕一区二区| 国产精品嫩草影院av蜜臀| 欧美性猛交xxxxxx富婆| 激情伊人五月天久久综合| 国产精品第四页| 8v天堂国产在线一区二区| 精品综合久久久久久8888| 国产精品久久久久久久久果冻传媒| 色哟哟日韩精品| 激情另类小说区图片区视频区| 日本一区二区视频在线观看| 欧美午夜不卡视频| 国产精品自拍av| 午夜精品久久久久久久久| 国产性做久久久久久| 欧美性视频一区二区三区| 国产一区二区导航在线播放| 亚洲激情自拍视频| 国产婷婷色一区二区三区四区 | 91丨九色丨黑人外教| 日韩电影在线看| 亚洲精品成人少妇| 久久久久久久久久久久久女国产乱 | 国产成人一区在线| 亚洲成av人片| 中文字幕色av一区二区三区| 精品国产区一区| 裸体健美xxxx欧美裸体表演| 天堂资源在线中文精品| 精品91自产拍在线观看一区| 色综合久久久久| 国产精品一区二区在线观看网站| 亚洲激情在线播放| 亚洲色图清纯唯美| 国产欧美日韩视频一区二区| 91.成人天堂一区| 在线观看国产日韩| 99久久久久久99| 懂色av一区二区在线播放| 国产麻豆91精品| 黄一区二区三区| 狠狠狠色丁香婷婷综合激情| 日韩精品一级二级| 日韩av一区二区三区四区| 亚洲国产精品一区二区www在线| 中文字幕精品三区| 国产精品三级视频| 日本一区二区高清| 欧美国产精品v| 国产精品网站在线播放| 国产丝袜美腿一区二区三区| 精品国产亚洲一区二区三区在线观看| 欧美欧美午夜aⅴ在线观看| 欧洲在线/亚洲| 欧美日韩二区三区| 5858s免费视频成人| 在线成人av网站| 777亚洲妇女| 久久只精品国产| 国产片一区二区三区| 国产精品护士白丝一区av| 国产精品麻豆久久久| 亚洲欧洲制服丝袜| 午夜婷婷国产麻豆精品| 午夜电影久久久| 国产一区二区三区在线看麻豆| 蜜臀精品一区二区三区在线观看 | 精品成人一区二区三区四区| 久久综合九色综合97婷婷女人 | 在线电影院国产精品| 欧美一级片免费看| 欧美成人a在线| 国产精品少妇自拍| 亚洲综合清纯丝袜自拍| 爽好久久久欧美精品| 国产激情视频一区二区三区欧美 | 亚洲女人小视频在线观看| 亚洲精品视频在线看| 日韩精品久久久久久| 国产在线麻豆精品观看| 波多野结衣一区二区三区| 色成人在线视频| 精品日本一线二线三线不卡| 欧美激情一区二区三区不卡| 亚洲精品第1页| 国产一区二区三区四区五区入口| 99久久精品国产精品久久| 欧美体内she精高潮| 国产免费久久精品| 日本强好片久久久久久aaa| 成人手机电影网| 69p69国产精品| 自拍偷在线精品自拍偷无码专区| 日本网站在线观看一区二区三区| 国产成人综合视频| 欧美一区二区三区免费观看视频| 中文字幕精品三区| 久久99精品视频| 欧美性大战久久久久久久蜜臀| 久久久久久久久99精品| 香蕉久久一区二区不卡无毒影院| 成人免费视频国产在线观看| 日韩免费看的电影|