gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Stream operators for Point and BoundingBox classes (ticket #126) - Add operator<< and operator>> for BoundingBox. - operator<< of Point gives space-less output.
0 1 0
default
1 file changed with 42 insertions and 1 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -221,7 +221,7 @@
221 221
  template<typename T>
222 222
  inline std::ostream& operator<<(std::ostream &os, const Point<T>& z)
223 223
  {
224
    os << "(" << z.x << ", " << z.y << ")";
224
    os << "(" << z.x << "," << z.y << ")";
225 225
    return os;
226 226
  }
227 227

	
... ...
@@ -533,6 +533,47 @@
533 533
    };//class Boundingbox
534 534

	
535 535

	
536
  ///Read a bounding box from a stream
537

	
538
  ///Read a bounding box from a stream.
539
  ///\relates BoundingBox
540
  template<typename T>
541
  inline std::istream& operator>>(std::istream &is, BoundingBox<T>& b) {
542
    char c;
543
    Point<T> p;
544
    if (is >> c) {
545
      if (c != '(') is.putback(c);
546
    } else {
547
      is.clear();
548
    }
549
    if (!(is >> p)) return is;
550
    b.bottomLeft(p);
551
    if (is >> c) {
552
      if (c != ',') is.putback(c);
553
    } else {
554
      is.clear();
555
    }
556
    if (!(is >> p)) return is;
557
    b.topRight(p);
558
    if (is >> c) {
559
      if (c != ')') is.putback(c);
560
    } else {
561
      is.clear();
562
    }
563
    return is;
564
  }
565

	
566
  ///Write a bounding box to a stream
567

	
568
  ///Write a bounding box to a stream.
569
  ///\relates BoundingBox
570
  template<typename T>
571
  inline std::ostream& operator<<(std::ostream &os, const BoundingBox<T>& b)
572
  {
573
    os << "(" << b.bottomLeft() << "," << b.topRight() << ")";
574
    return os;
575
  }
576

	
536 577
  ///Map of x-coordinates of a \ref Point "Point"-map
537 578

	
538 579
  ///\ingroup maps
0 comments (0 inline)