xtd 0.2.0
Loading...
Searching...
No Matches
region.h
Go to the documentation of this file.
1
4#pragma once
5#include "../drawing_export.h"
7#include <xtd/iequatable>
8#include <xtd/object>
9
11namespace xtd {
13 namespace drawing {
15 class graphics;
17
32 class drawing_export_ region final : public xtd::object, public xtd::iequatable<region> {
33 struct data;
34
35 public:
37
49 explicit region(const xtd::drawing::rectangle& rect);
53 explicit region(const xtd::drawing::rectangle_f& rect);
55
57 region(const region& value) = default;
58 region& operator =(const region& value) = default;
59 ~region();
61
63
67 intptr handle() const noexcept;
69
71
75 void complement(const xtd::drawing::drawing_2d::graphics_path& path) noexcept;
78 void complement(const xtd::drawing::rectangle& rect) noexcept;
81 void complement(const xtd::drawing::rectangle_f& rect) noexcept;
84 void complement(const xtd::drawing::region& region) noexcept;
85
86 bool equals(const region& value) const noexcept override;
87
90 void exclude(const xtd::drawing::drawing_2d::graphics_path& path) noexcept;
93 void exclude(const xtd::drawing::rectangle& rect) noexcept;
95 void exclude(const xtd::drawing::rectangle_f& rect) noexcept;
98 void exclude(const xtd::drawing::region& region) noexcept;
99
104 xtd::drawing::rectangle_f get_bounds() const noexcept;
109 xtd::drawing::rectangle_f get_bounds(const xtd::drawing::graphics& g) const noexcept;
110
115 intptr get_hrgn(const xtd::drawing::graphics& g) const noexcept;
116
119 void intersect(const xtd::drawing::drawing_2d::graphics_path& path) noexcept;
122 void intersect(const xtd::drawing::rectangle& rect) noexcept;
125 void intersect(const xtd::drawing::rectangle_f& rect) noexcept;
128 void intersect(const xtd::drawing::region& region) noexcept;
129
133 bool is_empty() const noexcept;
138 bool is_empty(const xtd::drawing::graphics& g) const noexcept;
139
143 bool is_infinite() const noexcept;
148 bool is_infinite(const xtd::drawing::graphics& g) const noexcept;
149
155 bool is_visible(const xtd::drawing::rectangle_f& rect, const xtd::drawing::graphics& g) const noexcept;
164 bool is_visible(float x, float y, float width, float height, const xtd::drawing::graphics& g) const noexcept;
170 bool is_visible(const xtd::drawing::rectangle& rect, const xtd::drawing::graphics& g) const noexcept;
179 bool is_visible(int32 x, int32 y, int32 width, int32 height, const xtd::drawing::graphics& g) const noexcept;
183 bool is_visible(const xtd::drawing::rectangle_f& rect) const noexcept;
190 bool is_visible(float x, float y, float width, float height) const noexcept;
194 bool is_visible(const xtd::drawing::rectangle& rect) const noexcept;
201 bool is_visible(int32 x, int32 y, int32 width, int32 height) const noexcept;
207 bool is_visible(xtd::drawing::point_f pt, const xtd::drawing::graphics& g) const noexcept;
214 bool is_visible(float x, float y, const xtd::drawing::graphics& g) const noexcept;
220 bool is_visible(xtd::drawing::point pt, const xtd::drawing::graphics& g) const noexcept;
227 bool is_visible(int32 x, int32 y, const xtd::drawing::graphics& g) const noexcept;
231 bool is_visible(xtd::drawing::point_f pt) const noexcept;
236 bool is_visible(float x, float y) const noexcept;
240 bool is_visible(xtd::drawing::point pt) const noexcept;
245 bool is_visible(int32 x, int32 y) const noexcept;
246
248 void make_empty();
249
251 void make_infinite() noexcept;
252
255 void make_union(const xtd::drawing::drawing_2d::graphics_path& path) noexcept;
258 void make_union(const xtd::drawing::rectangle& rect) noexcept;
261 void make_union(const xtd::drawing::rectangle_f& rect) noexcept;
264 void make_union(const xtd::drawing::region& region) noexcept;
265
268 void make_xor(const xtd::drawing::drawing_2d::graphics_path& path) noexcept;
271 void make_xor(const xtd::drawing::rectangle& rect) noexcept;
274 void make_xor(const xtd::drawing::rectangle_f& rect) noexcept;
277 void make_xor(const xtd::drawing::region& region) noexcept;
278
281 void release_hrgn(intptr region_handle);
282
286 void translate(int32 dx, int32 dy) noexcept;
290 void translate(float dx, float dy) noexcept;
292
294
300 static xtd::drawing::region from_hrgn(intptr hrgn);
302
303 private:
304 std::shared_ptr<data> data_;
305 };
306 }
307}
Defines an object used to draw lines and curves. This class cannot be inherited.
Definition graphics_path.h:35
Defines an object used to draw lines and curves. This class cannot be inherited.
Definition graphics.h:70
Represents an ordered pair of floating-point x- and y-coordinates that defines a point in a two-dimen...
Definition point_f.h:35
Represents an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional ...
Definition point.h:54
Stores a set of four floating-point numbers that represent the location and size of a rectangle....
Definition rectangle_f.h:34
Stores a set of four integers that represent the location and size of a rectangle.
Definition rectangle.h:44
Describes the interior of a graphics shape composed of rectangles and paths. This class cannot be inh...
Definition region.h:32
region()
Initializes a new xtd::drawing::region.
region(const xtd::drawing::rectangle_f &rect)
Initializes a new xtd::drawing::region from the specified xtd::drawing::rectangle_f structure.
region(const xtd::drawing::drawing_2d::graphics_path &path)
Initializes a new xtd::drawing::region with the specified xtd::drawing::graphics_path.
intptr handle() const noexcept
Gets the handle of the region.
region(const xtd::drawing::rectangle &rect)
Initializes a new xtd::drawing::region from the specified xtd::drawing::rectangle structure.
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:18
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:32
Contains xtd::drawing::drawing_2d::graphics_path class.
#define drawing_export_
Define shared library export.
Definition drawing_export.h:13
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
intmax_t intptr
Represent a pointer or a handle.
Definition types.h:153
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10