xtd 0.2.0
rectangle_f.hpp
Go to the documentation of this file.
1
4#pragma once
5#include "../drawing_export.hpp"
6#include "point_f.hpp"
7#include "size_f.hpp"
8#include <xtd/iequatable>
9#include <xtd/object>
10#include <xtd/string>
11#include <cstdint>
12#include <ostream>
13
15namespace xtd {
17 namespace drawing {
19 struct rectangle;
21
36
39 static const rectangle_f empty;
41
43
47 rectangle_f() noexcept = default;
53 rectangle_f(float x, float y, float width, float height) noexcept;
57 rectangle_f(const point_f& location, const size_f& size) noexcept;
59
61 rectangle_f(const rectangle_f&) noexcept = default;
62 rectangle_f& operator =(const rectangle_f&) noexcept = default;
64
66
71 float x = .0f;
72
76 float y = .0f;
77
81 float width = .0f;
82
86 float height = .0f;
87
91 float bottom() const noexcept;
92
95 point_f center() const noexcept;
96
99 bool is_empty() const noexcept;
100
103 float left() const noexcept;
104
107 point_f location() const noexcept;
110 void location(const point_f& location);
111
114 float right() const noexcept;
115
118 size_f size() const noexcept;
121 void size(const size_f& size) noexcept;
122
125 float top() const noexcept;
127
129
134 void add(const drawing::size_f& sz) noexcept;
139 void add(float width, float height) noexcept;
140
145 bool contains(const point_f& pt) const noexcept;
150 bool contains(const rectangle_f& rect) const noexcept;
156 bool contains(float x, float y) const noexcept;
157
161 bool equals(const xtd::object& obj) const noexcept override;
165 bool equals(const rectangle_f& other) const noexcept override;
166
169 xtd::size get_hash_code() const noexcept override;
170
174 void inflate(const drawing::size_f& sz) noexcept;
180 void inflate(float width, float height) noexcept;
181
185 bool intersects_with(const rectangle_f& rect) const noexcept;
186
189 void make_intersect(const rectangle_f& rect) noexcept;
190
193 void make_union(const rectangle_f& rect) noexcept;
194
198 void offset(const point_f& pos) noexcept;
202 void offset(float dx, float dy) noexcept;
203
206 xtd::string to_string() const noexcept override;
208
210
218 static rectangle_f add(const rectangle_f& rect, float x, float y) noexcept;
224 static rectangle_f add(const rectangle_f& rect, const drawing::size_f& sz) noexcept;
225
233 static rectangle_f from_ltrb(float left, float top, float right, float bottom) noexcept;
234
241 static rectangle_f inflate(const rectangle_f& rect, const drawing::size_f& sz) noexcept;
247 static rectangle_f inflate(const rectangle_f& rect, float width, float height) noexcept;
248
253 static rectangle_f make_intersect(const rectangle_f& a, const rectangle_f& b) noexcept;
254
259 static rectangle_f make_union(const rectangle_f& a, const rectangle_f& b) noexcept;
265 static rectangle_f offset(const rectangle_f& rect, const point_f& pos) noexcept;
272 static rectangle_f offset(const rectangle_f& rect, float x, float y) noexcept;
274 };
275 }
276}
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:44
#define drawing_export_
Define shared library export.
Definition drawing_export.hpp:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10
Contains xtd::drawing::point_f class.
Contains xtd::drawing::size_f class.
Represents an ordered pair of floating-point x- and y-coordinates that defines a point in a two-dimen...
Definition point_f.hpp:35
Stores a set of four floating-point numbers that represent the location and size of a rectangle....
Definition rectangle_f.hpp:34
rectangle_f() noexcept=default
Initializes a new instance of the xtd::drawing::rectagle_f class.
static const rectangle_f empty
Represents a xtd::drawing::rectangle_F that has xtd::drawing::rectagle_f::x, xtd::drawing::rectangle_...
Definition rectangle_f.hpp:39
Stores an ordered pair of floating-point, which specify a height and width.
Definition size_f.hpp:31
Stores an ordered pair of integers, which specify a height and width.
Definition size.hpp:31