📄 visualsensor.h
字号:
union { VisualSensor_v1::flag_high_close_data_t M_close_data; VisualSensor_v1::flag_high_normal_data_t M_normal_data; VisualSensor_v1::flag_high_ufar_data_t M_ufar_data; }; void set ( const PObject& flag, const Player& player ); }; struct goal_high_data_t { VisualSensor_v1::range_t M_range; union { VisualSensor_v1::goal_high_close_data_t M_close_data; VisualSensor_v1::goal_high_normal_data_t M_normal_data; VisualSensor_v1::goal_high_ufar_data_t M_ufar_data; }; void set ( const PObject& goal, const Player& player ); }; struct line_high_data_t { VisualSensor_v1::range_t M_range; VisualSensor_v1::line_high_normal_data_t M_normal_data; void set ( const PObject& line, const Player& player ); bool operator<( const line_high_data_t& data ) const { return M_normal_data < data.M_normal_data; } }; struct low_data_t { int M_time; std::list< VisualSensor_v1::goal_low_data_t > M_goals; std::list< VisualSensor_v1::flag_low_data_t > M_flags; std::list< VisualSensor_v1::ball_low_data_t > M_balls; std::list< VisualSensor_v1::player_low_data_t > M_players; std::list< VisualSensor_v1::line_low_data_t > M_lines; void set ( const Stadium& stadium, const Player& player ); }; struct high_data_t { int M_time; std::list< VisualSensor_v1::goal_high_data_t > M_goals; std::list< VisualSensor_v1::flag_high_data_t > M_flags; std::list< VisualSensor_v1::ball_high_data_t > M_balls; std::list< VisualSensor_v1::player_high_data_t > M_players; std::list< VisualSensor_v1::line_high_data_t > M_lines; void set ( const Stadium& stadium, const Player& player ); }; virtual void send ( const VisualSensor_v1::low_data_t& data ) = 0; virtual void send ( const VisualSensor_v1::high_data_t& data ) = 0;};std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_low_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_low_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_low_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_ufar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_tfar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_low_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_low_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_low_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_low_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_low_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_low_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_low_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::line_low_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::line_low_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_ufar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::ball_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_high_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_high_ufar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_high_tfar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::player_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_high_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_high_ufar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::flag_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_high_close_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_high_ufar_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::goal_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::line_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::line_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::low_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v1::high_data_t& data );//===================================================================//// CLASS: VisualSensor_v4//// DESC: Class for the version 4 visual protocol. This version// introduced body directions of players. All other objects// are the same, so they don't need to be redefined////===================================================================class VisualSensor_v4 : public VisualSensor_v1{public: struct obj_body_dir_data_t { int M_body_dir; static int calcBodyDir ( const Player& observed_player, const Player& player ); }; struct player_high_normal_data_t : public VisualSensor_v4::obj_dir_data_t, public VisualSensor_v4::obj_dist_data_t, public VisualSensor_v4::obj_vel_data_t, public VisualSensor_v4::obj_name_data_t, public VisualSensor_v4::obj_body_dir_data_t { }; struct player_high_data_t { VisualSensor_v4::range_t M_range; union { VisualSensor_v4::player_high_close_data_t M_close_data; VisualSensor_v4::player_high_normal_data_t M_normal_data; VisualSensor_v4::player_high_ufar_data_t M_ufar_data; VisualSensor_v4::player_high_tfar_data_t M_tfar_data; }; void set ( const Player& observered_player, const Player& player ); }; struct high_data_t { int M_time; std::list< VisualSensor_v4::goal_high_data_t > M_goals; std::list< VisualSensor_v4::flag_high_data_t > M_flags; std::list< VisualSensor_v4::ball_high_data_t > M_balls; std::list< VisualSensor_v4::player_high_data_t > M_players; void set ( const Stadium& stadium, const Player& player ); }; virtual void send ( const VisualSensor_v4::low_data_t& data ) = 0; virtual void send ( const VisualSensor_v4::high_data_t& data ) = 0;};std::ostream& toStr ( std::ostream& o, const VisualSensor_v4::player_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v4::player_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v4::high_data_t& data );//===================================================================//// CLASS: VisualSensor_v5//// DESC: Class for the version 5 visual protocol. This version// introduced head directions of players. All other objects// are the same, so they don't need to be redefined////===================================================================class VisualSensor_v5 : public VisualSensor_v4{public: struct obj_head_dir_data_t { int M_head_dir; static int calcHeadDir ( const Player& observed_player, const Player& player ); }; struct player_high_normal_data_t : public VisualSensor_v5::obj_dir_data_t, public VisualSensor_v5::obj_dist_data_t, public VisualSensor_v5::obj_vel_data_t, public VisualSensor_v5::obj_name_data_t, public VisualSensor_v5::obj_body_dir_data_t, public VisualSensor_v5::obj_head_dir_data_t { }; struct player_high_data_t { VisualSensor_v5::range_t M_range; union { VisualSensor_v5::player_high_close_data_t M_close_data; VisualSensor_v5::player_high_normal_data_t M_normal_data; VisualSensor_v5::player_high_ufar_data_t M_ufar_data; VisualSensor_v5::player_high_tfar_data_t M_tfar_data; }; void set ( const Player& observered, const Player& player ); }; struct high_data_t { int M_time; std::list< VisualSensor_v5::goal_high_data_t > M_goals; std::list< VisualSensor_v5::flag_high_data_t > M_flags; std::list< VisualSensor_v5::ball_high_data_t > M_balls; std::list< VisualSensor_v5::player_high_data_t > M_players; void set ( const Stadium& stadium, const Player& player ); }; virtual void send ( const VisualSensor_v5::low_data_t& data ) = 0; virtual void send ( const VisualSensor_v5::high_data_t& data ) = 0;};std::ostream& toStr ( std::ostream& o, const VisualSensor_v5::player_high_normal_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v5::player_high_data_t& data );std::ostream& toStr ( std::ostream& o, const VisualSensor_v5::high_data_t& data );//===================================================================//// CLASS: VisualSensor_v6//// DESC: Class for the version 6 visual protocol. This version// introduced shortened names for all the objects meaning they// must all be redefined.////===================================================================class VisualSensor_v6 : public VisualSensor_v5{public: struct ball_low_close_data_t : public VisualSensor_v6::obj_dir_data_t { }; struct player_low_close_data_t : public VisualSensor_v6::obj_dir_data_t { }; struct flag_low_close_data_t : public VisualSensor_v6::obj_dir_data_t { }; struct goal_low_close_data_t : public VisualSensor_v6::obj_dir_data_t { }; struct ball_low_normal_data_t : public VisualSensor_v6::obj_dir_data_t { }; struct line_low_normal_data_t : public VisualSensor_v6::obj_dir_data_t, public VisualSensor_v6::obj_name_data_t { }; struct obj_name_data_t : public VisualSensor_v5::obj_name_data_t { static const char* calcName ( const PObject& obj ); static const char* calcUFarName ( const Player& obj ); static const char* calcTFarName ( const Player& obj ); }; struct player_low_tfar_data_t : public VisualSensor_v6::obj_dir_data_t, public VisualSensor_v6::obj_name_data_t { }; struct player_low_ufar_data_t : public VisualSensor_v6::obj_dir_data_t, public VisualSensor_v6::obj_name_data_t { }; struct player_low_normal_data_t : public VisualSensor_v6::obj_dir_data_t, public VisualSensor_v6::obj_name_data_t { }; struct flag_low_normal_data_t : public VisualSensor_v6::obj_dir_data_t, public VisualSensor_v6::obj_name_data_t { }; struct goal_low_normal_data_t : public VisualSensor_v6::obj_dir_data_t, public VisualSensor_v6::obj_name_data_t { }; struct ball_low_data_t { VisualSensor_v6::range_t M_range; union { VisualSensor_v6::ball_low_close_data_t M_close_data; VisualSensor_v6::ball_low_normal_data_t M_normal_data; }; void set ( const MPObject& ball, const Player& player ); }; struct player_low_data_t { VisualSensor_v6::range_t M_range; union { VisualSensor_v6::player_low_close_data_t M_close_data; VisualSensor_v6::player_low_normal_data_t M_normal_data; VisualSensor_v6::player_low_ufar_data_t M_ufar_data; VisualSensor_v6::player_low_tfar_data_t M_tfar_data; }; void set ( const Player& observed_player, const Player& player ); }; struct flag_low_data_t { VisualSensor_v6::range_t M_range; union { VisualSensor_v6::flag_low_close_data_t M_close_data; VisualSensor_v6::flag_low_normal_data_t M_normal_data; }; void set ( const PObject& flag, const Player& player ); }; struct goal_low_data_t { VisualSensor_v6::range_t M_range; union { VisualSensor_v6::goal_low_close_data_t M_close_data; VisualSensor_v6::goal_low_normal_data_t M_normal_data; }; void set ( const PObject& flag, const Player& player ); }; struct line_low_data_t { VisualSensor_v6::range_t M_range; VisualSensor_v6::line_low_normal_data_t M_normal_data; void set ( const PObject& line, const Player& player ); }; struct ball_high_close_data_t
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -