diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-05-11 12:22:19 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-05-11 12:22:19 +0100 |
commit | acb76ffa0f45c5369e103f8868356d333ab2d954 (patch) | |
tree | 8ef1116b45b2a3e7e59b4b490ca5c90d48d31081 /ui/builders/freeExtend.cpp | |
parent | Link helper to get an End pointer based on position (diff) | |
download | ilt-acb76ffa0f45c5369e103f8868356d333ab2d954.tar.bz2 ilt-acb76ffa0f45c5369e103f8868356d333ab2d954.tar.xz ilt-acb76ffa0f45c5369e103f8868356d333ab2d954.zip |
Build networks with new interface
Diffstat (limited to 'ui/builders/freeExtend.cpp')
-rw-r--r-- | ui/builders/freeExtend.cpp | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/ui/builders/freeExtend.cpp b/ui/builders/freeExtend.cpp deleted file mode 100644 index aff7cd7..0000000 --- a/ui/builders/freeExtend.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "freeExtend.h" -#include <game/geoData.h> - -std::string -BuilderFreeExtend::hint() const -{ - if (p1) { - return "Pick next point"; - } - return "Pick start node"; -} - -void -BuilderFreeExtend::move( - Network * network, const GeoData * geoData, const SDL_MouseMotionEvent &, const Ray<GlobalPosition3D> & ray) -{ - if (p1) { - if (const auto p = network->intersectRayNodes(ray)) { - candidateLinks = network->candidateJoins(*p1, p->pos); - } - else if (const auto p = geoData->intersectRay(ray)) { - candidateLinks = network->candidateExtend(*p1, p->first); - } - else { - candidateLinks.clear(); - } - } - else { - candidateLinks.clear(); - } -} - -void -BuilderFreeExtend::click( - Network * network, const GeoData * geoData, const SDL_MouseButtonEvent & e, const Ray<GlobalPosition3D> & ray) -{ - switch (e.button) { - case SDL_BUTTON_LEFT: - if (p1) { - if (const auto p = network->intersectRayNodes(ray)) { - createJoin(network, geoData, *p1, p->pos); - p1 = p->pos; - } - else if (const auto p = geoData->intersectRay(ray)) { - createExtend(network, geoData, *p1, p->first); - p1 = p->first; - } - } - else { - if (const auto p = network->intersectRayNodes(ray)) { - p1 = p->pos; - } - } - return; - case SDL_BUTTON_MIDDLE: - p1.reset(); - return; - } -} - -Link::CCollection -BuilderFreeExtend::createJoin( - Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const -{ - const auto links = network->addJoins(geoData, p1, p2); - setHeightsFor(network, links); - return links; -} - -Link::CCollection -BuilderFreeExtend::createExtend( - Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const -{ - const auto links = network->addExtend(geoData, p1, p2); - setHeightsFor(network, links); - return links; -} |