summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-02-09 13:02:09 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-02-09 13:02:09 +0000
commit62fd9391bbfde47177fb36434d9664e47f4cf656 (patch)
tree83c1361b41bac431f8dbddb92859fb28e76455a5 /ui
parentBig of validation on getSurface (diff)
downloadilt-62fd9391bbfde47177fb36434d9664e47f4cf656.tar.bz2
ilt-62fd9391bbfde47177fb36434d9664e47f4cf656.tar.xz
ilt-62fd9391bbfde47177fb36434d9664e47f4cf656.zip
Initial commit setting terrain during network construction
This is all in the wrong place, it shouldn't be part of the network interface.
Diffstat (limited to 'ui')
-rw-r--r--ui/builders/freeExtend.cpp14
-rw-r--r--ui/builders/freeExtend.h4
-rw-r--r--ui/builders/join.cpp8
-rw-r--r--ui/builders/join.h2
-rw-r--r--ui/builders/straight.cpp6
-rw-r--r--ui/builders/straight.h2
6 files changed, 19 insertions, 17 deletions
diff --git a/ui/builders/freeExtend.cpp b/ui/builders/freeExtend.cpp
index fa08af6..ab5a998 100644
--- a/ui/builders/freeExtend.cpp
+++ b/ui/builders/freeExtend.cpp
@@ -38,11 +38,11 @@ BuilderFreeExtend::click(
case SDL_BUTTON_LEFT:
if (p1) {
if (const auto p = network->intersectRayNodes(ray)) {
- createJoin(network, *p1, p->pos);
+ createJoin(network, geoData, *p1, p->pos);
p1 = p->pos;
}
else if (const auto p = geoData->intersectRay(ray)) {
- createExtend(network, *p1, p->first);
+ createExtend(network, geoData, *p1, p->first);
p1 = p->first;
}
}
@@ -59,17 +59,19 @@ BuilderFreeExtend::click(
}
Link::CCollection
-BuilderFreeExtend::createJoin(Network * network, GlobalPosition3D p1, GlobalPosition3D p2) const
+BuilderFreeExtend::createJoin(
+ Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const
{
- const auto links = network->addJoins(p1, p2);
+ const auto links = network->addJoins(geoData, p1, p2);
setHeightsFor(network, links);
return links;
}
Link::CCollection
-BuilderFreeExtend::createExtend(Network * network, GlobalPosition3D p1, GlobalPosition3D p2) const
+BuilderFreeExtend::createExtend(
+ Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const
{
- const auto links = network->addExtend(p1, p2);
+ 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
index 8e30ef4..6f28493 100644
--- a/ui/builders/freeExtend.h
+++ b/ui/builders/freeExtend.h
@@ -13,8 +13,8 @@ private:
const Ray<GlobalPosition3D> & ray) override;
public:
- Link::CCollection createJoin(Network * network, GlobalPosition3D, GlobalPosition3D) const;
- Link::CCollection createExtend(Network * network, GlobalPosition3D, GlobalPosition3D) const;
+ 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
index ee14d63..6941e23 100644
--- a/ui/builders/join.cpp
+++ b/ui/builders/join.cpp
@@ -25,13 +25,13 @@ BuilderJoin::move(Network * network, const GeoData *, const SDL_MouseMotionEvent
void
BuilderJoin::click(
- Network * network, const GeoData *, const SDL_MouseButtonEvent & e, const Ray<GlobalPosition3D> & ray)
+ 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, p1, p);
+ create(network, geoData, p1, p);
p1.reset();
candidateLinks.removeAll();
}
@@ -47,9 +47,9 @@ BuilderJoin::click(
}
Link::CCollection
-BuilderJoin::create(Network * network, const Node::Ptr & p1, const Node::Ptr & p2) const
+BuilderJoin::create(Network * network, const GeoData * geoData, const Node::Ptr & p1, const Node::Ptr & p2) const
{
- const auto links = network->addJoins(p1->pos, p2->pos);
+ 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
index d92037c..326d23d 100644
--- a/ui/builders/join.h
+++ b/ui/builders/join.h
@@ -12,7 +12,7 @@ private:
void move(Network * network, const GeoData * geoData, const SDL_MouseMotionEvent & e,
const Ray<GlobalPosition3D> & ray) override;
- Link::CCollection create(Network * network, const Node::Ptr & p1, const Node::Ptr & p2) const;
+ 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
index b9f1831..338aa8a 100644
--- a/ui/builders/straight.cpp
+++ b/ui/builders/straight.cpp
@@ -33,7 +33,7 @@ BuilderStraight::click(
case SDL_BUTTON_LEFT:
if (const auto p = geoData->intersectRay(ray)) {
if (p1) {
- create(network, *p1, p->first);
+ create(network, geoData, *p1, p->first);
candidateLinks.removeAll();
p1.reset();
}
@@ -50,9 +50,9 @@ BuilderStraight::click(
}
Link::CCollection
-BuilderStraight::create(Network * network, GlobalPosition3D p1, GlobalPosition3D p2) const
+BuilderStraight::create(Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const
{
- const auto links = network->addStraight(p1, p2);
+ 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
index 1717cad..0a6f290 100644
--- a/ui/builders/straight.h
+++ b/ui/builders/straight.h
@@ -13,7 +13,7 @@ private:
const Ray<GlobalPosition3D> & ray) override;
public:
- Link::CCollection create(Network * network, GlobalPosition3D p1, GlobalPosition3D p2) const;
+ Link::CCollection create(Network * network, const GeoData *, GlobalPosition3D p1, GlobalPosition3D p2) const;
private:
std::optional<GlobalPosition3D> p1;