|
|
constexpr | extent (extent const &) noexcept=default |
| |
|
constexpr | extent (extent &&) noexcept=default |
| |
|
constexpr extent & | operator= (extent const &) noexcept=default |
| |
|
constexpr extent & | operator= (extent &&) noexcept=default |
| |
template<int E>
requires (E < D) |
| constexpr | extent (extent< value_type, E > const &other) noexcept |
| | Construct a extent from a lower dimension extent.
|
| |
| constexpr | operator array_type () const noexcept |
| | Convert a extent to its array_type-nummeric_array.
|
| |
|
constexpr | extent (array_type const &other) noexcept |
| |
|
constexpr | operator bool () const noexcept |
| |
template<int E>
requires (E >= D) |
| constexpr | operator vector< value_type, E > () const noexcept |
| |
| constexpr | extent () noexcept |
| | Construct a empty extent / zero length.
|
| |
| constexpr | extent (value_type width, value_type height) noexcept |
| | Construct a 2D extent from the width and height.
|
| |
| constexpr | extent (value_type width, value_type height, value_type depth=value_type{0}) noexcept |
| | Construct a 3D extent from width, height and depth.
|
| |
| constexpr value_type & | width () noexcept |
| | Access the x-as-width element from the extent.
|
| |
| constexpr value_type & | height () noexcept |
| | Access the y-as-height element from the extent.
|
| |
| constexpr value_type & | depth () noexcept |
| | Access the z-as-depth element from the extent.
|
| |
| constexpr value_type const & | width () const noexcept |
| | Access the x-as-width element from the extent.
|
| |
| constexpr value_type const & | height () const noexcept |
| | Access the y-as-height element from the extent.
|
| |
| constexpr value_type const & | depth () const noexcept |
| | Access the z-as-depth element from the extent.
|
| |
|
constexpr vector< value_type, D > | right () const noexcept |
| |
|
constexpr vector< value_type, D > | up () const noexcept |
| |
|
constexpr extent & | operator+= (extent const &rhs) noexcept |
| |
| constexpr bool | holds_invariant () const noexcept |
| | Check if the extent is valid.
|
| |
|
| constexpr friend extent | operator+ (extent const &lhs, extent const &rhs) noexcept |
| | Add two extents from each other.
|
| |
| constexpr friend extent | operator- (extent const &lhs, extent const &rhs) noexcept |
| | Subtract two extents from each other.
|
| |
|
constexpr friend scale< D > | operator/ (extent const &lhs, extent const &rhs) noexcept |
| |
| constexpr friend extent | operator* (extent const &lhs, value_type const &rhs) noexcept |
| | Scale the extent by a scaler.
|
| |
|
template<int E> |
| constexpr friend auto | operator+ (extent const &lhs, vector< value_type, E > const &rhs) noexcept |
| |
|
template<int E> |
| constexpr friend auto | operator+ (vector< value_type, E > const &lhs, extent const &rhs) noexcept |
| |
| constexpr friend extent | operator+ (extent const &lhs, value_type const &rhs) noexcept |
| | Add a scaler to the extent.
|
| |
| constexpr friend extent | operator* (value_type const &lhs, extent const &rhs) noexcept |
| | Scale the extent by a scaler.
|
| |
| constexpr friend bool | operator== (extent const &lhs, extent const &rhs) noexcept |
| | Compare if two extents are equal.
|
| |
|
constexpr friend std::partial_ordering | operator<=> (extent const &lhs, extent const &rhs) noexcept |
| |
|
constexpr friend std::partial_ordering | operator<=> (extent const &lhs, extent const &rhs) noexcept |
| |
| hi_force_inline constexpr friend value_type | squared_hypot (extent const &rhs) noexcept |
| | Get the squared length of the extent.
|
| |
| constexpr friend value_type | hypot (extent const &rhs) noexcept |
| | Get the length of the extent.
|
| |
| constexpr friend value_type | rcp_hypot (extent const &rhs) noexcept |
| | Get the length of the extent.
|
| |
| constexpr friend extent | normalize (extent const &rhs) noexcept |
| | Normalize a extent to a unit extent.
|
| |
|
constexpr friend extent | ceil (extent const &rhs) noexcept |
| |
|
constexpr friend extent | floor (extent const &rhs) noexcept |
| |
|
constexpr friend extent | round (extent const &rhs) noexcept |
| |
|
constexpr friend extent | min (extent const &lhs, extent const &rhs) noexcept |
| |
|
constexpr friend extent | max (extent const &lhs, extent const &rhs) noexcept |
| |
|
constexpr friend extent | clamp (extent const &value, extent const &min, extent const &max) noexcept |
| |
|
std::string | to_string (extent const &rhs) noexcept |
| |
|
std::ostream & | operator<< (std::ostream &lhs, extent const &rhs) noexcept |
| |
template<typename T, int D>
class hi::v1::geo::extent< T, D >
A high-level geometric extent.
A extent, for both 2D or 3D is internally represented as a 4D homogeneous extent. Which can be efficiently implemented as a __m128 SSE register.
template<typename T , int D>
Access the z-as-depth element from the extent.
A extent can be seen as having a width, height and depth, these accessors are aliases for x, y, and z.
- Returns
- a reference to the z element.
template<typename T , int D>
Access the z-as-depth element from the extent.
A extent can be seen as having a width, height and depth, these accessors are aliases for x, y, and z.
- Returns
- a reference to the z element.
template<typename T , int D>
Access the y-as-height element from the extent.
A extent can be seen as having a width, height and depth, these accessors are aliases for x, y, and z.
- Returns
- a reference to the y element.
template<typename T , int D>
Access the y-as-height element from the extent.
A extent can be seen as having a width, height and depth, these accessors are aliases for x, y, and z.
- Returns
- a reference to the y element.
template<typename T , int D>
Access the x-as-width element from the extent.
A extent can be seen as having a width, height and depth, these accessors are aliases for x, y, and z.
- Returns
- a reference to the x element.
template<typename T , int D>
Access the x-as-width element from the extent.
A extent can be seen as having a width, height and depth, these accessors are aliases for x, y, and z.
- Returns
- a reference to the x element.