xtd 0.2.0
Loading...
Searching...
No Matches
point.h
Go to the documentation of this file.
1
4#pragma once
5#include "../drawing_export.h"
6#include "point_f.h"
7#include <xtd/iequatable>
8#include <xtd/object>
9#include <xtd/ustring>
10#include <cstdint>
11#include <ostream>
12
14namespace xtd {
16 namespace drawing {
18 class size;
20
54 class drawing_export_ point : public xtd::object, public xtd::iequatable<point> {
55 public:
57
60 static const point empty;
62
64
68 point() noexcept = default;
69
92 explicit point(int32 dw) noexcept;
93
116 point(int32 x, int32 y) noexcept;
117
139 explicit point(const size& sz) noexcept;
141
143 point(const point&) noexcept = default;
144 point& operator =(const point&) noexcept = default;
145 operator point_f() const noexcept;
147
149
153 bool is_empty() const noexcept;
154
176 int32 x() const noexcept;
177
199 void x(int32 x) noexcept;
200
222 int32 y() const noexcept;
223
245 void y(int32 y) noexcept;
247
249
251 bool equals(const point& value) const noexcept override;
252
256 void offset(int32 dx, int32 dy) noexcept;
257
271 void offset(const point& p) noexcept;
272
275 xtd::ustring to_string() const noexcept override;
276
280 static point truncate(const point_f& value) noexcept;
282
284
300 static point add(const point& pt, const size& sz) noexcept;
305 static point add(const point& pt1, const point& pt2) noexcept;
306
310 static point ceiling(const point_f& value) noexcept;
311
315 static point round(const point_f& value) noexcept;
316
322 static point subtract(const point& pt, const size& sz) noexcept;
327 static point subtract(const point& pt1, const point& pt2) noexcept;
329
331
336 point operator +(const size& sz) const noexcept;
340 point operator +(const point& pt) const noexcept;
341
345 point& operator +=(const size& sz) noexcept;
349 point& operator +=(const point& pt) noexcept;
350
354 point operator -(const size& sz) const noexcept;
358 point operator -(const point& pt) const noexcept;
359
363 point& operator -=(const size& sz) noexcept;
367 point& operator -=(const point& pt) noexcept;
369
370 private:
371 int32 x_ = 0;
372 int32 y_ = 0;
373 };
374 }
375
376 template<>
377 inline drawing::point parse<drawing::point>(const std::string& str) {
378 auto values = xtd::ustring(str).replace("}", "").replace(" y=", "").replace("{x=", "").split({','});
379 return {xtd::parse<int32>(values[0]), xtd::parse<int32>(values[1])};
380 }
381}
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
static const point empty
Represents a xtd::drawing::point that has xtd::drawing::point::x and xtd::drawing::point::y values se...
Definition point.h:60
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.h:31
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
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
std::vector< ustring > split(const std::vector< value_type > &separators, size_t count, string_split_options options) const noexcept
Splits this string into a maximum number of substrings based on the characters in an array.
ustring replace(value_type old_char, value_type new_char) const noexcept
Replaces all occurrences of a specified char_t in this string with another specified char_t.
#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
size_t size
Represents a size of any object in bytes.
Definition types.h:197
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::drawing::point_f class.