Add shrink & expand functions for intervals & boxes

This commit is contained in:
Nikita Lisitsa 2020-11-29 12:25:25 +03:00
parent d5495a52ce
commit a7f067bedb
2 changed files with 28 additions and 0 deletions

View file

@ -230,4 +230,20 @@ namespace psemek::geom
return os;
}
template <typename T, std::size_t N>
box<T, N> expand(box<T, N> b, T const & d)
{
for (std::size_t i = 0; i < N; ++i)
{
b[i] = expand(b[i], d);
}
return b;
}
template <typename T, std::size_t N>
box<T, N> shrink(box<T, N> b, T const & d)
{
return expand(b, -d);
}
}

View file

@ -245,4 +245,16 @@ namespace psemek::geom
return os;
}
template <typename T>
interval<T> expand(interval<T> const & i, T const & d)
{
return {i.min - d, i.max + d};
}
template <typename T>
interval<T> shrink(interval<T> const & i, T const & d)
{
return expand(i, -d);
}
}