From 101bf2edb5eae2db01a4124e4050f4b6e3909a75 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Fri, 2 Aug 2024 15:15:09 +0200 Subject: [PATCH] upd itemize roughness --- GUI/Model/FromCore/ItemizeSample.cpp | 9 +++++++++ GUI/Model/Job/ParameterTreeBuilder.cpp | 2 +- GUI/Model/Sample/RoughnessItems.h | 4 ++-- GUI/View/Sample/RoughnessForm.cpp | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 043e6603f9e..9cda2a84a66 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 2fd0171a087..84e3fa993c9 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 217642ef78e..c8e8a694b47 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 b1fef4297db..10324021243 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()); } } -- GitLab