Add geom::intersection(segment,cylinder)

This commit is contained in:
Nikita Lisitsa 2022-07-10 11:13:37 +03:00
parent bdb1a203ff
commit 96d9a3e192

View file

@ -288,4 +288,16 @@ namespace psemek::geom
return !intersection(r, c).empty();
}
template <typename T, std::size_t N>
interval<T> intersection(segment<point<T, N>> const & s, cylinder<T, N> const & c)
{
return intersection(ray{s[0], s[1] - s[0]}, c) & interval<T>{T{0}, T{1}};
}
template <typename T, std::size_t N>
bool intersect(segment<point<T, N>> const & s, cylinder<T, N> const & c)
{
return !intersection(s, c).empty();
}
}