00001 /** 00002 * @file LandmarkState.h 00003 * 00004 * Declaration of class LandmarkState 00005 */ 00006 00007 #ifndef __LandmarkState_h_ 00008 #define __LandmarkState_h_ 00009 00010 00011 #include "Tools/Streams/InOut.h" 00012 #include "Tools/FieldDimensions.h" 00013 #include "Representations/Perception/LandmarksPercept.h" 00014 00015 /** 00016 * A class describing a landmark 00017 */ 00018 class LandmarkState 00019 { 00020 00021 public: 00022 00023 // exact 3d position of the landmark 00024 Vector3<double> position; 00025 // the weight of a landmark. this is used to decide which landmark is used for the gaze 00026 // of the HeadControl 00027 00028 enum type 00029 {Beacon, 00030 Goal, 00031 Line, 00032 Edge}; 00033 00034 int beaconColor; 00035 00036 00037 bool visible; 00038 long timeWhenLastSeen; 00039 double typeWeight; 00040 00041 00042 LandmarkState() { } 00043 00044 LandmarkState(Vector3<double> pposition,int bbeaconColor,double wweight); 00045 00046 }; 00047 00048 /** 00049 * Streaming operator that reads a LandmarkState from a stream. 00050 * @param stream The stream from which is read. 00051 * @param landmarkState The LandmarkState object. 00052 * @return The stream. 00053 */ 00054 00055 In& operator>>(In& stream,LandmarkState& landmarkState); 00056 00057 /** 00058 * Streaming operator that writes a LandmarkState to a stream. 00059 * @param stream The stream to write on. 00060 * @param landmarkState The LandmarkState object. 00061 * @return The stream. 00062 */ 00063 Out& operator<<(Out& stream, const LandmarkState& landmarkState); 00064 00065 00066 #endif //__LandmarkState_h_ 00067 00068 /* 00069 * Change log : 00070 * $Log: LandmarkState.h,v $ 00071 * Revision 1.3 2004/09/09 10:15:58 spranger 00072 * fixed doxygen-errors 00073 * 00074 * Revision 1.2 2004/06/28 09:46:57 dassler 00075 * introduced some more headcontrol symbols 00076 * time-since-last-seen-beacon 00077 * time-between-last-beacons 00078 * 00079 * Revision 1.1 2004/06/17 15:45:28 dassler 00080 * Added LandmarkState 00081 * 00082 */