summaryrefslogtreecommitdiff
path: root/ui/builders/freeExtend.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-05-11 12:22:19 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2025-05-11 12:22:19 +0100
commitacb76ffa0f45c5369e103f8868356d333ab2d954 (patch)
tree8ef1116b45b2a3e7e59b4b490ca5c90d48d31081 /ui/builders/freeExtend.cpp
parentLink helper to get an End pointer based on position (diff)
downloadilt-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.cpp77
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;
-}