COIN-OR::LEMON - Graph Library

Ticket #126: d0aae16df1bb.patch

File d0aae16df1bb.patch, 1.8 KB (added by Peter Kovacs, 12 years ago)
  • lemon/dim2.h

    # HG changeset patch
    # User Peter Kovacs <kpeter@inf.elte.hu>
    # Date 1219827004 -7200
    # Node ID d0aae16df1bb28a8cce519d53b1004399b71d9a7
    # Parent  f0b89f24274560f96db7740ebb807719f5e5e369
    Stream operators for Point and BoundingBox classes (ticket #126)
     - Add operator<< and operator>> for BoundingBox.
     - operator<< of Point gives space-less output.
    
    diff -r f0b89f242745 -r d0aae16df1bb lemon/dim2.h
    a b  
    221221  template<typename T>
    222222  inline std::ostream& operator<<(std::ostream &os, const Point<T>& z)
    223223  {
    224     os << "(" << z.x << ", " << z.y << ")";
     224    os << "(" << z.x << "," << z.y << ")";
    225225    return os;
    226226  }
    227227
     
    533533    };//class Boundingbox
    534534
    535535
     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
    536577  ///Map of x-coordinates of a \ref Point "Point"-map
    537578
    538579  ///\ingroup maps