diff options
Diffstat (limited to 'game/network')
-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()}); + } } |