50 : position(that.position), width(that.width), height(that.height)
63 : position(that.left(), that.top()), width(that.width()),
81 : position(_x, _y), width(_width), height(_height)
98 : position(pos), width(_width), height(_height)
113 : position(pos), width(size.
x), height(size.
y)
143 ( position.cast_value_type_to<U>(), (U)width, (U)height );
155 && (height == that.
height);
166 return !(*
this == that);
177 return width * height;
189 return (position.x <= p.
x) && (right() >= p.
x)
190 && (position.y <= p.
y) && (bottom() >= p.
y);
215 && (r.
right() >= position.x)
217 && (r.
bottom() >= position.y);
233 x_intersection(r, result);
234 y_intersection(r, result);
250 const T result_left = std::min( left(), r.
left() );
251 const T result_top = std::min( top(), r.
top() );
252 const T result_bottom = std::max( bottom(), r.
bottom() );
253 const T result_right = std::max( right(), r.
right() );
256 ( result_left, result_top, result_right - result_left,
257 result_bottom - result_top );
298 return position.x + width;
309 return position.y + height;
342 (
const self_type& r, self_type& result )
const
344 if (position.x <= r.position.x)
348 if (right() >= r.right())
349 result.width = r.width;
351 result.width = right() - r.position.x;
354 r.x_intersection(*
this, result);
366 (
const self_type& r, self_type& result )
const
368 if (position.y <= r.position.y)
372 if (bottom() >= r.bottom())
373 result.height = r.height;
375 result.height = bottom() - r.position.y;
378 r.y_intersection(*
this, result);