summaryrefslogtreecommitdiff
path: root/ui/builders/freeExtend.cpp
diff options
context:
space:
mode:
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;
-}