00001 /** 00002 * @file PlayersPercept.cpp 00003 * 00004 * Implementation of class PlayersPercept. 00005 */ 00006 00007 #include "PlayersPercept.h" 00008 00009 00010 PlayersPercept::PlayersPercept() 00011 { 00012 reset(0); 00013 } 00014 00015 00016 PlayersPercept::~PlayersPercept() 00017 { 00018 } 00019 00020 00021 void PlayersPercept::reset(unsigned long frameNumber) 00022 { 00023 this->frameNumber = frameNumber; 00024 numberOfRedPlayers=0; 00025 numberOfBluePlayers=0; 00026 } 00027 00028 00029 void PlayersPercept::addRedPlayer(const SinglePlayerPercept& percept) 00030 { 00031 if(numberOfRedPlayers < maxNumberOfRedPlayerPercepts) 00032 redPlayers[numberOfRedPlayers++] = percept; 00033 } 00034 00035 00036 void PlayersPercept::addBluePlayer(const SinglePlayerPercept& percept) 00037 { 00038 if(numberOfRedPlayers < maxNumberOfBluePlayerPercepts) 00039 bluePlayers[numberOfBluePlayers++] = percept; 00040 } 00041 00042 00043 In& operator>>(In& stream,PlayersPercept& playersPercept) 00044 { 00045 stream >> playersPercept.frameNumber; 00046 int i; 00047 stream >> playersPercept.numberOfBluePlayers; 00048 stream >> playersPercept.numberOfRedPlayers; 00049 for(i=0; i<playersPercept.numberOfBluePlayers; i++) 00050 { 00051 stream.read(&playersPercept.bluePlayers[i], sizeof(SinglePlayerPercept)); 00052 } 00053 for(i=0; i<playersPercept.numberOfRedPlayers; i++) 00054 { 00055 stream.read(&playersPercept.redPlayers[i], sizeof(SinglePlayerPercept)); 00056 } 00057 00058 return stream; 00059 } 00060 00061 00062 Out& operator<<(Out& stream, const PlayersPercept& playersPercept) 00063 { 00064 stream << playersPercept.frameNumber; 00065 int i; 00066 stream << playersPercept.numberOfBluePlayers; 00067 stream << playersPercept.numberOfRedPlayers; 00068 for(i=0; i<playersPercept.numberOfBluePlayers; i++) 00069 { 00070 stream.write(&playersPercept.bluePlayers[i], sizeof(SinglePlayerPercept)); 00071 } 00072 for(i=0; i<playersPercept.numberOfRedPlayers; i++) 00073 { 00074 stream.write(&playersPercept.redPlayers[i], sizeof(SinglePlayerPercept)); 00075 } 00076 00077 return stream; 00078 } 00079 00080 /* 00081 * Change log : 00082 * 00083 * $Log: PlayersPercept.cpp,v $ 00084 * Revision 1.1.1.1 2004/05/22 17:25:59 cvsadm 00085 * created new repository GT2004_WM 00086 * 00087 * Revision 1.3 2004/01/19 14:53:46 dueffert 00088 * all frameNumbers (and not only some of them) are unsigned long now 00089 * 00090 * Revision 1.2 2003/11/12 16:19:35 goehring 00091 * frameNumber added to percepts 00092 * 00093 * Revision 1.1 2003/10/07 10:09:36 cvsadm 00094 * Created GT2004 (M.J.) 00095 * 00096 * Revision 1.1.1.1 2003/07/02 09:40:22 cvsadm 00097 * created new repository for the competitions in Padova from the 00098 * tamara CVS (Tuesday 2:00 pm) 00099 * 00100 * removed unused solutions 00101 * 00102 * Revision 1.3 2003/03/26 09:46:06 roefer 00103 * LinesImageProcessor2 generates player percepts 00104 * 00105 * Revision 1.2 2002/09/17 23:55:20 loetzsch 00106 * - unraveled several datatypes 00107 * - changed the WATCH macro 00108 * - completed the process restructuring 00109 * 00110 * Revision 1.1 2002/09/10 15:26:40 cvsadm 00111 * Created new project GT2003 (M.L.) 00112 * - Cleaned up the /Src/DataTypes directory 00113 * - Removed Challenge Code 00114 * - Removed processing of incoming audio data 00115 * - Renamed AcousticMessage to SoundRequest 00116 * 00117 * Revision 1.1.1.1 2002/05/10 12:40:13 cvsadm 00118 * Moved GT2002 Project from ute to tamara. 00119 * 00120 * Revision 1.6 2002/04/02 13:10:18 dueffert 00121 * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete 00122 * 00123 * Revision 1.5 2001/12/17 00:16:55 tim 00124 * validity hinzugefügt 00125 * 00126 * Revision 1.4 2001/12/15 18:21:39 tim 00127 * PlayersPercept fertig (voererst ;-) 00128 * 00129 * Revision 1.3 2001/12/10 17:47:06 risler 00130 * change log added 00131 * 00132 */