📄 visualsensor.h
字号:
// -*-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 + -