|
HikoGUI
A low latency retained GUI
|
#include <hikogui/geometry/axis_aligned_rectangle.hpp>
Public Member Functions | |
| constexpr | axis_aligned_rectangle (axis_aligned_rectangle const &rhs) noexcept=default |
| constexpr axis_aligned_rectangle & | operator= (axis_aligned_rectangle const &rhs) noexcept=default |
| constexpr | axis_aligned_rectangle (axis_aligned_rectangle &&rhs) noexcept=default |
| constexpr axis_aligned_rectangle & | operator= (axis_aligned_rectangle &&rhs) noexcept=default |
| constexpr | axis_aligned_rectangle (f32x4 const &other) noexcept |
| constexpr | axis_aligned_rectangle (float x, float y, float width, float height) noexcept |
| Create a box from the position and size. | |
| constexpr | axis_aligned_rectangle (extent2 const &extent) noexcept |
| Create a rectangle from the size. | |
| constexpr | axis_aligned_rectangle (point2 const &p0, point2 const &p3) noexcept |
| Create a rectangle from the left-bottom and right-top points. | |
| constexpr | axis_aligned_rectangle (point2 const &p0, extent2 const &extent) noexcept |
| Create a rectangle from the size. | |
| constexpr | operator f32x4 () const noexcept |
| constexpr bool | holds_invariant () const noexcept |
| Make sure p0 is left/bottom from p3. | |
| constexpr bool | empty () const noexcept |
| Check if the rectangle has no area. | |
| constexpr | operator bool () const noexcept |
| True when the rectangle has an area. | |
| constexpr axis_aligned_rectangle & | operator|= (axis_aligned_rectangle const &rhs) noexcept |
| Expand the current rectangle to include the new rectangle. | |
| constexpr axis_aligned_rectangle & | operator|= (point2 const &rhs) noexcept |
| Expand the current rectangle to include the new rectangle. | |
| constexpr point2 | operator[] (std::size_t i) const noexcept |
| constexpr extent2 | size () const noexcept |
| Get size of the rectangle. | |
| constexpr float | width () const noexcept |
| constexpr float | height () const noexcept |
| constexpr float | bottom () const noexcept |
| constexpr float | top () const noexcept |
| constexpr float | left () const noexcept |
| constexpr float | right () const noexcept |
| constexpr float | middle () const noexcept |
| The middle on the y-axis between bottom and top. | |
| constexpr float | center () const noexcept |
| The center on the x-axis between left and right. | |
| constexpr axis_aligned_rectangle & | set_width (float newWidth) noexcept |
| constexpr axis_aligned_rectangle & | set_height (float newHeight) noexcept |
| constexpr bool | contains (point2 const &rhs) const noexcept |
| Check if a 2D coordinate is inside the rectangle. | |
| constexpr bool | contains (point3 const &rhs) const noexcept |
| Check if a 3D coordinate is inside the rectangle. | |
Static Public Member Functions | |
| static constexpr axis_aligned_rectangle | _align (axis_aligned_rectangle outside, axis_aligned_rectangle inside, alignment alignment) noexcept |
| Need to call the hidden friend function from within another class. | |
Friends | |
| template<int I> | |
| constexpr friend point2 | get (axis_aligned_rectangle const &rhs) noexcept |
| constexpr friend point2 | midpoint (axis_aligned_rectangle const &rhs) noexcept |
| Get the center of the rectangle. | |
| constexpr axis_aligned_rectangle | align (axis_aligned_rectangle haystack, extent2 needle, alignment alignment) noexcept |
| Align a rectangle within another rectangle. | |
| constexpr axis_aligned_rectangle | align (axis_aligned_rectangle haystack, axis_aligned_rectangle needle, alignment alignment) noexcept |
| Align a rectangle within another rectangle. | |
| constexpr bool | operator== (axis_aligned_rectangle const &lhs, axis_aligned_rectangle const &rhs) noexcept |
| constexpr bool | overlaps (axis_aligned_rectangle const &lhs, axis_aligned_rectangle const &rhs) noexcept |
| constexpr axis_aligned_rectangle | operator| (axis_aligned_rectangle const &lhs, axis_aligned_rectangle const &rhs) noexcept |
| constexpr axis_aligned_rectangle | operator| (axis_aligned_rectangle const &lhs, point2 const &rhs) noexcept |
| constexpr axis_aligned_rectangle | operator* (axis_aligned_rectangle const &lhs, float rhs) noexcept |
| Expand the rectangle for the same amount in all directions. | |
| constexpr axis_aligned_rectangle | operator+ (axis_aligned_rectangle const &lhs, float rhs) noexcept |
| Expand the rectangle for the same amount in all directions. | |
| constexpr axis_aligned_rectangle | operator- (axis_aligned_rectangle const &lhs, float rhs) noexcept |
| Shrink the rectangle for the same amount in all directions. | |
| constexpr axis_aligned_rectangle | round (axis_aligned_rectangle const &rhs) noexcept |
| constexpr axis_aligned_rectangle | ceil (axis_aligned_rectangle const &rhs) noexcept |
| Round rectangle by expanding to pixel edge. | |
| constexpr axis_aligned_rectangle | ceil (axis_aligned_rectangle const &lhs, extent2 const &rhs) noexcept |
| Round rectangle by expanding to a certain granularity. | |
| constexpr axis_aligned_rectangle | floor (axis_aligned_rectangle const &rhs) noexcept |
| Round rectangle by shrinking to pixel edge. | |
| constexpr axis_aligned_rectangle | bounding_rectangle (axis_aligned_rectangle const &rhs) noexcept |
| constexpr axis_aligned_rectangle | intersect (axis_aligned_rectangle const &lhs, axis_aligned_rectangle const &rhs) noexcept |
| Return the overlapping part of two rectangles. | |
| axis_aligned_rectangle | fit (axis_aligned_rectangle const &bounds, axis_aligned_rectangle const &rectangle) noexcept |
| Make a rectangle fit inside bounds. | |
| constexpr friend float | distance (axis_aligned_rectangle const &lhs, point2 const &rhs) noexcept |
Class which represents an axis-aligned rectangle.
|
inlineconstexprnoexcept |
Create a box from the position and size.
| x | The x location of the left-bottom corner of the box |
| y | The y location of the left-bottom corner of the box |
| width | The width of the box. |
| height | The height of the box. |
|
inlineexplicitconstexprnoexcept |
Create a rectangle from the size.
The rectangle's left bottom corner is at the origin.
| extent | The size of the box. |
|
inlineconstexprnoexcept |
Create a rectangle from the left-bottom and right-top points.
| p0 | The left bottom point. |
| p3 | The right opt point. |
|
inlineconstexprnoexcept |
Create a rectangle from the size.
The rectangle's left bottom corner is at the origin.
| extent | The size of the box. |
|
inlinestaticconstexprnoexcept |
Need to call the hidden friend function from within another class.
|
inlineconstexprnoexcept |
The center on the x-axis between left and right.
|
inlineconstexprnoexcept |
Check if a 2D coordinate is inside the rectangle.
| rhs | The coordinate of the point to test. |
|
inlineconstexprnoexcept |
Check if a 3D coordinate is inside the rectangle.
| rhs | The coordinate of the point to test. This point is converted to 2D by this function. |
|
inlineconstexprnoexcept |
Check if the rectangle has no area.
|
inlineconstexprnoexcept |
Make sure p0 is left/bottom from p3.
|
inlineconstexprnoexcept |
The middle on the y-axis between bottom and top.
|
inlineexplicitconstexprnoexcept |
True when the rectangle has an area.
|
inlineconstexprnoexcept |
Expand the current rectangle to include the new rectangle.
This is mostly used for extending bounding a bounding box.
| rhs | The new rectangle to include in the current rectangle. |
|
inlineconstexprnoexcept |
Expand the current rectangle to include the new rectangle.
This is mostly used for extending bounding a bounding box.
| rhs | A new point to include in the current rectangle. |
|
inlineconstexprnoexcept |
Get size of the rectangle.
|
friend |
Align a rectangle within another rectangle.
| haystack | The outside rectangle |
| needle | The inside rectangle; to be aligned. |
| alignment | How the inside rectangle should be aligned. |
|
friend |
Align a rectangle within another rectangle.
| haystack | The outside rectangle |
| needle | The size of the rectangle to be aligned. |
| alignment | How the inside rectangle should be aligned. |
|
friend |
Round rectangle by expanding to a certain granularity.
|
friend |
Round rectangle by expanding to pixel edge.
|
friend |
Make a rectangle fit inside bounds.
This algorithm will try to first move the rectangle and resist resizing it.
| bounds | The bounding box. |
| rectangle | The rectangle to fit inside the bounds. |
|
friend |
Round rectangle by shrinking to pixel edge.
|
friend |
Return the overlapping part of two rectangles.
When the rectangles are not overlapping, the width and height are zero.
|
friend |
Get the center of the rectangle.
|
friend |
Expand the rectangle for the same amount in all directions.
| lhs | The original rectangle. |
| rhs | How much the width and height should be scaled by. |
|
friend |
Expand the rectangle for the same amount in all directions.
| lhs | The original rectangle. |
| rhs | How much should be added on each side of the rectangle, this value may be zero or negative. |
|
friend |
Shrink the rectangle for the same amount in all directions.
| lhs | The original rectangle. |
| rhs | How much should be added on each side of the rectangle, this value may be zero or negative. |