HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Friends
tt::interval_vec2 Class Reference

#include <ttauri/interval_vec2.hpp>

Public Member Functions

 interval_vec2 (interval_vec2 const &other) noexcept=default
 
 interval_vec2 (interval_vec2 &&other) noexcept=default
 
interval_vec2operator= (interval_vec2 const &other) noexcept=default
 
interval_vec2operator= (interval_vec2 &&other) noexcept=default
 
 interval_vec2 (f32x4 min, f32x4 max) noexcept
 
 interval_vec2 (finterval x, finterval y) noexcept
 
 interval_vec2 (f32x4 other) noexcept
 
 interval_vec2 (float x, float y) noexcept
 
f32x4 minimum () const noexcept
 
f32x4 maximum () const noexcept
 
finterval x () const noexcept
 
finterval y () const noexcept
 
finterval width () const noexcept
 
finterval height () const noexcept
 
interval_vec2 x0 () const noexcept
 
interval_vec2 _0y () const noexcept
 
interval_vec2operator+= (interval_vec2 const &rhs) noexcept
 
interval_vec2operator-= (interval_vec2 const &rhs) noexcept
 

Static Public Member Functions

static interval_vec2 make_minimum (f32x4 other) noexcept
 
static interval_vec2 make_minimum (float x, float y) noexcept
 
static interval_vec2 make_maximum (f32x4 other) noexcept
 
static interval_vec2 make_maximum (float x, float y) noexcept
 
static interval_vec2 make_zero_to_maximum (f32x4 other) noexcept
 
static interval_vec2 make_zero_to_maximum (float x, float y) noexcept
 

Friends

interval_vec2 operator+ (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 
interval_vec2 operator- (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 
bool operator== (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 
bool operator<< (f32x4 const &lhs, interval_vec2 const &rhs) noexcept
 Check if lhs.x or lhs.y is smaller then rhs.minimum.
 
bool operator>> (f32x4 const &lhs, interval_vec2 const &rhs) noexcept
 Check if lhs.x or lhs.y is larger then rhs.maximum.
 
std::string to_string (interval_vec2 const &rhs) noexcept
 
std::ostreamoperator<< (std::ostream &lhs, interval_vec2 const &rhs)
 
interval_vec2 intersect (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 Intersect two intervals.
 
interval_vec2 merge (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 Merge two intervals.
 
interval_vec2 min (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 Get the maximum interval of both operants.
 
interval_vec2 max (interval_vec2 const &lhs, interval_vec2 const &rhs) noexcept
 Get the minimum interval of both operants.
 

Detailed Description

A 2D vector using interval arithmetic.

This class can be used to work calculate 2D minimum/maximum size.

For proper interval arithmetic the floating point rounding direction should be set to +infinity.

Friends And Related Symbol Documentation

◆ intersect

interval_vec2 intersect ( interval_vec2 const & lhs,
interval_vec2 const & rhs )
friend

Intersect two intervals.

The returned interval only includes the part that overlap.

It is undefined behavior if the given intervals do not overlap.

◆ max

interval_vec2 max ( interval_vec2 const & lhs,
interval_vec2 const & rhs )
friend

Get the minimum interval of both operants.

◆ merge

interval_vec2 merge ( interval_vec2 const & lhs,
interval_vec2 const & rhs )
friend

Merge two intervals.

The returned interval includes both intervals fully.

◆ min

interval_vec2 min ( interval_vec2 const & lhs,
interval_vec2 const & rhs )
friend

Get the maximum interval of both operants.

◆ operator<<

bool operator<< ( f32x4 const & lhs,
interval_vec2 const & rhs )
friend

Check if lhs.x or lhs.y is smaller then rhs.minimum.

◆ operator>>

bool operator>> ( f32x4 const & lhs,
interval_vec2 const & rhs )
friend

Check if lhs.x or lhs.y is larger then rhs.maximum.


The documentation for this class was generated from the following file: