diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 043e6603f9e2accb31d2395e224f0406a9ba4fa5..9cda2a84a6681447f127b1d475beb2f65f6881e0 100644 --- a/GUI/Model/FromCore/ItemizeSample.cpp +++ b/GUI/Model/FromCore/ItemizeSample.cpp @@ -287,9 +287,18 @@ void set_Roughness(LayerItem* parent, const LayerInterface* top_interface) parent->roughnessSelection().setCertainItem(nullptr); if (top_interface) { const LayerRoughness* roughness = top_interface->roughness(); + if (roughness && !(roughness->allZero())) { auto* t = new BasicRoughnessItem(roughness->sigma(), roughness->hurst(), roughness->lateralCorrLength()); + + if (dynamic_cast<const ErfRoughness*>(roughness->roughnessModel())) + t->roughnessModelSelection().setCertainItem(new ErfRoughnessItem); + else if (dynamic_cast<const TanhRoughness*>(roughness->roughnessModel())) + t->roughnessModelSelection().setCertainItem(new TanhRoughnessItem); + else + ASSERT_NEVER; + parent->roughnessSelection().setCertainItem(t); } } diff --git a/GUI/Model/Job/ParameterTreeBuilder.cpp b/GUI/Model/Job/ParameterTreeBuilder.cpp index 2fd0171a08759bade11e4bcb5804acc7e4fdf5cd..84e3fa993c9399bfca5de38e8797f8276e698e5a 100644 --- a/GUI/Model/Job/ParameterTreeBuilder.cpp +++ b/GUI/Model/Job/ParameterTreeBuilder.cpp @@ -112,7 +112,7 @@ void ParameterTreeBuilder::addSample() if (!layer->isTopLayer()) if (auto* roughnessItem = layer->roughnessSelection().certainItem()) { auto* roughnessLabel = new ParameterLabelItem("Top roughness", layerLabel); - for (auto* property : roughnessItem->roughnessProperties()) + for (auto* property : roughnessItem->lateralProperties()) addParameterItem(roughnessLabel, *property); } diff --git a/GUI/Model/Sample/RoughnessItems.h b/GUI/Model/Sample/RoughnessItems.h index 217642ef78e2dc783a202cb644f9b77b05334029..c8e8a694b47b09731b749d00bb41a05929840664 100644 --- a/GUI/Model/Sample/RoughnessItems.h +++ b/GUI/Model/Sample/RoughnessItems.h @@ -26,7 +26,7 @@ public: virtual void writeTo(QXmlStreamWriter* w) const; virtual void readFrom(QXmlStreamReader* r); - virtual DoubleProperties roughnessProperties() = 0; + virtual DoubleProperties lateralProperties() = 0; PolyPtr<RoughnessModelItem, RoughnessModelCatalog>& roughnessModelSelection() { @@ -59,7 +59,7 @@ public: void writeTo(QXmlStreamWriter* w) const override; void readFrom(QXmlStreamReader* r) override; - DoubleProperties roughnessProperties() override + DoubleProperties lateralProperties() override { return {&m_sigma, &m_hurst, &m_lateral_correlation_length}; } diff --git a/GUI/View/Sample/RoughnessForm.cpp b/GUI/View/Sample/RoughnessForm.cpp index b1fef4297dbaa7f2d9ffd2b44b62c5f0b35c0375..10324021243edb655e077d3dd202836a1bdb9a73 100644 --- a/GUI/View/Sample/RoughnessForm.cpp +++ b/GUI/View/Sample/RoughnessForm.cpp @@ -63,7 +63,7 @@ void RoughnessForm::createRoughnessWidgets() RoughnessItem* roughness = m_rs.certainItem(); if (auto* rsi = dynamic_cast<BasicRoughnessItem*>(roughness)) { - m_layout->addGroupOfValues("Parameters", rsi->roughnessProperties()); + m_layout->addGroupOfValues("Parameters", rsi->lateralProperties()); m_layout->addSelection(roughness->roughnessModelSelection()); } }