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

📄 visualsensor.h

📁 在LINUX下运行的仿真机器人服务器源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
// -*-c++-*-/***************************************************************************                               visualsensor.h    A class for storing the data from the players visual sensor                             -------------------    begin                : 25-NOV-2001    copyright            : (C) 2001 by The RoboCup Soccer Server                            Maintainance 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.                                                        * *                                                                         * ***************************************************************************/#ifndef _VISUALSENSOR_H_#define _VISUALSENSOR_H_// Arrrgggghh....  I've created a monster.  Will reimplement as part of the// serializers later.class PObject;class MPObject;class Player;class Stadium;#include <iostream>#include <list>//===================================================================////  CLASS: VisualSensor////  DESC: Base class for the visual protocol.////===================================================================class VisualSensor{public:  enum quality_t  {    LOW,    HIGH  };  enum range_t  {    CLOSE,    NORMAL,    UFAR,    TFAR,    NORMAL_POINTING,    UFAR_POINTING,    OUT  };};//===================================================================////  CLASS: VisualSensor_v1////  DESC: Class for the version 1 visual protocol.  This version is//        completly unused as far as I am aware of, but it is here//        none the less, just in case there is someone somewhere//        still using it. ////===================================================================class VisualSensor_v1  : public VisualSensor{public:  struct obj_dir_data_t  {    int M_direction;    static double calcRadDir ( const PObject& obj, const Player& player );    static int calcDegDir ( const double& rad );    static int calcDir ( const PObject& obj, const Player& player );    static double calcLineRadDir ( const PObject& obj, const Player& player, const double& line_normal );    static int calcLineDegDir ( const double& sight_2_line_ang );  };  struct ball_low_close_data_t    : public VisualSensor_v1::obj_dir_data_t  {  };  struct player_low_close_data_t    : public VisualSensor_v1::obj_dir_data_t  {  };  struct flag_low_close_data_t    : public VisualSensor_v1::obj_dir_data_t  {  };  struct goal_low_close_data_t    : public VisualSensor_v1::obj_dir_data_t  {  };  struct ball_low_normal_data_t    : public VisualSensor_v1::obj_dir_data_t  {  };  struct obj_name_data_t  {    const char* M_name;    static const char* calcName ( const PObject& obj );    static const char* calcUFarName ( const Player& obj );    static const char* calcTFarName ( const Player& obj );  };  struct player_low_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct flag_low_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct goal_low_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct line_low_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct player_low_ufar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct player_low_tfar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct ball_low_data_t  {    VisualSensor_v1::range_t M_range;    union     {      VisualSensor_v1::ball_low_close_data_t M_close_data;						      VisualSensor_v1::ball_low_normal_data_t M_normal_data;    };    void set ( const PObject& ball, const Player& player );  };  struct player_low_data_t  {    VisualSensor_v1::range_t M_range;    union     {      VisualSensor_v1::player_low_close_data_t M_close_data;						      VisualSensor_v1::player_low_normal_data_t M_normal_data;      VisualSensor_v1::player_low_ufar_data_t M_ufar_data;						      VisualSensor_v1::player_low_tfar_data_t M_tfar_data;    };    void set ( const Player& observed_player, const Player& player );  };  struct flag_low_data_t  {    VisualSensor_v1::range_t M_range;    union     {      VisualSensor_v1::flag_low_close_data_t M_close_data;						      VisualSensor_v1::flag_low_normal_data_t M_normal_data;    };    void set ( const PObject& flag, const Player& player );  };  struct goal_low_data_t  {    VisualSensor_v1::range_t M_range;    union     {      VisualSensor_v1::goal_low_close_data_t M_close_data;						      VisualSensor_v1::goal_low_normal_data_t M_normal_data;    };    void set ( const PObject& goal, const Player& player );  };  struct line_low_data_t  {    VisualSensor_v1::range_t M_range;    VisualSensor_v1::line_low_normal_data_t M_normal_data;    void set ( const PObject& line, const Player& player );  };  struct obj_dist_data_t  {    double M_distance;    static double calcUnQuantDist ( const PObject& obj, const Player& player );    static double calcQuantDist ( const double& dist, const double& qstep );    static double calcDist ( const PObject& obj, const Player& player, const double& qstep );    static double calcLineDist ( const double& sight_2_line_ang,                                  const double& player_2_line,                                 const double& qstep );    bool    operator<( const obj_dist_data_t& data ) const    {      return M_distance < data.M_distance;    }  };  struct ball_high_close_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t												  {  };  struct player_high_close_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t												  {  };  struct flag_high_close_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t  {  };  struct goal_high_close_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t  {  };  struct player_high_tfar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct ball_high_ufar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t  {  };  struct player_high_ufar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct flag_high_ufar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct goal_high_ufar_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct obj_vel_data_t  {    struct vel_t    {      double M_dist_chg;      double M_dir_chg;    };				    VisualSensor_v1::obj_vel_data_t::vel_t M_vel;    static VisualSensor_v1::obj_vel_data_t::vel_t     calcVel ( const MPObject& obj,               const Player& player,              const double& un_quant_dist,              const double& quant_dist );				    static VisualSensor_v1::obj_vel_data_t::vel_t     calcVel ( const PObject& obj,              const Player& player,              const double& un_quant_dist,               const double& quant_dist );  };  struct ball_high_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_vel_data_t  {  };  struct player_high_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_vel_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct flag_high_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t,																	      public VisualSensor_v1::obj_vel_data_t  {  };  struct goal_high_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t,																	      public VisualSensor_v1::obj_vel_data_t  {  };  struct line_high_normal_data_t    : public VisualSensor_v1::obj_dir_data_t,      public VisualSensor_v1::obj_dist_data_t,      public VisualSensor_v1::obj_name_data_t  {  };  struct ball_high_data_t  {    VisualSensor_v1::range_t M_range;    union     {      VisualSensor_v1::ball_high_close_data_t M_close_data;						      VisualSensor_v1::ball_high_normal_data_t M_normal_data;      VisualSensor_v1::ball_high_ufar_data_t M_ufar_data;    };    void set ( const MPObject& ball, const Player& player );  };  struct player_high_data_t  {    VisualSensor_v1::range_t M_range;    union     {      VisualSensor_v1::player_high_close_data_t M_close_data;						      VisualSensor_v1::player_high_normal_data_t M_normal_data;      VisualSensor_v1::player_high_ufar_data_t M_ufar_data;      VisualSensor_v1::player_high_tfar_data_t M_tfar_data;    };    void set ( const Player& observered, const Player& player );  };  struct flag_high_data_t  {    VisualSensor_v1::range_t M_range;

⌨️ 快捷键说明

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