PointTmplDef.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _PointTmplDef_
00024 #define _PointTmplDef_
00025
00026 #include <string>
00027 #include <iostream>
00028 #include <sstream>
00029
00030 namespace CLAM
00031 {
00032
00037 template <class TX,class TY>
00038 inline std::istream& operator >> (std::istream & is,
00039 PointTmpl<TX,TY> & a)
00040 {
00041 if (is.flags() & std::ios::skipws) {
00042 char c = '\0';
00043 do
00044 is.get(c);
00045 while (is && isspace(c));
00046 if (is) is.putback(c);
00047 }
00048 char c = '\0';
00049 is >> c;
00050 if (c!='{') {
00051 if (is) is.putback(c);
00052
00053 return is;
00054 }
00055 TX x;
00056 TY y;
00057 if (!(is >> x)) return is;
00058 if (!(is >> y)) return is;
00059 if (is.flags() & std::ios::skipws) {
00060 char c = '\0';
00061 do
00062 is.get(c);
00063 while (is && isspace(c));
00064 if (is) is.putback(c);
00065 }
00066 if (!is.get(c) || c!='}') return is;
00067
00068 a.SetX(x);
00069 a.SetY(y);
00070 return is;
00071 }
00072
00073 template <class TX,class TY>
00074 std::ostream& operator << (std::ostream& myStream, const PointTmpl<TX,TY>& a)
00075 {
00076 return myStream
00077 << "{"
00078 << a.GetX()
00079 << " "
00080 << a.GetY()
00081 << "}";
00082 }
00083
00084 }
00085
00086
00087 #endif // _PointTmplDef_
00088