From d7587defa3cedd6e7ea6d0623aa8cd0f6b27819c Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 2 Oct 2022 18:16:27 +0100 Subject: Add support for searching a network for a ray intersection --- game/network/network.impl.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'game/network/network.impl.h') diff --git a/game/network/network.impl.h b/game/network/network.impl.h index d2e9ff0..afc9304 100644 --- a/game/network/network.impl.h +++ b/game/network/network.impl.h @@ -21,3 +21,18 @@ NetworkOf::joinLinks(const LinkPtr & l) const Network::joinLinks(l, ol); } } + +template +Network::IntersectRayResult +NetworkOf::intersectRayLinks(const Ray & ray) const +{ + // Click link + if (const auto link = std::find_if(links.objects.begin(), links.objects.end(), + [&ray](const std::shared_ptr & link) { + return link->intersectRay(ray); + }); + link != links.objects.end()) { + return *link; + } + return {}; +} -- cgit v1.2.3