xtd 0.2.0
point.hpp
Go to the documentation of this file.
1
4#pragma once
5#include "../drawing_export.hpp"
6#include "point_f.hpp"
7#include <xtd/iequatable>
8#include <xtd/object>
9#include <xtd/string>
10#include <cstdint>
11#include <ostream>
12
14namespace xtd {
16 namespace drawing {
18 struct size;
20
56
59 static const point empty;
61
63
67 point() noexcept = default;
68
91 explicit point(int32 dw) noexcept;
92
115 point(int32 x, int32 y) noexcept;
116
138 explicit point(const size& sz) noexcept;
140
142 point(const point&) noexcept = default;
143 point& operator =(const point&) noexcept = default;
144 operator point_f() const noexcept;
146
148
152 bool is_empty() const noexcept;
153
175 int32 x = 0;
176
198 int32 y = 0;
200
202
207 bool equals(const xtd::object& obj) const noexcept override;
211 bool equals(const point& other) const noexcept override;
212
215 xtd::size get_hash_code() const noexcept override;
216
220 void offset(int32 dx, int32 dy) noexcept;
221
235 void offset(const point& p) noexcept;
236
239 xtd::string to_string() const noexcept override;
240
244 static point truncate(const point_f& value) noexcept;
246
248
264 static point add(const point& pt, const size& sz) noexcept;
269 static point add(const point& pt1, const point& pt2) noexcept;
270
274 static point ceiling(const point_f& value) noexcept;
275
279 static point round(const point_f& value) noexcept;
280
286 static point subtract(const point& pt, const size& sz) noexcept;
291 static point subtract(const point& pt1, const point& pt2) noexcept;
293
295
300 point operator +(const size& sz) const noexcept;
304 point operator +(const point& pt) const noexcept;
305
309 point& operator +=(const size& sz) noexcept;
313 point& operator +=(const point& pt) noexcept;
314
318 point operator -(const size& sz) const noexcept;
322 point operator -(const point& pt) const noexcept;
323
327 point& operator -=(const size& sz) noexcept;
331 point& operator -=(const point& pt) noexcept;
333 };
334 }
335
336 template<>
337 inline drawing::point parse<drawing::point>(const std::string& str) {
338 auto values = xtd::string(str).replace("}", xtd::string::empty_string).replace(" y=", xtd::string::empty_string).replace("{x=", xtd::string::empty_string).split(',');
339 return {xtd::parse<int32>(values[0]), xtd::parse<int32>(values[1])};
340 }
341}
static const basic_string empty_string
Represents the empty basic_string.
Definition basic_string.hpp:116
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
xtd::basic_string< char > string
Represents text as a sequence of UTF-8 code units.
Definition __string_definitions.hpp:43
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
size_t size
Represents a size of any object in bytes.
Definition size.hpp:23
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10
Contains xtd::drawing::point_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
Represents an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional ...
Definition point.hpp:54
static const point empty
Represents a xtd::drawing::point that has xtd::drawing::point::x and xtd::drawing::point::y values se...
Definition point.hpp:59
point() noexcept=default
Initializes a new instance of the xtd::drawing::point class.
Stores an ordered pair of integers, which specify a height and width.
Definition size.hpp:31