Add segment-simplex intersection
This commit is contained in:
parent
a1ecc8a2d6
commit
76dd07c266
1 changed files with 15 additions and 0 deletions
|
|
@ -168,4 +168,19 @@ namespace psemek::geom
|
|||
return static_cast<bool>(intersection(r, s));
|
||||
}
|
||||
|
||||
template <typename T, std::size_t N, typename = std::enable_if_t<(N > 2)>>
|
||||
std::optional<T> intersection(segment<point<T, N>> const & seg, simplex<point<T, N>, N - 1> const & s)
|
||||
{
|
||||
auto i = intersection(ray{seg[0], seg[1] - seg[0]}, s);
|
||||
if (!i || *i < 0 || *i > 1)
|
||||
return std::nullopt;
|
||||
return i;
|
||||
}
|
||||
|
||||
template <typename T, std::size_t N, typename = std::enable_if_t<(N > 2)>>
|
||||
bool intersect(segment<point<T, N>> const & seg, simplex<T, N> const & s)
|
||||
{
|
||||
return static_cast<bool>(intersection(seg, s));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue