From 18eacf4ba682400a62a1a975f30ad1284925d248 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 8 Oct 2022 15:43:53 +0100 Subject: Split network intersect ray functions and return specific types --- game/network/network.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'game/network/network.h') diff --git a/game/network/network.h b/game/network/network.h index 64f3f91..44ad095 100644 --- a/game/network/network.h +++ b/game/network/network.h @@ -18,21 +18,20 @@ class Ray; class Network { public: using LinkEnd = std::pair; - using IntersectRayResult = std::variant; explicit Network(const std::string & textureName); virtual ~Network() = default; [[nodiscard]] NodePtr findNodeAt(glm::vec3) const; [[nodiscard]] NodePtr nodeAt(glm::vec3); [[nodiscard]] std::pair newNodeAt(glm::vec3); - [[nodiscard]] IntersectRayResult intersectRay(const Ray &) const; + [[nodiscard]] virtual LinkPtr intersectRayLinks(const Ray &) const = 0; + [[nodiscard]] virtual NodePtr intersectRayNodes(const Ray &) const; [[nodiscard]] Link::Nexts routeFromTo(const Link::End &, glm::vec3) const; [[nodiscard]] Link::Nexts routeFromTo(const Link::End &, const NodePtr &) const; protected: static void joinLinks(const LinkPtr & l, const LinkPtr & ol); - [[nodiscard]] virtual IntersectRayResult intersectRayLinks(const Ray &) const = 0; using Nodes = std::set>; Nodes nodes; @@ -47,7 +46,7 @@ protected: void joinLinks(const LinkPtr &) const; protected: - [[nodiscard]] IntersectRayResult intersectRayLinks(const Ray &) const override; + [[nodiscard]] LinkPtr intersectRayLinks(const Ray &) const override; public: template -- cgit v1.2.3