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

📄 smonitor_dev.h

📁 robocup rcssmonitor-11.1.1.zip
💻 H
📖 第 1 页 / 共 2 页
字号:
  static const int BUTTON_QUIT;  static const int BUTTON_NUMBER;  static const int POPUP_BUTTON_DROP_BALL;  static const int POPUP_BUTTON_FREE_KICK_LEFT;  static const int POPUP_BUTTON_FREE_KICK_RIGHT;  static const int POPUP_BUTTON_NUMBER;  /****************************************************************************/  /* begin of SMonitorDevice internal types declaration                       */  /****************************************************************************/  struct Options {    Options();    int server_port;    char server_host[STRING_MAX_SIZE];    int coach_port;    int protocol_version;    bool connect_on_start;    bool keepaway;    double keepaway_length;    double keepaway_width;    bool list_player_types;    bool show_ball_collisions;    bool just_edit;    bool track_ball;    double player_radius;    int player_skin;    Point2d player_num_pos;    bool show_ball_vel;    double ball_radius;    int ball_skin;    double kick_radius;    void toggle_track_ball() { track_ball= !track_ball; }    void toggle_show_ball_vel() { show_ball_vel= !show_ball_vel; }    RGBcolor c_team_l, c_goalie_l, c_font_l, c_invalid_l;    RGBcolor c_team_r, c_goalie_r, c_font_r, c_invalid_r;    RGBcolor c_ball, c_field, c_marigin, c_line, c_goal;    RGBcolor c_varea_exact, c_varea_fuzzy;    int info_level;    static const int info_level_min;    static const int info_level_def;    static const int info_level_max;    int scale_level;    static const int scale_level_min;    static const int scale_level_def;    static const int scale_level_max;    static const double scale_level_inc;    static const double scale_level_beg;    double scale_factor() const;    bool set_scale_level_from_double(double s);    static const int MODE_STANDARD;    static const int MODE_MOVE;    static const int MODE_SHOW_VIEW_AREA;    int mode;    int active_in_mode;    const char * get_mode_string() const;    const char * get_mode_value_string() const;    bool set_mode_from_string(const char * s);    bool lt_show_spare_space_to_offside_line;    bool rt_show_spare_space_to_offside_line;  };  struct ServerState {    //long last_packet_ms_time;    struct Charfield {      char	name[512] ;      int len;      Charfield() { name[0]= '\0'; len = 0;}      void set( const char* str ) { strncpy(name,str,16); len= strlen(name); }      void reset() { name[0]= '\0'; }    };    ServerState();    Charfield left_teamname;    Charfield right_teamname;    Charfield match_information;    bool reconnected;    void reset();  };  struct GuessState {    GuessState() { reset(); }    void reset() {      use_stamina= false;      use_type= false;    }    bool use_stamina;    bool use_type;  };  struct Positions {    struct Ball {      Point2d pos;      Point2d vel;    };    struct Player {      Player() { alive= false; type= 0; view_quality= VisualPlayersViewArea::FEEL_RANGE, view_width= 0.0; };      bool alive;      int type;      Point2d pos;      Angle body_angle;      Angle head_angle_rel;      double view_width;      int view_quality;      double stamina;    };    Positions() {};    Ball ball;    Player player[MAX_PLAYER*2];    Player & ref_player(int i) { return player[i]; };    void set_player_alive(int i,bool flag=true) { player[i].alive= flag; }    bool player_alive(int i) { return player[i].alive; }    void set_player(int i,const Point2d & p,const Angle & a);    void set_player_pos(int i,const Point2d & p) { player[i].pos= p; }    void set_ball_pos(const Point2d & p) { ball.pos= p; }    void set_ball(const Point2d & p, const Point2d & v) { ball.pos= p; ball.vel= v; }    void print_inline(std::ostream & o);    void print_formation(std::ostream & o, bool left_half, bool left_team);    //some info messages (useful for example to recognize offside lines (considers players p1 <= p < p2)    bool max_x_pos(int p1, int p2, double & x1) const;    bool max_x_pos(int p1, int p2, double & x1, double & x2) const;    bool min_x_pos(int p1, int p2, double & x1) const;    bool min_x_pos(int p1, int p2, double & x1, double & x2) const;    //lt= left_team, rt= right_team    bool lt_max_x_pos(double & x1) const { return max_x_pos(0,MAX_PLAYER,x1); }    bool lt_min_x_pos(double & x1) const { return min_x_pos(0,MAX_PLAYER,x1); }    bool lt_max_x_pos(double & x1, double & x2) const { return max_x_pos(0,MAX_PLAYER,x1,x2); }    bool lt_min_x_pos(double & x1, double & x2) const { return min_x_pos(0,MAX_PLAYER,x1,x2); }    bool rt_max_x_pos(double & x1) const { return max_x_pos(MAX_PLAYER,MAX_PLAYER*2,x1); }    bool rt_min_x_pos(double & x1) const { return min_x_pos(MAX_PLAYER,MAX_PLAYER*2,x1); }    bool rt_max_x_pos(double & x1, double & x2) const { return max_x_pos(MAX_PLAYER,MAX_PLAYER*2,x1,x2); }    bool rt_min_x_pos(double & x1, double & x2) const { return min_x_pos(MAX_PLAYER,MAX_PLAYER*2,x1,x2); }  };  struct CoachState {    CoachState() { left_team= true; }    bool left_team;    void toggle_team() { left_team= !left_team; }  };    struct PenaltyState {        int time_;        int left_score_;        int left_trial_;        int right_score_;        int right_trial_;        PenaltyState()            : time_( 0 )            , left_score_( 0 )            , left_trial_( 0 )            , right_score_( 0 )            , right_trial_( 0 )          { }    };  /****************************************************************************/  /* end of SMonitorDevice internal types declaration                         */  /****************************************************************************/  Options options;  ServerState server_state;  GuessState guess;  Positions server_pos;  CoachState coach_state;  VisualBall vis_ball;  VisualPlayer vis_player[MAX_PLAYER*2];  VisualPlayersViewArea vis_view_area;  VisualField vis_field;  Area2d initial_area;    std::vector< PenaltyState > M_penalty_state;  void vis_ball_set_info_level(int lev);  void vis_player_set_info_level(int lev, VisualPlayer & vis_p, const Positions::Player & p);  void vis_player_set_info_level(int lev);  int server_msg_type(void * ptr);  bool server_interpret_showinfo_t(BuilderBase * build, void *ptr);  bool server_interpret_msginfo_t(BuilderBase * build, void *ptr);  bool server_interpret_drawinfo_t(BuilderBase * build, void *ptr);  bool server_interpret_showinfo_t2(BuilderBase * build, void *ptr); //ver. 2  bool server_interpret_player_type_t(BuilderBase * build, void *ptr); //ver. 2  bool server_interpret_server_params_t(BuilderBase * build, void *ptr); //ver. 2    void updatePenaltyState( const int current_time,                             const char pmode );  void show_parser_error_point(std::ostream & out, const char * origin, const char * parse_error_point);  bool ins_simple_obj(const char * buf, int fref, BuilderBase * build, const char* & next);  bool server_interpret_frameview_msg(BuilderBase * build, const char * msg, bool enforce_frame= false, int frame= -1); //art!  bool server_interpret_command_msg(BuilderBase * build, const char * msg);  /// the object ID of the ball  static const int id_ball;  static const int id_invalid;  /// true if object ID means the ball or a valid player  bool o_valid(int i) { return ( o_ball(i) || p_valid(i))?true:false; }  /// true if object ID means the ball  bool o_ball(int i) { return (i == id_ball)?true:false; }  /// true if object ID means a player ball  bool o_player(int i) { return p_valid(i); }  /// true if the player ID is valid  bool p_valid(int i) { return (i>= 0 && i < MAX_PLAYER*2)?true:false; }  /// maps player ID to frame number of this player  int p_frame(int i) { return i+1; }  /// maps player ID to number of this player in his team  int p_number(int i) { return i<MAX_PLAYER?i+1:i+1-MAX_PLAYER; }  /// maps player ID to team ID  int p_team(int i) { return i<MAX_PLAYER?0:1; }  /// return true if player ID belongs to the left team  bool p_left(int i) { return i<MAX_PLAYER?true:false; }  /// return true if player ID belongs to the left team  bool p_right(int i) { return i<MAX_PLAYER?false:true; }  /// maps player ID to character in '1' ... '9' , 'A', 'B'  char p_char(int i);  ///sets player position,  void set_object_pos(BuilderBase * build, int p_num, const Point2d & pos);  void set_all_objects_scale(BuilderBase * build, double scale);  void send_object_pos(int p_num, const Point2d & pos);  void send_dispinit();  void send_dispstart();  void send_dispball(const Point2d & pos);  void send_dispfoul_left(const Point2d & pos);  void send_dispfoul_right(const Point2d & pos);  void send_dispbye();  bool process_options(const ValueParser & vp);  template <class T>  void print_option_entry(std::ostream & o,int mode, const char * option, const T & val, const char * description) const;  void generic_description_of_options(std::ostream & o, int mode) const; public:  /****************************************************************************/  /* public interface of SMonitorDevice as defined in InputDevice             */  /****************************************************************************/  SMonitorDevice();  virtual ~SMonitorDevice() { }  bool set_initial_area(const Area2d & area) { initial_area= area; return true; }  bool process_options(const char * fname);  bool process_options(int argc, char const* const* argv);  void help_options(std::ostream & o) const;  void help_char_command(std::ostream & o) const;  void generate_file_options(std::ostream & o) const;  bool process_char_command(BuilderBase * build, MenuBase * menu, const InputEvent & event);  bool process_mouse_button_event(BuilderBase * build, const InputEvent & event);  bool process_menu_button(BuilderBase * build, MenuBase * menu, const InputEvent & event);  bool process_popup_button(BuilderBase * build, MenuBase * popup, const InputEvent & event);  bool init_menu(MenuBase * menu);  bool init_popup(MenuBase * popup);  bool init_frames(BuilderBase * build);  bool init_connection();  bool uses_mouse() const;  bool uses_popup() const;  bool destruct();  bool process_input(fd_set * , BuilderBase * build);  const char * status_line() { return server_state.match_information.name; }  int set_fds(fd_set * set);  bool got_fds(fd_set * set);    virtual bool is_timeover() const { return timeover; }};template <class T>void SMonitorDevice::print_option_entry(std::ostream & o,int mode, const char * option, const T & val, const char * description) const {  if (mode == 0)    o << "\n"      << "\n# " << description << " (default " << val << ")"      << "\n" << option << " = "; //<< val;  else    o << "\n"      << "\n" << description      << "\n-m_" << option << " [" << val << "]";}#endif

⌨️ 快捷键说明

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