Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Representations/Perception/PlayersPercept.h

Go to the documentation of this file.
00001 /**
00002  * @file PlayersPercept.h
00003  * 
00004  * Declaration of classes PlayersPercept and SinglePlayerPercept
00005  * @author <A href=mailto:timlaue@informatik.uni-bremen.de>Tim Laue</A>
00006  */ 
00007 
00008 #ifndef __PlayersPercept_h_
00009 #define __PlayersPercept_h_
00010 
00011 
00012 #include "Tools/Streams/InOut.h"
00013 #include "Tools/Math/Vector2.h"
00014 
00015 
00016 /**
00017 * This class contains some information about a single perceived robot
00018 */
00019 class SinglePlayerPercept
00020 {
00021 public:
00022   /** Simple constructor */
00023   SinglePlayerPercept() : validity(0) {}
00024 
00025   /** Copy constructor */
00026   SinglePlayerPercept(const SinglePlayerPercept& other)  {*this = other;};
00027 
00028   /** offset to the robot, relative to own robot */
00029   Vector2<double> offset;
00030 
00031   /** The direction of the perceived robot*/
00032   double direction;
00033 
00034   /** The validity of this percept */
00035   double validity;
00036 };
00037 
00038 
00039 /**
00040 * This is a collection of SinglePlayerPercept for red and blue dressed robots.
00041 */
00042 class PlayersPercept
00043 {
00044 public:
00045   /** Constants */
00046   enum {
00047     maxNumberOfRedPlayerPercepts = 13,
00048     maxNumberOfBluePlayerPercepts = 17,
00049     maxNumberOfOneRobotsPercepts = 17,
00050     maxNumberOfPercepts = 34
00051   };
00052 
00053   /** Constructor */
00054   PlayersPercept();
00055 
00056   /** Destructor */
00057   ~PlayersPercept();
00058 
00059   /** Initializes the percept */
00060   void reset(unsigned long frameNumber);
00061 
00062   /**
00063   * The function adds a red player percept.
00064   * @param percept The percept to add.
00065   */
00066   void addRedPlayer(const SinglePlayerPercept& percept);
00067 
00068   /**
00069   * The function adds a blue player percept.
00070   * @param percept The percept to add.
00071   */
00072   void addBluePlayer(const SinglePlayerPercept& percept);
00073 
00074   /** List of perceived red robots */
00075   SinglePlayerPercept redPlayers[maxNumberOfRedPlayerPercepts];
00076 
00077   /** List of perceived blue robots */
00078   SinglePlayerPercept bluePlayers[maxNumberOfBluePlayerPercepts];
00079 
00080   /** Number of perceived red robots */
00081   int numberOfRedPlayers;
00082 
00083   /** Number of perceived blue robots */
00084   int numberOfBluePlayers;
00085   
00086   /** The frame number when perceived. */
00087   unsigned long frameNumber;
00088 };
00089 
00090 /**
00091  * Streaming operator that reads a PlayersPercept from a stream.
00092  * @param stream The stream from which is read.
00093  * @param playersPercept The PlayersPercept object.
00094  * @return The stream.
00095  */ 
00096 In& operator>>(In& stream,PlayersPercept& playersPercept);
00097  
00098 /**
00099  * Streaming operator that writes a PlayersPercept to a stream.
00100  * @param stream The stream to write on.
00101  * @param playersPercept The PlayersPercept object.
00102  * @return The stream.
00103  */ 
00104 Out& operator<<(Out& stream, const PlayersPercept& playersPercept);
00105 
00106 
00107 #endif //__PlayersPercept_h_
00108 
00109 /*
00110  * Change log :
00111  * 
00112  * $Log: PlayersPercept.h,v $
00113  * Revision 1.1.1.1  2004/05/22 17:25:59  cvsadm
00114  * created new repository GT2004_WM
00115  *
00116  * Revision 1.4  2004/03/24 14:04:07  tim
00117  * - added member
00118  * - removed old unused members
00119  *
00120  * Revision 1.3  2004/01/19 14:53:46  dueffert
00121  * all frameNumbers (and not only some of them) are unsigned long now
00122  *
00123  * Revision 1.2  2003/11/12 16:19:35  goehring
00124  * frameNumber added to percepts
00125  *
00126  * Revision 1.1  2003/10/07 10:09:36  cvsadm
00127  * Created GT2004 (M.J.)
00128  *
00129  * Revision 1.1.1.1  2003/07/02 09:40:22  cvsadm
00130  * created new repository for the competitions in Padova from the 
00131  * tamara CVS (Tuesday 2:00 pm)
00132  *
00133  * removed unused solutions
00134  *
00135  * Revision 1.8  2003/05/20 12:15:43  reiss
00136  * Fit Variables.
00137  *
00138  * Revision 1.7  2003/03/26 09:46:06  roefer
00139  * LinesImageProcessor2 generates player percepts
00140  *
00141  * Revision 1.6  2003/03/06 11:53:16  dueffert
00142  * re-order warning removed
00143  *
00144  * Revision 1.5  2003/02/27 10:06:59  schmidt
00145  * Added three variants of a SensorFusionPlayersLocator.
00146  *
00147  * Revision 1.4  2002/11/27 13:52:48  dueffert
00148  * doxygen docu added
00149  *
00150  * Revision 1.3  2002/09/22 18:40:50  risler
00151  * added new math functions, removed GTMath library
00152  *
00153  * Revision 1.2  2002/09/17 23:55:20  loetzsch
00154  * - unraveled several datatypes
00155  * - changed the WATCH macro
00156  * - completed the process restructuring
00157  *
00158  * Revision 1.1  2002/09/10 15:26:40  cvsadm
00159  * Created new project GT2003 (M.L.)
00160  * - Cleaned up the /Src/DataTypes directory
00161  * - Removed Challenge Code
00162  * - Removed processing of incoming audio data
00163  * - Renamed AcousticMessage to SoundRequest
00164  *
00165  * Revision 1.2  2002/07/23 13:32:57  loetzsch
00166  * new streaming classes
00167  *
00168  * removed many #include statements
00169  *
00170  * Revision 1.1.1.1  2002/05/10 12:40:13  cvsadm
00171  * Moved GT2002 Project from ute to tamara.
00172  *
00173  * Revision 1.8  2002/04/16 16:18:12  dueffert
00174  * no message
00175  *
00176  * Revision 1.2  2002/04/11 21:59:08  Joscha Bach
00177  * More players possible...
00178  *
00179  * Revision 1.7  2002/04/02 13:10:18  dueffert
00180  * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete
00181  *
00182  * Revision 1.6  2002/02/22 16:07:03  tim
00183  * Angle/Distance replaced by relative position
00184  *
00185  * Revision 1.5  2001/12/17 00:16:55  tim
00186  * validity hinzugefügt
00187  *
00188  * Revision 1.4  2001/12/15 18:21:39  tim
00189  * PlayersPercept fertig (voererst ;-)
00190  *
00191  * Revision 1.3  2001/12/10 17:47:06  risler
00192  * change log added
00193  *
00194  */

Generated on Thu Sep 23 19:57:36 2004 for GT2004 by doxygen 1.3.6