mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 09:24:57 +00:00
LibGfx: Implement AK::min/max
for Gfx::VectorN
These return a new `Gfx::VectorN` with the minimum or maximum value of each element.
This commit is contained in:
parent
e46b217e42
commit
55668c3e48
1 changed files with 24 additions and 0 deletions
|
@ -300,3 +300,27 @@ private:
|
|||
};
|
||||
|
||||
}
|
||||
|
||||
namespace AK {
|
||||
|
||||
template<size_t N, typename T>
|
||||
constexpr Gfx::VectorN<N, T> min(Gfx::VectorN<N, T> const& a, Gfx::VectorN<N, T> const& b)
|
||||
{
|
||||
Gfx::VectorN<N, T> result;
|
||||
UNROLL_LOOP
|
||||
for (auto i = 0u; i < N; ++i)
|
||||
result[i] = min(a[i], b[i]);
|
||||
return result;
|
||||
}
|
||||
|
||||
template<size_t N, typename T>
|
||||
constexpr Gfx::VectorN<N, T> max(Gfx::VectorN<N, T> const& a, Gfx::VectorN<N, T> const& b)
|
||||
{
|
||||
Gfx::VectorN<N, T> result;
|
||||
UNROLL_LOOP
|
||||
for (auto i = 0u; i < N; ++i)
|
||||
result[i] = max(a[i], b[i]);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue