diff options
Diffstat (limited to 'ui/builders')
-rw-r--r-- | ui/builders/freeExtend.cpp | 77 | ||||
-rw-r--r-- | ui/builders/freeExtend.h | 21 | ||||
-rw-r--r-- | ui/builders/join.cpp | 55 | ||||
-rw-r--r-- | ui/builders/join.h | 18 | ||||
-rw-r--r-- | ui/builders/straight.cpp | 58 | ||||
-rw-r--r-- | ui/builders/straight.h | 20 |
6 files changed, 0 insertions, 249 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; -} diff --git a/ui/builders/freeExtend.h b/ui/builders/freeExtend.h deleted file mode 100644 index 6f28493..0000000 --- a/ui/builders/freeExtend.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once -#include "../editNetwork.h" - -class Network; -class GeoData; - -class BuilderFreeExtend : public EditNetwork::Builder { -private: - std::string hint() const override; - void click(Network * network, const GeoData * geoData, const SDL_MouseButtonEvent & e, - const Ray<GlobalPosition3D> & ray) override; - void move(Network * network, const GeoData * geoData, const SDL_MouseMotionEvent & e, - const Ray<GlobalPosition3D> & ray) override; - -public: - Link::CCollection createJoin(Network * network, const GeoData *, GlobalPosition3D, GlobalPosition3D) const; - Link::CCollection createExtend(Network * network, const GeoData *, GlobalPosition3D, GlobalPosition3D) const; - -private: - std::optional<GlobalPosition3D> p1; -}; diff --git a/ui/builders/join.cpp b/ui/builders/join.cpp deleted file mode 100644 index f6cbce5..0000000 --- a/ui/builders/join.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "join.h" -#include <game/geoData.h> - -std::string -BuilderJoin::hint() const -{ - if (p1) { - return "Pick second node"; - } - return "Pick first node"; -} - -void -BuilderJoin::move(Network * network, const GeoData *, const SDL_MouseMotionEvent &, const Ray<GlobalPosition3D> & ray) -{ - if (p1) { - if (const auto p = network->intersectRayNodes(ray)) { - candidateLinks = network->candidateJoins(p1->pos, p->pos); - } - else { - candidateLinks.clear(); - } - } -} - -void -BuilderJoin::click( - Network * network, const GeoData * geoData, const SDL_MouseButtonEvent & e, const Ray<GlobalPosition3D> & ray) -{ - switch (e.button) { - case SDL_BUTTON_LEFT: - if (const auto p = network->intersectRayNodes(ray)) { - if (p1) { - create(network, geoData, p1, p); - p1.reset(); - candidateLinks.clear(); - } - else { - p1 = p; - } - } - return; - case SDL_BUTTON_MIDDLE: - p1.reset(); - return; - } -} - -Link::CCollection -BuilderJoin::create(Network * network, const GeoData * geoData, const Node::Ptr & p1, const Node::Ptr & p2) const -{ - const auto links = network->addJoins(geoData, p1->pos, p2->pos); - setHeightsFor(network, links); - return links; -} diff --git a/ui/builders/join.h b/ui/builders/join.h deleted file mode 100644 index 326d23d..0000000 --- a/ui/builders/join.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include "../editNetwork.h" - -class Network; -class GeoData; - -class BuilderJoin : public EditNetwork::Builder { -private: - std::string hint() const override; - void click(Network * network, const GeoData * geoData, const SDL_MouseButtonEvent & e, - const Ray<GlobalPosition3D> & ray) override; - void move(Network * network, const GeoData * geoData, const SDL_MouseMotionEvent & e, - const Ray<GlobalPosition3D> & ray) override; - - Link::CCollection create(Network * network, const GeoData *, const Node::Ptr & p1, const Node::Ptr & p2) const; - - Node::Ptr p1; -}; diff --git a/ui/builders/straight.cpp b/ui/builders/straight.cpp deleted file mode 100644 index e7d83b5..0000000 --- a/ui/builders/straight.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "straight.h" -#include "stream_support.h" -#include <game/geoData.h> - -std::string -BuilderStraight::hint() const -{ - if (p1) { - return "Pick straight end point"; - } - return "Pick straight start point"; -} - -void -BuilderStraight::move( - Network * network, const GeoData * geoData, const SDL_MouseMotionEvent &, const Ray<GlobalPosition3D> & ray) -{ - if (p1) { - if (const auto p = geoData->intersectRay(ray)) { - candidateLinks = network->candidateStraight(*p1, p->first); - } - else { - candidateLinks.clear(); - } - } -} - -void -BuilderStraight::click( - Network * network, const GeoData * geoData, const SDL_MouseButtonEvent & e, const Ray<GlobalPosition3D> & ray) -{ - switch (e.button) { - case SDL_BUTTON_LEFT: - if (const auto p = geoData->intersectRay(ray)) { - if (p1) { - create(network, geoData, *p1, p->first); - candidateLinks.clear(); - p1.reset(); - } - else { - p1 = p->first; - } - } - return; - case SDL_BUTTON_MIDDLE: - p1.reset(); - candidateLinks.clear(); - return; - } -} - -Link::CCollection -BuilderStraight::create(Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const -{ - const auto links = network->addStraight(geoData, p1, p2); - setHeightsFor(network, links); - return links; -} diff --git a/ui/builders/straight.h b/ui/builders/straight.h deleted file mode 100644 index 0a6f290..0000000 --- a/ui/builders/straight.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once -#include "../editNetwork.h" - -class Network; -class GeoData; - -class BuilderStraight : public EditNetwork::Builder { -private: - std::string hint() const override; - void click(Network * network, const GeoData * geoData, const SDL_MouseButtonEvent & e, - const Ray<GlobalPosition3D> & ray) override; - void move(Network * network, const GeoData * geoData, const SDL_MouseMotionEvent & e, - const Ray<GlobalPosition3D> & ray) override; - -public: - Link::CCollection create(Network * network, const GeoData *, GlobalPosition3D p1, GlobalPosition3D p2) const; - -private: - std::optional<GlobalPosition3D> p1; -}; |