Merge branch 'master' into jgrpp
# Conflicts: # src/company_cmd.cpp # src/core/geometry_func.cpp # src/date.cpp # src/genworld_gui.cpp # src/gfx.cpp # src/object_gui.cpp # src/openttd.cpp # src/settings_type.h # src/video/allegro_v.cpp # src/video/dedicated_v.cpp # src/video/null_v.cpp # src/video/sdl2_v.cpp # src/video/sdl_v.cpp # src/video/win32_v.cpp
This commit is contained in:
@@ -40,3 +40,25 @@ Dimension adddim(const Dimension &d1, const Dimension &d2)
|
||||
d.height = d1.height + d2.height;
|
||||
return d;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the bounding rectangle around two rectangles.
|
||||
* @param r1 First rectangle.
|
||||
* @param r2 Second rectangle.
|
||||
* @return The bounding rectangle, the smallest rectangle that contains both arguments.
|
||||
*/
|
||||
Rect BoundingRect(const Rect &r1, const Rect &r2)
|
||||
{
|
||||
/* If either the first or the second is empty, return the other. */
|
||||
if (IsEmptyRect(r1)) return r2;
|
||||
if (IsEmptyRect(r2)) return r1;
|
||||
|
||||
Rect r;
|
||||
|
||||
r.top = std::min(r1.top, r2.top);
|
||||
r.bottom = std::max(r1.bottom, r2.bottom);
|
||||
r.left = std::min(r1.left, r2.left);
|
||||
r.right = std::max(r1.right, r2.right);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
@@ -15,4 +15,16 @@
|
||||
Dimension maxdim(const Dimension &d1, const Dimension &d2);
|
||||
Dimension adddim(const Dimension &d1, const Dimension &d2);
|
||||
|
||||
/**
|
||||
* Check if a rectangle is empty.
|
||||
* @param r Rectangle to check.
|
||||
* @return True if and only if the rectangle doesn't define space.
|
||||
*/
|
||||
static inline bool IsEmptyRect(const Rect &r)
|
||||
{
|
||||
return (r.left | r.top | r.right | r.bottom) == 0;
|
||||
}
|
||||
|
||||
Rect BoundingRect(const Rect &r1, const Rect &r2);
|
||||
|
||||
#endif /* GEOMETRY_FUNC_HPP */
|
||||
|
Reference in New Issue
Block a user