11#include "../macros.hpp"
12#include <hikocpu/hikocpu.hpp>
17hi_export_module(hikogui.geometry : corner_radii);
19hi_export
namespace hi {
28 using array_type = f32x4;
36 [[nodiscard]]
constexpr corner_radii(
float radius) noexcept : _v(radius, radius, radius, radius) {}
37 [[nodiscard]]
constexpr corner_radii(
float lb,
float rb,
float lt,
float rt) noexcept : _v(lb, rb, lt, rt) {}
43 [[nodiscard]]
constexpr explicit corner_radii(f32x4 v) noexcept : _v(v) {}
45 [[nodiscard]]
constexpr explicit operator f32x4() const noexcept
50 [[nodiscard]]
constexpr float left_bottom() const noexcept
55 [[nodiscard]]
constexpr float right_bottom() const noexcept
60 [[nodiscard]]
constexpr float left_top() const noexcept
65 [[nodiscard]]
constexpr float right_top() const noexcept
76 [[nodiscard]]
constexpr friend float get(corner_radii
const &rhs)
noexcept
93 return corner_radii{f32x4{lhs} + array_type::broadcast(rhs)};
96 [[nodiscard]]
constexpr friend corner_radii operator-(corner_radii
const &lhs,
float rhs)
noexcept
98 return corner_radii{f32x4{lhs} - array_type::broadcast(rhs)};
The HikoGUI namespace.
Definition array_generic.hpp:21
The HikoGUI API version 1.
Definition array_generic.hpp:22
The 4 radii of the corners of a quad or rectangle.
Definition corner_radii.hpp:26
constexpr friend float get(corner_radii const &rhs) noexcept
Get the corner radius by index.
Definition corner_radii.hpp:76
constexpr float operator[](std::size_t i) const noexcept
Get the corner radius by index.
Definition corner_radii.hpp:86
constexpr corner_radii(f32x4 v) noexcept
Construct a corner_radii from a simd.
Definition corner_radii.hpp:43