27 vector2 priority = {};
28 hi::alignment alignment = hi::alignment{};
41 hi::alignment alignment = hi::alignment{},
43 vector2 priority = hi::vector2{})
noexcept :
44 minimum(minimum), preferred(preferred), maximum(maximum),
margins(
margins), priority(priority), alignment(alignment)
55 inplace_max(r.minimum, new_minimum);
56 inplace_min(r.maximum, new_maximum);
58 inplace_max(r.preferred, r.minimum);
59 inplace_max(r.maximum, r.preferred);
84 [[nodiscard]]
constexpr bool holds_invariant()
const noexcept
86 if (alignment == horizontal_alignment::flush or alignment == horizontal_alignment::justified) {
94 if (minimum > preferred or preferred > maximum) {
103 inplace_max(r.minimum, rhs);
104 inplace_max(r.preferred, rhs);
105 inplace_max(r.maximum, rhs);
121 inplace_max(r.minimum, rhs.minimum);
122 inplace_max(r.preferred, rhs.preferred);
123 inplace_max(r.maximum, rhs.maximum);
124 inplace_max(r.margins, rhs.margins);
125 inplace_max(r.priority, rhs.priority);
131 template<std::convertible_to<box_constra
ints>... Args>
135 return max(first, max(second, third, args...));
#define hi_assert(expression,...)
Assert if expression is true.
Definition assert.hpp:199
#define hi_axiom(expression,...)
Specify an axiom; an expression that is true.
Definition assert.hpp:253
friend constexpr box_constraints max(box_constraints const &lhs, box_constraints const &rhs) noexcept
Makes a constraint that encompasses both given constraints.
Definition box_constraints.hpp:118