50 : first_point(that.first_point), second_point(that.second_point)
62 : first_point(that.position),
63 second_point(that.right(), that.bottom())
76 : first_point(p1), second_point(p2)
92 : first_point(x1, y1), second_point(x2, y2)
110 first_point.
set(x1, y1);
111 second_point.set(x2, y2);
139 ( first_point.cast_value_type_to<U>(),
140 second_point.cast_value_type_to<U>() );
150 return width() * height();
162 return (left() <= p.
x) && (right() >= p.
x)
163 && (bottom() <= p.
y) && (top() >= p.
y);
185 return (right() >= r.
left()) && (r.
right() >= left())
186 && (top() >= r.
bottom()) && (r.
top() >= bottom());
204 x_intersection(r, result);
205 y_intersection(r, result);
221 ( std::min(r.
left(), left()), std::min(r.
bottom(), bottom()),
222 std::max(r.
right(), right()), std::max(r.
top(), top()) );
232 return (width() == 0) || (height() == 0);
242 return (first_point.y > second_point.y) ? first_point.y : second_point.y;
252 return (first_point.y < second_point.y) ? first_point.y : second_point.y;
262 return (first_point.x < second_point.x) ? first_point.x : second_point.x;
272 return (first_point.x > second_point.x) ? first_point.x : second_point.x;
338 shift_y(p - bottom());
360 shift_x(p - right());
458 return (left() == that.
left()) && (right() == that.
right())
459 && (top() == that.
top()) && (bottom() == that.
bottom());
470 return !( *
this == that );
482 return self_type( first_point + vect, second_point + vect );
494 return self_type( first_point - vect, second_point - vect );
507 second_point += vect;
520 second_point -= vect;
531 if (first_point.x > second_point.x)
532 return first_point.x - second_point.x;
534 return second_point.x - first_point.x;
545 if (first_point.y > second_point.y)
546 return first_point.y - second_point.y;
548 return second_point.y - first_point.y;
559 (
const self_type& r, self_type& result )
const
562 result.second_point.x = std::min(right(), r.right());
573 (
const self_type& r, self_type& result )
const
576 result.second_point.y = std::min(top(), r.top());