summaryrefslogtreecommitdiff
path: root/ui/builders
diff options
context:
space:
mode:
Diffstat (limited to 'ui/builders')
-rw-r--r--ui/builders/freeExtend.cpp77
-rw-r--r--ui/builders/freeExtend.h21
-rw-r--r--ui/builders/join.cpp55
-rw-r--r--ui/builders/join.h18
-rw-r--r--ui/builders/straight.cpp58
-rw-r--r--ui/builders/straight.h20
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;
-};