| ... | ... |
@@ -524,24 +524,65 @@ |
| 524 | 524 |
b._bottom_left.y = std::max(_bottom_left.y, u._bottom_left.y); |
| 525 | 525 |
b._top_right.x = std::min(_top_right.x, u._top_right.x); |
| 526 | 526 |
b._top_right.y = std::min(_top_right.y, u._top_right.y); |
| 527 | 527 |
b._empty = b._bottom_left.x > b._top_right.x || |
| 528 | 528 |
b._bottom_left.y > b._top_right.y; |
| 529 | 529 |
} |
| 530 | 530 |
return b; |
| 531 | 531 |
} |
| 532 | 532 |
|
| 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 |
| 539 | 580 |
///Map of x-coordinates of a \ref Point "Point"-map. |
| 540 | 581 |
/// |
| 541 | 582 |
template<class M> |
| 542 | 583 |
class XMap |
| 543 | 584 |
{
|
| 544 | 585 |
M& _map; |
| 545 | 586 |
public: |
| 546 | 587 |
|
| 547 | 588 |
typedef typename M::Value::Value Value; |
0 comments (0 inline)