CLAM-Development
1.4.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Standard
PointTmplDef.hxx
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2001-2004 MUSIC TECHNOLOGY GROUP (MTG)
3
* UNIVERSITAT POMPEU FABRA
4
*
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*
20
*/
21
22
23
#ifndef _PointTmplDef_
24
#define _PointTmplDef_
25
26
#include <string>
27
#include <iostream>
28
#include <sstream>
29
30
namespace
CLAM
31
{
32
37
template
<
class
TX,
class
TY>
38
inline
std::istream&
operator >>
(std::istream & is,
39
PointTmpl<TX,TY>
& a)
40
{
41
if
(is.flags() & std::ios::skipws) {
42
char
c =
'\0'
;
43
do
44
is.get(c);
45
while
(is && isspace(c));
46
if
(is) is.putback(c);
47
}
48
char
c =
'\0'
;
49
is >> c;
50
if
(c!=
'{'
) {
51
if
(is) is.putback(c);
52
// std::cerr << "A point starting with '" << c << "'" << std::endl;
53
return
is;
54
}
55
TX x;
56
TY y;
57
if
(!(is >> x))
return
is;
58
if
(!(is >> y))
return
is;
59
if
(is.flags() & std::ios::skipws) {
60
char
c =
'\0'
;
61
do
62
is.get(c);
63
while
(is && isspace(c));
64
if
(is) is.putback(c);
65
}
66
if
(!is.get(c) || c!=
'}'
)
return
is;
67
68
a.
SetX
(x);
69
a.
SetY
(y);
70
return
is;
71
}
72
73
template
<
class
TX,
class
TY>
74
std::ostream& operator << (std::ostream& myStream, const PointTmpl<TX,TY>& a)
75
{
76
return
myStream
77
<<
"{"
78
<< a.GetX()
79
<<
" "
80
<< a.GetY()
81
<<
"}"
;
82
}
83
84
}
// namespace CLAM
85
86
87
#endif // _PointTmplDef_
88
Generated by
1.8.1