16 [[nodiscard]]
explicit constexpr corner_shapes() noexcept : _v() {}
17 [[nodiscard]]
explicit constexpr corner_shapes(
float radius) noexcept : _v(radius, radius, radius, radius) {}
18 [[nodiscard]]
explicit constexpr corner_shapes(
float lb,
float rb,
float lt,
float rt) noexcept : _v(lb, rb, lt, rt) {}
20 [[nodiscard]]
explicit constexpr operator f32x4()
const noexcept
25 [[nodiscard]]
constexpr float left_bottom()
const noexcept
30 [[nodiscard]]
constexpr float right_bottom()
const noexcept
35 [[nodiscard]]
constexpr float left_top()
const noexcept
40 [[nodiscard]]
constexpr float right_top()
const noexcept
46 [[nodiscard]]
constexpr friend float get(
corner_shapes const &rhs)
noexcept
48 return get<I>(rhs._v);
51 [[nodiscard]]
constexpr float operator[](
size_t i)
const noexcept
60 for (
size_t i = 0; i != lhs._v.size(); ++i) {
62 r._v[i] =
std::max(0.0f, lhs._v[i] + rhs);
64 r._v[i] =
std::min(0.0f, lhs._v[i] - rhs);