| Flutter iOS Embedder |

geometry.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef FLUTTER_SHELL_PLATFORM_COMMON_GEOMETRY_H_
6 #define FLUTTER_SHELL_PLATFORM_COMMON_GEOMETRY_H_
7
8 #include <cmath>
9
10 namespace flutter {
11
12 // A point in Cartesian space relative to a separately-maintained origin.
13 class Point {
14 public:
15 Point() = default;
16 Point(double x, double y) : x_(x), y_(y) {}
17 Point(const Point& point) = default;
18 Point& operator=(const Point& other) = default;
19
20 double x() const { return x_; }
21 double y() const { return y_; }
22
23 bool operator==(const Point& other) const {
24 return x_ == other.x_ && y_ == other.y_;
25 }
26
27 private:
28 double x_ = 0.0;
29 double y_ = 0.0;
30 };
31
32 // A 2D floating-point size with non-negative dimensions.
33 class Size {
34 public:
35 Size() = default;
36 Size(double width, double height)
37 : width_(std::fmax(0.0, width)), height_(std::fmax(0.0, height)) {}
38
39 Size(const Size& size) = default;
40 Size& operator=(const Size& other) = default;
41
42 double width() const { return width_; }
43 double height() const { return height_; }
44
45 bool operator==(const Size& other) const {
46 return width_ == other.width_ && height_ == other.height_;
47 }
48
49 private:
50 double width_ = 0.0;
51 double height_ = 0.0;
52 };
53
54 // A rectangle with position in Cartesian space specified relative to a
55 // separately-maintained origin.
56 class Rect {
57 public:
58 Rect() = default;
59 Rect(const Point& origin, const Size& size) : origin_(origin), size_(size) {}
60 Rect(const Rect& rect) = default;
61 Rect& operator=(const Rect& other) = default;
62
63 double left() const { return origin_.x(); }
64 double top() const { return origin_.y(); }
65 double right() const { return origin_.x() + size_.width(); }
66 double bottom() const { return origin_.y() + size_.height(); }
67 double width() const { return size_.width(); }
68 double height() const { return size_.height(); }
69 Point origin() const { return origin_; }
70 Size size() const { return size_; }
71
72 bool operator==(const Rect& other) const {
73 return origin_ == other.origin_ && size_ == other.size_;
74 }
75
76 private:
77 Point origin_;
78 Size size_;
79 };
80
81 } // namespace flutter
82
83 #endif // FLUTTER_SHELL_PLATFORM_COMMON_GEOMETRY_H_
flutter::Rect::width
double width() const
Definition: geometry.h:67
flutter::Size::Size
Size(double width, double height)
Definition: geometry.h:36
flutter::Size::operator==
bool operator==(const Size &other) const
Definition: geometry.h:45
flutter::Rect::Rect
Rect(const Point &origin, const Size &size)
Definition: geometry.h:59
flutter::Rect::origin
Point origin() const
Definition: geometry.h:69
flutter::Point::x
double x() const
Definition: geometry.h:20
flutter::Rect::Rect
Rect()=default
flutter::Size::width
double width() const
Definition: geometry.h:42
flutter::Rect
Definition: geometry.h:56
flutter::Size::operator=
Size & operator=(const Size &other)=default
flutter::Rect::left
double left() const
Definition: geometry.h:63
flutter::Rect::operator=
Rect & operator=(const Rect &other)=default
flutter::Size::height
double height() const
Definition: geometry.h:43
flutter::Rect::height
double height() const
Definition: geometry.h:68
flutter::Rect::operator==
bool operator==(const Rect &other) const
Definition: geometry.h:72
flutter
Definition: accessibility_bridge.h:28
flutter::Rect::top
double top() const
Definition: geometry.h:64
flutter::Point::Point
Point(double x, double y)
Definition: geometry.h:16
flutter::Rect::bottom
double bottom() const
Definition: geometry.h:66
flutter::Rect::size
Size size() const
Definition: geometry.h:70
flutter::Point
Definition: geometry.h:13
flutter::Point::y
double y() const
Definition: geometry.h:21
flutter::Point::Point
Point()=default
flutter::Point::operator=
Point & operator=(const Point &other)=default
flutter::Size
Definition: geometry.h:33
flutter::Rect::right
double right() const
Definition: geometry.h:65
flutter::Size::Size
Size()=default
flutter::Point::operator==
bool operator==(const Point &other) const
Definition: geometry.h:23