FTXUI/include/ftxui/screen/box.hpp

34 lines
946 B
C++
Raw Normal View History

2023-08-19 19:56:36 +08:00
// Copyright 2020 Arthur Sonzogni. All rights reserved.
// Use of this source code is governed by the MIT license that can be found in
// the LICENSE file.
2019-01-20 05:06:05 +08:00
#ifndef FTXUI_SCREEN_BOX_HPP
#define FTXUI_SCREEN_BOX_HPP
namespace ftxui {
2025-06-05 17:34:25 +08:00
/// @brief Box is a structure that represents a rectangular area in a 2D space.
///
/// It is defined by its minimum and maximum coordinates along the x and y axes.
/// Note that the coordinates are inclusive, meaning that the box includes both
/// the minimum and maximum values.
///
/// @ingroup screen
2019-01-20 05:06:05 +08:00
struct Box {
int x_min = 0;
int x_max = 0;
int y_min = 0;
int y_max = 0;
2019-01-20 05:06:05 +08:00
2022-03-31 08:17:43 +08:00
static auto Intersection(Box a, Box b) -> Box;
static auto Union(Box a, Box b) -> Box;
void Shift(int x, int y);
2022-03-31 08:17:43 +08:00
bool Contain(int x, int y) const;
2024-04-28 16:39:30 +08:00
bool IsEmpty() const;
bool operator==(const Box& other) const;
bool operator!=(const Box& other) const;
2019-01-20 05:06:05 +08:00
};
2020-02-12 04:44:55 +08:00
} // namespace ftxui
2019-01-20 05:06:05 +08:00
2022-03-31 08:17:43 +08:00
#endif // FTXUI_SCREEN_BOX_HPP