FTXUI 6.1.9
C++ functional terminal UI.
载入中...
搜索中...
未找到
box.cpp
浏览该文件的文档.
1// 版权所有 2020 Arthur Sonzogni。保留所有权利。
2// 本源代码的使用受 MIT 许可证的约束,该许可证可在
3// LICENSE 文件中找到。
5
6#include <algorithm>
7
8namespace ftxui {
9/// @return 包含在 |a| 和 |b| 中的最大 Box。
10// static
12 return Box{
13 std::max(a.x_min, b.x_min),
14 std::min(a.x_max, b.x_max),
15 std::max(a.y_min, b.y_min),
16 std::min(a.y_max, b.y_max),
17 };
18}
19
20/// @return 包含 |a| 和 |b| 的最小 Box。
21// static
23 return Box{
24 std::min(a.x_min, b.x_min),
25 std::max(a.x_max, b.x_max),
26 std::min(a.y_min, b.y_min),
27 std::max(a.y_max, b.y_max),
28 };
29}
30
31/// 将 Box 移动 (x,y)。
32/// @param x 水平偏移。
33/// @param y 垂直偏移。
34void Box::Shift(int x, int y) {
35 x_min += x;
36 x_max += x;
37 y_min += y;
38 y_max += y;
39}
40
41/// @return (x,y) 是否包含在 Box 内。
42bool Box::Contain(int x, int y) const {
43 return x_min <= x && //
44 x_max >= x && //
45 y_min <= y && //
46 y_max >= y;
47}
48
49/// @return Box 是否为空。
50bool Box::IsEmpty() const {
51 return x_min > x_max || y_min > y_max;
52}
53
54/// @return |other| 是否与 |this| 相同
55bool Box::operator==(const Box& other) const {
56 return (x_min == other.x_min) && (x_max == other.x_max) &&
57 (y_min == other.y_min) && (y_max == other.y_max);
58}
59
60/// @return |other| 是否与 |this| 不同。
61bool Box::operator!=(const Box& other) const {
62 return !operator==(other);
63}
64
65} // namespace ftxui
bool operator!=(const Box &other) const
定义 box.cpp:61
bool Contain(int x, int y) const
定义 box.cpp:42
void Shift(int x, int y)
定义 box.cpp:34
static auto Intersection(Box a, Box b) -> Box
定义 box.cpp:11
bool IsEmpty() const
定义 box.cpp:50
bool operator==(const Box &other) const
定义 box.cpp:55
static auto Union(Box a, Box b) -> Box
定义 box.cpp:22
Box是一个表示2D空间中矩形区域的结构体。
定义 box.hpp:15
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase