diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-05-10 23:57:39 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-05-10 23:57:39 +0100 |
commit | cff9ddfcd8ee821de85a84c18727f36c08946c80 (patch) | |
tree | c135e0ce60c815109f3325bd28d6ce63c684ba54 | |
parent | Add new network building interface (diff) | |
download | ilt-cff9ddfcd8ee821de85a84c18727f36c08946c80.tar.bz2 ilt-cff9ddfcd8ee821de85a84c18727f36c08946c80.tar.xz ilt-cff9ddfcd8ee821de85a84c18727f36c08946c80.zip |
Set terrain height and surface when adding link
-rw-r--r-- | game/network/network.h | 4 | ||||
-rw-r--r-- | game/network/network.impl.h | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/game/network/network.h b/game/network/network.h index 114f42b..0c499c6 100644 --- a/game/network/network.h +++ b/game/network/network.h @@ -61,7 +61,7 @@ public: [[nodiscard]] virtual float findNodeDirection(Node::AnyCPtr) const = 0; [[nodiscard]] Link::Collection create(const CreationDefinition &); - virtual void add(const GeoData *, const Link::Ptr &) = 0; + virtual void add(GeoData *, const Link::Ptr &) = 0; [[nodiscard]] virtual const Surface * getBaseSurface() const = 0; [[nodiscard]] virtual RelativeDistance getBaseWidth() const = 0; @@ -131,7 +131,7 @@ public: using Network::create; [[nodiscard]] Link::Ptr create(const GenStraightDef &) override; [[nodiscard]] Link::Ptr create(const GenCurveDef &) override; - void add(const GeoData *, const Link::Ptr &) override; + void add(GeoData *, const Link::Ptr &) override; protected: Link::CCollection addCurve(const GeoData *, const GenCurveDef &); diff --git a/game/network/network.impl.h b/game/network/network.impl.h index 54a5f4b..7f7dfb3 100644 --- a/game/network/network.impl.h +++ b/game/network/network.impl.h @@ -162,7 +162,7 @@ NetworkOf<T, Links...>::create(const GenCurveDef & def) template<typename T, typename... Links> void -NetworkOf<T, Links...>::add(const GeoData *, const Link::Ptr & link) +NetworkOf<T, Links...>::add(GeoData * geoData, const Link::Ptr & link) { const auto addIf = [this](auto && lptr) { if (lptr) { @@ -178,4 +178,7 @@ NetworkOf<T, Links...>::add(const GeoData *, const Link::Ptr & link) throw std::logic_error("Unsupported link type for network"); } joinLinks(link); + if (geoData) { + geoData->setHeights(link->getBase(getBaseWidth()), GeoData::SetHeightsOpts {.surface = getBaseSurface()}); + } } |