#ifndef UI_GFX_GEOMETRY_RECT_F_H_
#define UI_GFX_GEOMETRY_RECT_F_H_
#include <iosfwd>
#include <string>
#include "build/build_config.h"
#include "ui/gfx/geometry/insets_f.h"
#include "ui/gfx/geometry/outsets_f.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/geometry/size_f.h"
#include "ui/gfx/geometry/vector2d_f.h"
#if BUILDFLAG(IS_APPLE)
typedef struct CGRect CGRect;
#endif
namespace gfx {
class GEOMETRY_EXPORT RectF { … };
constexpr bool operator==(const RectF& lhs, const RectF& rhs) { … }
constexpr bool operator!=(const RectF& lhs, const RectF& rhs) { … }
inline RectF operator+(const RectF& lhs, const Vector2dF& rhs) { … }
inline RectF operator-(const RectF& lhs, const Vector2dF& rhs) { … }
inline RectF operator+(const Vector2dF& lhs, const RectF& rhs) { … }
GEOMETRY_EXPORT RectF IntersectRects(const RectF& a, const RectF& b);
GEOMETRY_EXPORT RectF UnionRects(const RectF& a, const RectF& b);
GEOMETRY_EXPORT RectF UnionRectsEvenIfEmpty(const RectF& a, const RectF& b);
GEOMETRY_EXPORT RectF SubtractRects(const RectF& a, const RectF& b);
inline RectF ScaleRect(const RectF& r, float x_scale, float y_scale) { … }
inline RectF ScaleRect(const RectF& r, const SizeF& size) { … }
inline RectF ScaleRect(const RectF& r, const Size& size) { … }
inline RectF ScaleRect(const RectF& r, float scale) { … }
inline RectF TransposeRect(const RectF& r) { … }
GEOMETRY_EXPORT RectF BoundingRect(const PointF& p1, const PointF& p2);
GEOMETRY_EXPORT RectF MaximumCoveredRect(const RectF& a, const RectF& b);
GEOMETRY_EXPORT RectF MapRect(const RectF& r,
const RectF& src_rect,
const RectF& dest_rect);
void PrintTo(const RectF& rect, ::std::ostream* os);
}
#endif