From 0d59b73de4e51a3a5b3c680f3dca97c2b942cc09 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 14 Oct 2022 18:15:53 +0100 Subject: Builders manage a collection of candidate links rendered by the base builder --- ui/editNetwork.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'ui/editNetwork.cpp') diff --git a/ui/editNetwork.cpp b/ui/editNetwork.cpp index 3ab7059..9f4a186 100644 --- a/ui/editNetwork.cpp +++ b/ui/editNetwork.cpp @@ -4,12 +4,18 @@ #include "text.h" #include #include +#include +#include + +constexpr const glm::u8vec4 TRANSPARENT_BLUE {30, 50, 255, 200}; EditNetwork::EditNetwork(Network * n) : - network {n}, builderToolbar { - {"ui/icon/network.png", mode.toggle()}, - {"ui/icon/network.png", mode.toggle()}, - } + network {n}, + builderToolbar { + {"ui/icon/network.png", mode.toggle()}, + {"ui/icon/network.png", mode.toggle()}, + }, + blue {1, 1, &TRANSPARENT_BLUE} { } @@ -26,8 +32,11 @@ EditNetwork::click(const SDL_MouseButtonEvent & e, const Ray & ray) } bool -EditNetwork::move(const SDL_MouseMotionEvent &, const Ray &) +EditNetwork::move(const SDL_MouseMotionEvent & e, const Ray & ray) { + if (builder) { + builder->move(network, gameState->geoData.get(), e, ray); + } return false; } @@ -41,10 +50,18 @@ void EditNetwork::render(const Shader & shader) const { if (builder) { + blue.Bind(); + shader.setModel(Location {}, Shader::Program::StaticPos); builder->render(shader); } } +void +EditNetwork::Builder::render(const Shader & shader) const +{ + candidateLinks.apply(&Renderable::render, shader); +} + void EditNetwork::render(const UIShader & shader, const UIComponent::Position & parentPos) const { -- cgit v1.2.3