|
HikoGUI
A low latency retained GUI
|
#include <hikogui/geometry/point.hpp>
Public Member Functions | |
| constexpr | point (point const &) noexcept=default |
| constexpr | point (point &&) noexcept=default |
| constexpr point & | operator= (point const &) noexcept=default |
| constexpr point & | operator= (point &&) noexcept=default |
| template<int E> requires (E < D) | |
| constexpr | point (point< E > const &other) noexcept |
| Construct a point from a lower dimension point. | |
| constexpr | point (point< 2 > const &other, float z) noexcept |
| Construct a point from a lower dimension point. | |
| template<int E> requires (E > D) | |
| constexpr | point (point< E > const &other) noexcept |
| Construct a point from a higher dimension point. | |
| constexpr | operator f32x4 () const noexcept |
| Convert a point to its f32x4-nummeric_array. | |
| constexpr | point (f32x4 const &other) noexcept |
| Construct a point from a f32x4-numeric_array. | |
| constexpr | point () noexcept |
| Construct a point at the origin of the coordinate system. | |
| constexpr | point (float x, float y) noexcept |
| Construct a 2D point from x and y elements. | |
| constexpr | point (float x, float y, float z=0.0) noexcept |
| Construct a 3D point from x, y and z elements. | |
| constexpr float & | x () noexcept |
| Access the x element from the point. | |
| constexpr float & | y () noexcept |
| Access the y element from the point. | |
| constexpr float & | z () noexcept |
| Access the z element from the point. | |
| constexpr float const & | x () const noexcept |
| Access the x element from the point. | |
| constexpr float const & | y () const noexcept |
| Access the y element from the point. | |
| constexpr float const & | z () const noexcept |
| Access the z element from the point. | |
|
template<int E> requires (E <= D) | |
| constexpr point & | operator+= (vector< E > const &rhs) noexcept |
|
template<int E> requires (E <= D) | |
| constexpr point & | operator-= (vector< E > const &rhs) noexcept |
| constexpr bool | holds_invariant () const noexcept |
| Check if the point is valid. | |
Friends | |
| template<int E> | |
| constexpr friend auto | operator+ (point const &lhs, vector< E > const &rhs) noexcept |
| Move a point along a vector. | |
| template<int E> | |
| constexpr friend auto | operator+ (vector< E > const &rhs, point const &lhs) noexcept |
| Move a point along a vector. | |
| template<int E> | |
| constexpr friend auto | operator- (point const &lhs, vector< E > const &rhs) noexcept |
| Move a point backward along the vector. | |
| constexpr friend vector< D > | operator- (point const &lhs, point const &rhs) noexcept |
| Find the vector between two points. | |
| constexpr friend bool | operator== (point const &lhs, point const &rhs) noexcept |
| Compare if two points are equal. | |
| template<int E> | |
| constexpr auto | midpoint (point const &lhs, point< E > const &rhs) noexcept |
| template<int E> | |
| constexpr auto | reflect (point const &lhs, point< E > const &rhs) noexcept |
| template<int E> | |
| constexpr auto | min (point const &lhs, point< E > const &rhs) noexcept |
| Mix the two points and get the lowest value of each element. | |
| template<int E> | |
| constexpr auto | max (point const &lhs, point< E > const &rhs) noexcept |
| Mix the two points and get the heighest value of each element. | |
| constexpr point | round (point const &rhs) noexcept |
| Round the coordinates of a point toward nearest integer. | |
| constexpr point | ceil (point const &rhs) noexcept |
| Round the coordinates of a point toward the right-top. | |
| constexpr point | floor (point const &rhs) noexcept |
| Round the coordinates of a point toward the left-bottom. | |
| constexpr point | ceil (point const &lhs, extent2 rhs) noexcept |
| Round the coordinates of a point toward the top-right with the given granularity. | |
| constexpr point | floor (point const &lhs, extent2 rhs) noexcept |
| Round the coordinates of a point toward the left-bottom with the given granularity. | |
| constexpr float | distance (point const &lhs, point const &rhs) noexcept |
| std::string | to_string (point const &rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, point const &rhs) noexcept |
A high-level geometric point Part of the high-level vec, point, mat and color types.
A point, for both 2D or 3D is internally represented as a 4D homogeneous vector. Which can be efficiently implemented as a __m128 SSE register.
|
inlineconstexprnoexcept |
Construct a point from a lower dimension point.
|
inlineconstexprnoexcept |
Construct a point from a lower dimension point.
|
inlineexplicitconstexprnoexcept |
Construct a point from a higher dimension point.
This will clear the values in the higher dimensions.
|
inlineexplicitconstexprnoexcept |
Construct a point from a f32x4-numeric_array.
|
inlineconstexprnoexcept |
Construct a point at the origin of the coordinate system.
|
inlineconstexprnoexcept |
Construct a 2D point from x and y elements.
| x | The x element. |
| y | The y element. |
|
inlineconstexprnoexcept |
Construct a 3D point from x, y and z elements.
| x | The x element. |
| y | The y element. |
| z | The z element. |
|
inlineconstexprnoexcept |
Check if the point is valid.
This function will check if w is not zero, and with a 2D point is z is zero.
|
inlineexplicitconstexprnoexcept |
Convert a point to its f32x4-nummeric_array.
|
inlineconstexprnoexcept |
Access the x element from the point.
|
inlineconstexprnoexcept |
Access the x element from the point.
|
inlineconstexprnoexcept |
Access the y element from the point.
|
inlineconstexprnoexcept |
Access the y element from the point.
|
inlineconstexprnoexcept |
Access the z element from the point.
|
inlineconstexprnoexcept |
Access the z element from the point.
Round the coordinates of a point toward the top-right with the given granularity.
Round the coordinates of a point toward the right-top.
Round the coordinates of a point toward the left-bottom with the given granularity.
Round the coordinates of a point toward the left-bottom.
|
friend |
Mix the two points and get the heighest value of each element.
| lhs | The first point. |
| rhs | The first point. |
|
friend |
Mix the two points and get the lowest value of each element.
| lhs | The first point. |
| rhs | The first point. |
|
friend |
Move a point along a vector.
| lhs | The point to move. |
| rhs | The vector to move along. |
|
friend |
Move a point along a vector.
| lhs | The vector to move along. |
| rhs | The point to move. |
|
friend |
Find the vector between two points.
| lhs | The first point. |
| rhs | The second point. |
|
friend |
Move a point backward along the vector.
| lhs | The point to move. |
| rhs | The vector to move backward. |
|
friend |
Compare if two points are equal.
| lhs | The first point. |
| rhs | The second point. |
Round the coordinates of a point toward nearest integer.