⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visualsensor.cc

📁 在LINUX下运行的仿真机器人服务器源代码
💻 CC
📖 第 1 页 / 共 5 页
字号:
      if ( stadium.player[ j ] != &player           && stadium.player[ j ]->alive != DISABLE            && stadium.player [ j ]->obj_ver <= player.version )				{          VisualSensor_v1::player_low_data_t data;          data.set ( *( stadium.player [ j ] ), player );						          if ( data.M_range != VisualSensor_v1::OUT )            M_players.push_back ( data );				}		}  int line_count = 0;  int max_line_count;  int min_line_count;  if ( fabs ( player.pos.x ) < PITCH_LENGTH/2       && fabs ( player.pos.y ) < PITCH_WIDTH/2 )    min_line_count = max_line_count = 1;  else    {      max_line_count = 2;      min_line_count = 0;    }  if ( line_count < max_line_count        && stadium.field.line_l.obj_ver <= player.version )		{      VisualSensor_v1::line_low_data_t data;      data.set ( stadium.field.line_l, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if ( line_count < max_line_count        && stadium.field.line_r.obj_ver <= player.version )		{      VisualSensor_v1::line_low_data_t data;      data.set ( stadium.field.line_r, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if ( line_count < max_line_count        && stadium.field.line_t.obj_ver <= player.version )		{      VisualSensor_v1::line_low_data_t data;      data.set ( stadium.field.line_t, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if ( line_count < max_line_count        && stadium.field.line_b.obj_ver <= player.version )		{      VisualSensor_v1::line_low_data_t data;      data.set ( stadium.field.line_b, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if( line_count < min_line_count )    std::cerr << __FILE__ << ": " << __LINE__         << ": Error rendering visual: not enough lines\n"         << "Player = " << player << std::endl;}void VisualSensor_v1::high_data_t::set ( const Stadium& stadium,																				 const Player& player ){  M_time = stadium.time;  for( int j = 0 ; j < stadium.votable.n ; j++ )		{      switch ( stadium.votable.object [ j ]->getObjectType () )				{        case MPObject::OT_GOAL:          if ( stadium.votable.object [ j ]->obj_ver <= player.version )            {              VisualSensor_v1::goal_high_data_t data;              data.set ( *( stadium.votable.object [ j ] ), player );										              if ( data.M_range != VisualSensor_v1::OUT )                M_goals.push_back ( data );            }	          break;        case MPObject::OT_FLAG:          if ( stadium.votable.object [ j ]->obj_ver <= player.version )            {              VisualSensor_v1::flag_high_data_t data;              data.set ( *( stadium.votable.object [ j ] ), player );										              if ( data.M_range != VisualSensor_v1::OUT )                M_flags.push_back ( data );            }	          break;        default:          break;				}		}  for( int j = 0 ; j < stadium.motable.n ; j++ )		{      switch ( stadium.motable.object [ j ]->getObjectType () )				{        case MPObject::OT_BALL:          if ( stadium.motable.object [ j ]->obj_ver <= player.version )            {              VisualSensor_v1::ball_high_data_t data;              data.set ( *( stadium.motable.object [ j ] ), player );              if ( data.M_range != VisualSensor_v1::OUT )                M_balls.push_back ( data );            }          break;												        default:          break;				}		}  for ( int j = 0 ; j < MAX_PLAYER * 2; j++) 		{      if ( stadium.player[ j ] != &player           && stadium.player[ j ]->alive != DISABLE            && stadium.player [ j ]->obj_ver <= player.version )				{			          VisualSensor_v1::player_high_data_t data;          data.set ( *( stadium.player [ j ] ), player );						          if ( data.M_range != VisualSensor_v1::OUT )            M_players.push_back ( data );				}		}  int line_count = 0;  int max_line_count;  int min_line_count;  if ( fabs ( player.pos.x ) < PITCH_LENGTH/2       && fabs ( player.pos.y ) < PITCH_WIDTH/2 )    min_line_count = max_line_count = 1;  else    {      max_line_count = 2;      min_line_count = 0;    }  if ( line_count < max_line_count        && stadium.field.line_l.obj_ver <= player.version )		{      VisualSensor_v1::line_high_data_t data;      data.set ( stadium.field.line_l, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if ( line_count < max_line_count        && stadium.field.line_r.obj_ver <= player.version )		{      VisualSensor_v1::line_high_data_t data;      data.set ( stadium.field.line_r, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if ( line_count < max_line_count        && stadium.field.line_t.obj_ver <= player.version )		{      VisualSensor_v1::line_high_data_t data;      data.set ( stadium.field.line_t, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if ( line_count < max_line_count        && stadium.field.line_b.obj_ver <= player.version )		{      VisualSensor_v1::line_high_data_t data;      data.set ( stadium.field.line_b, player );	      if ( data.M_range != VisualSensor_v1::OUT )				{          M_lines.push_back ( data );          line_count++;				}		}  if( line_count < min_line_count )    std::cerr << __FILE__ << ": " << __LINE__         << ": Error rendering visual: not enough lines\n"         << "Player = " << player << std::endl;  M_lines.sort();}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_low_close_data_t& data ){  return o << "(" << O_TYPE_BALL_NAME           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_low_normal_data_t& data ){  return o << "(" << BALL_NAME           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_low_data_t& data ){  switch ( data.M_range )		{    case VisualSensor_v1::CLOSE:      return toStr ( o, data.M_close_data );    case VisualSensor_v1::NORMAL:      return toStr ( o, data.M_normal_data );    default:      return o;		}}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_close_data_t& data ){  return o << "(" << O_TYPE_PLAYER_NAME           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_normal_data_t& data ){  return o << "(" << data.M_name           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_ufar_data_t& data ){  return o << "(" << data.M_name           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_tfar_data_t& data ){  return o << "(" << data.M_name           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_data_t& data ){  switch ( data.M_range )		{    case VisualSensor_v1::CLOSE:      return toStr ( o, data.M_close_data );    case VisualSensor_v1::NORMAL:      return toStr ( o, data.M_normal_data );    case VisualSensor_v1::UFAR:      return toStr ( o, data.M_ufar_data );    case VisualSensor_v1::TFAR:      return toStr ( o, data.M_tfar_data );    default:      return o;		}}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_low_close_data_t& data ){  return o << "(" << O_TYPE_FLAG_NAME           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_low_normal_data_t& data ){  return o << "(" << data.M_name           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_low_data_t& data ){  switch ( data.M_range )		{    case VisualSensor_v1::CLOSE:      return toStr ( o, data.M_close_data );    case VisualSensor_v1::NORMAL:      return toStr ( o, data.M_normal_data );    default:      return o;		}}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_low_close_data_t& data ){  return o << "(" << O_TYPE_GOAL_NAME           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_low_normal_data_t& data ){  return o << "(" << data.M_name           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_low_data_t& data ){  switch ( data.M_range )		{    case VisualSensor_v1::CLOSE:      return toStr ( o, data.M_close_data );    case VisualSensor_v1::NORMAL:      return toStr ( o, data.M_normal_data );    default:      return o;		}}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::line_low_normal_data_t& data ){  return o << "(" << data.M_name           << " " << data.M_direction << ")";}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::line_low_data_t& data ){  switch ( data.M_range )		{    case VisualSensor_v1::NORMAL:      return toStr ( o, data.M_normal_data );    default:      return o;		}}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_close_data_t& data ){  return o << "(" << O_TYPE_BALL_NAME           << " " << data.M_distance           << " " << data.M_direction << ")";		}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_normal_data_t& data ){  return o << "(" << BALL_NAME           << " " << data.M_distance           << " " << data.M_direction            << " " << data.M_vel.M_dist_chg           << " " << data.M_vel.M_dir_chg << ")";		}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_ufar_data_t& data ){  return o << "(" << BALL_NAME           << " " << data.M_distance           << " " << data.M_direction << ")";		}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_data_t& data ){  switch ( data.M_range )		{    case VisualSensor_v1::CLOSE:      return toStr ( o, data.M_close_data );    case VisualSensor_v1::NORMAL:      return toStr ( o, data.M_normal_data );    case VisualSensor_v1::UFAR:      return toStr ( o, data.M_ufar_data );    default:      return o;		};}std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_high_close_data_t& data ){  return o << "(" << O_TYPE_PLAYER_NAME           << " " << data.M_distance           << " " << data.M_direction << ")";		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -