Skip to content
Snippets Groups Projects
Commit c678d8db authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

LayerRoughness from domain to GUI.

parent a514f89f
No related branches found
No related tags found
No related merge requests found
......@@ -122,6 +122,9 @@ public:
//! ISimulation if needed
virtual MultiLayerDWBASimulation *createDWBASimulation() const;
//! returns lyaer index
int getIndexOfLayer(const Layer *layer) const;
protected:
//! Registers some class members for later access via parameter pool
virtual void init_parameters();
......
......@@ -236,6 +236,14 @@ MultiLayerDWBASimulation* MultiLayer::createDWBASimulation() const
return 0;
}
int MultiLayer::getIndexOfLayer(const Layer *layer) const
{
for (size_t i=0; i<getNumberOfLayers(); ++i) {
if(layer == m_layers[i]) return i;
}
return -1;
}
void MultiLayer::print(std::ostream& ostr) const
{
ostr << "MultiLayer:" << getName() << "<" << this << "> : {\n";
......
......@@ -61,18 +61,21 @@ ISample *LayerRoughnessBuilder::buildSample() const
Layer substrate_layer;
substrate_layer.setMaterialAndThickness(substrate_material, 0);
LayerRoughness *roughness = new LayerRoughness();
roughness->setSigma(m_sigma);
roughness->setHurstParameter(m_hurst);
roughness->setLatteralCorrLength(m_latteralCorrLength);
// LayerRoughness *roughness = new LayerRoughness();
// roughness->setSigma(m_sigma);
// roughness->setHurstParameter(m_hurst);
// roughness->setLatteralCorrLength(m_latteralCorrLength);
multi_layer->addLayer(air_layer);
for (int i = 0; i<5; ++i) {
multi_layer->addLayerWithTopRoughness(partA_layer, *roughness);
multi_layer->addLayerWithTopRoughness(partB_layer, *roughness);
LayerRoughness roughness(m_sigma + i, m_hurst, m_latteralCorrLength);
multi_layer->addLayerWithTopRoughness(partA_layer, roughness);
multi_layer->addLayerWithTopRoughness(partB_layer, roughness);
}
multi_layer->addLayerWithTopRoughness(substrate_layer, *roughness);
LayerRoughness roughness(m_sigma + 10, m_hurst, m_latteralCorrLength);
multi_layer->addLayerWithTopRoughness(substrate_layer, roughness);
multi_layer->setCrossCorrLength(m_crossCorrLength);
return multi_layer;
}
......
......@@ -14,6 +14,7 @@ QMap<QString, QString > init_NameToRegistry()
result["example02"] = "isgisaxs04_1DDL";
result["example03"] = "isgisaxs04_2DDL";
result["example04"] = "isgisaxs11";
result["example05"] = "LayerWithRoughness";
return result;
}
......
......@@ -16,6 +16,7 @@
#include "GUIHelpers.h"
#include "ParticleCoreShell.h"
#include "ParticleCoreShellItem.h"
#include "LayerRoughnessItems.h"
#include <QDebug>
......@@ -124,6 +125,22 @@ void GUIObjectBuilder::visit(const Layer *sample)
item->setItemName(sample->getName().c_str());
item->setRegisteredProperty(LayerItem::P_THICKNESS, sample->getThickness());
item->setMaterialProperty(createMaterialFromDomain(sample->getMaterial()));
const MultiLayer *multilayer = dynamic_cast<const MultiLayer *>(m_itemToSample[parent]);
Q_ASSERT(multilayer);
int layer_index = multilayer->getIndexOfLayer(sample);
Q_ASSERT(layer_index != -1);
const LayerInterface *interface = multilayer->getLayerTopInterface(layer_index);
if(interface) {
const LayerRoughness *roughness = interface->getRoughness();
if(roughness) {
ParameterizedItem *roughnessItem = item->setGroupProperty(LayerItem::P_ROUGHNESS, "Basic");
roughnessItem->setRegisteredProperty(LayerRoughnessItem::P_SIGMA, roughness->getSigma());
roughnessItem->setRegisteredProperty(LayerRoughnessItem::P_HURST, roughness->getHurstParameter());
roughnessItem->setRegisteredProperty(LayerRoughnessItem::P_LATERAL_CORR_LENGTH, roughness->getLatteralCorrLength());
}
}
m_levelToParent[getLevel()] = item;
}
......@@ -142,6 +159,7 @@ void GUIObjectBuilder::visit(const MultiLayer *sample)
item->setRegisteredProperty(MultiLayerItem::P_CROSS_CORR_LENGTH,
sample->getCrossCorrLength());
m_levelToParent[getLevel()] = item;
m_itemToSample[item] = sample;
}
void GUIObjectBuilder::visit(const Particle *sample)
......
......@@ -25,7 +25,7 @@ LayerItem::LayerItem(ParameterizedItem *parent)
setItemName("LayerName");
registerProperty(P_THICKNESS, 0.0);
setMaterialProperty();
registerGroupProperty(P_ROUGHNESS, "Basic");
registerGroupProperty(P_ROUGHNESS, "No");
addToValidChildren(QString("ParticleLayout"), PortInfo::Port0, 1);
}
......
......@@ -254,6 +254,14 @@
</property>
</widget>
</categoryentry>
<categoryentry name="Example #5 (correlated roughness)" icon="images/sample_layers2.png">
<widget class="example05">
<property name="objectName">
<string notr="true">somestring</string>
</property>
</widget>
</categoryentry>
</category>
......
......@@ -241,9 +241,9 @@ void MainWindow::initSampleModel()
//m_sampleModel->save("sample.xml");
ParameterizedItem *multilayer = m_sampleModel->insertNewItem("MultiLayer");
multilayer->setItemName("MultiLayer1");
m_sampleModel->insertNewItem("Layer");
// ParameterizedItem *multilayer = m_sampleModel->insertNewItem("MultiLayer");
// multilayer->setItemName("MultiLayer1");
// m_sampleModel->insertNewItem("Layer");
// ParameterizedItem *layer = m_sampleModel->insertNewItem("Layer", m_sampleModel->indexOfItem(multilayer));
// layer->setMaterialProperty(MaterialEditor::getMaterialProperty("Air"));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment