40template <
typename Po
intType,
typename SizeType>
45 static_assert(std::is_arithmetic<PointType>::value,
"Template argument of Rect must be arithmetic.");
79 constexpr RectangleT(PointType x, PointType y, SizeType width, SizeType height)
91 return m_point.GetX();
101 return m_point.GetY();
111 return m_size.GetWidth();
122 return m_size.GetHeight();
151 template <
typename RhsPo
intType,
typename RhsSizeType>
167 template <
typename RhsPo
intType,
typename RhsSizeType>
170 return !(*
this == rhs);
186 return os <<
"{ point: " << rectangle.m_point <<
", size: " << rectangle.m_size <<
" }";
200 std::ostringstream ss;
209 friend detail::BackendAccessor<RectangleT<PointType, SizeType>>;
212 template <
typename T = PointType,
typename U = SizeType,
213 typename std::enable_if<has_c_type_of<RectangleT<T, U>>::value,
bool>::type =
false>
214 constexpr explicit operator peak::common::detail::c_type_of_t<RectangleT<T, U>>()
const
2D point template type.
Definition peak_common_point.hpp:192
A generic rectangle defined by a point and a size.
Definition peak_common_rectangle.hpp:42
PEAK_COMMON_NO_DISCARD constexpr SizeType GetWidth() const
Returns the width of the rectangle.
Definition peak_common_rectangle.hpp:109
constexpr bool operator==(const RectangleT< RhsPointType, RhsSizeType > &rhs) const
Equality operator.
Definition peak_common_rectangle.hpp:152
PEAK_COMMON_NO_DISCARD constexpr PointT< PointType > GetPosition() const
Returns the top-left corner of the rectangle as a Point.
Definition peak_common_rectangle.hpp:136
constexpr RectangleT(const PointT< PointType > &point, const SizeT< SizeType > &size)
Constructs a rectangle from a point and a size.
Definition peak_common_rectangle.hpp:64
PEAK_COMMON_NO_DISCARD constexpr PointType GetX() const
Returns the x-coordinate of the rectangle's top-left corner.
Definition peak_common_rectangle.hpp:89
constexpr RectangleT()=default
Default constructor for RectangleT.
PEAK_COMMON_NO_DISCARD constexpr SizeT< SizeType > GetSize() const
Returns the size of the rectangle.
Definition peak_common_rectangle.hpp:128
constexpr bool operator!=(const RectangleT< RhsPointType, RhsSizeType > &rhs) const
Inequality operator.
Definition peak_common_rectangle.hpp:168
PEAK_COMMON_NO_DISCARD constexpr PointType GetY() const
Returns the y-coordinate of the rectangle's top-left corner.
Definition peak_common_rectangle.hpp:99
constexpr RectangleT(PointType x, PointType y, SizeType width, SizeType height)
Constructs a rectangle from coordinates and dimensions.
Definition peak_common_rectangle.hpp:79
PEAK_COMMON_NO_DISCARD std::string ToString() const
Returns a string representation of the rectangle.
Definition peak_common_rectangle.hpp:198
PEAK_COMMON_NO_DISCARD constexpr SizeType GetHeight() const
Returns the height of the rectangle.
Definition peak_common_rectangle.hpp:120
friend std::ostream & operator<<(std::ostream &os, RectangleT rectangle)
Stream output operator for RectangleT.
Definition peak_common_rectangle.hpp:184
Represents a two-dimensional size with non-negative width and height.
Definition peak_common_size.hpp:42
detail::RectangleT< uint32_t, uint32_t > RectangleU
Rectangle with unsigned coordinates and unsigned dimensions.
Definition peak_common_rectangle.hpp:267
detail::RectangleT< int32_t, uint32_t > Rectangle
Rectangle with integer coordinates and unsigned dimensions.
Definition peak_common_rectangle.hpp:236
detail::RectangleT< float, float > RectangleF
Rectangle with floating-point coordinates and dimensions.
Definition peak_common_rectangle.hpp:251
Namespace for internal implementation details and low-level types.
Definition peak_common_math.hpp:24
Root namespace for common types and interfaces shared across multiple libraries.
Definition peak_common_math.hpp:22
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:35
#define PEAK_COMMON_NO_DISCARD
Definition peak_common_defines.h:94