Skip to content
Snippets Groups Projects
Commit ca559fcd authored by Matthias Puchner's avatar Matthias Puchner
Browse files

ensure correct layer-thickness when creating sample (GUI->domain)

parent 5c29d564
No related branches found
No related tags found
1 merge request!532Reduce SessionItem signaling
......@@ -26,7 +26,8 @@ GUI::Model::DomainObjectBuilder::buildMultiLayer(const MultiLayerItem& item)
{
auto P_multilayer = GUI::Transform::ToDomain::createMultiLayer(item);
for (auto* layerItem : item.layers()) {
auto P_layer = buildLayer(*layerItem);
const bool isFirstOrLastLayer = layerItem == item.layers().first() || item.layers().last();
auto P_layer = buildLayer(*layerItem, isFirstOrLastLayer);
const auto roughness = layerItem->roughness().currentItem();
auto P_roughness = GUI::Transform::ToDomain::createLayerRoughness(roughness);
if (P_layer) {
......@@ -39,9 +40,10 @@ GUI::Model::DomainObjectBuilder::buildMultiLayer(const MultiLayerItem& item)
return P_multilayer;
}
std::unique_ptr<Layer> GUI::Model::DomainObjectBuilder::buildLayer(const LayerItem& item)
std::unique_ptr<Layer> GUI::Model::DomainObjectBuilder::buildLayer(const LayerItem& item,
bool isFirstOrLastLayer)
{
auto P_layer = GUI::Transform::ToDomain::createLayer(item);
auto P_layer = GUI::Transform::ToDomain::createLayer(item, isFirstOrLastLayer);
for (ParticleLayoutItem* layout : item.layouts()) {
auto P_layout = buildParticleLayout(*layout);
if (P_layout)
......
......@@ -32,7 +32,7 @@ class ICoordSystem;
namespace GUI::Model::DomainObjectBuilder {
std::unique_ptr<MultiLayer> buildMultiLayer(const MultiLayerItem& item);
std::unique_ptr<Layer> buildLayer(const LayerItem& item);
std::unique_ptr<Layer> buildLayer(const LayerItem& item, bool isFirstOrLastLayer);
std::unique_ptr<ParticleLayout> buildParticleLayout(const ParticleLayoutItem& item);
} // namespace GUI::Model::DomainObjectBuilder
......
......@@ -39,10 +39,11 @@ std::unique_ptr<MultiLayer> GUI::Transform::ToDomain::createMultiLayer(const Mul
return P_multilayer;
}
std::unique_ptr<Layer> GUI::Transform::ToDomain::createLayer(const LayerItem& item)
std::unique_ptr<Layer> GUI::Transform::ToDomain::createLayer(const LayerItem& item,
bool isFirstOrLastLayer)
{
auto P_layer =
std::make_unique<Layer>(*item.materialItem()->createMaterial(), item.thickness());
auto P_layer = std::make_unique<Layer>(*item.materialItem()->createMaterial(),
isFirstOrLastLayer ? 0.0 : item.thickness());
P_layer->setNumberOfSlices(item.numSlices());
return P_layer;
}
......
......@@ -37,7 +37,7 @@ class LayerBasicRoughnessItem;
namespace GUI::Transform::ToDomain {
std::unique_ptr<IParticle> createIParticle(const SessionItem& item);
std::unique_ptr<Layer> createLayer(const LayerItem& item);
std::unique_ptr<Layer> createLayer(const LayerItem& item, bool isFirstOrLastLayer);
std::unique_ptr<LayerRoughness> createLayerRoughness(
const std::variant<LayerZeroRoughnessItem*, LayerBasicRoughnessItem*>& roughness);
std::unique_ptr<MultiLayer> createMultiLayer(const MultiLayerItem& item);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment