From 2ac45d0085f6d1315a8dc16fe471c70096ccc770 Mon Sep 17 00:00:00 2001
From: Karsten Rink <karsten.rink@ufz.de>
Date: Thu, 18 Sep 2014 15:37:31 +0200
Subject: [PATCH] adjusted layer mapping dialogue

---
 Gui/DataView/MeshLayerEditDialog.cpp | 30 +++++++++-------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

diff --git a/Gui/DataView/MeshLayerEditDialog.cpp b/Gui/DataView/MeshLayerEditDialog.cpp
index c6d79d92f61..5f7b9461f18 100644
--- a/Gui/DataView/MeshLayerEditDialog.cpp
+++ b/Gui/DataView/MeshLayerEditDialog.cpp
@@ -106,12 +106,12 @@ void MeshLayerEditDialog::createWithRasters()
 	this->_layerBox = new QGroupBox(this);
 	this->_layerBox->setTitle(selectText);
 
-	for (unsigned i = 0; i <= _n_layers+1; ++i)
+	for (unsigned i = 0; i <= _n_layers; ++i)
 	{
 		QString text("");
 		if (i==0) text = "Surface";
-		else if (i>_n_layers) text = "Layer" + QString::number(_n_layers) + "-Bottom";
-		else text="Layer" + QString::number(i) + "-Top";
+		else if (i == _n_layers) text = "Layer" + QString::number(_n_layers) + "-Bottom";
+		else text="Layer" + QString::number(i+1) + "-Top";
 		QLineEdit* edit (new QLineEdit(this));
 		QPushButton* button (new QPushButton("...", _layerBox));
 
@@ -193,22 +193,10 @@ MeshLib::Mesh* MeshLayerEditDialog::createPrismMesh()
 
 	if (_use_rasters)
 	{
-		for (unsigned i=0; i<=nLayers; ++i)
-		{
-			const std::string imgPath ( this->_edits[i+1]->text().toStdString() );
-			const double noDataReplacement = (i==0) ? 0.0 : -9999.0;
-			if (!mapper.layerMapping(*new_mesh, imgPath, nLayers, i, noDataReplacement))
-			{
-				delete new_mesh;
-				return nullptr;
-			}
-		}
-		if (this->_edits[0]->text().length()>0)
-		{
-			MeshLib::Mesh* final_mesh = mapper.blendLayersWithSurface(*new_mesh, nLayers, this->_edits[0]->text().toStdString());
-			delete new_mesh;
-			new_mesh = final_mesh;
-		}
+        std::vector<std::string> raster_paths;
+		for (int i=nLayers; i>=0; --i)
+            raster_paths.push_back(this->_edits[i]->text().toStdString());
+        new_mesh = mapper.createRasterLayers(*_msh, raster_paths);
 	}
 	return new_mesh;
 }
@@ -228,7 +216,7 @@ MeshLib::Mesh* MeshLayerEditDialog::createTetMesh()
 	{
 		std::vector<std::string> raster_paths(nLayers+1);
 		for (int i=nLayers; i>=0; --i)
-			raster_paths[i] = this->_edits[i+1]->text().toStdString();
+			raster_paths[i] = this->_edits[i]->text().toStdString();
 		LayeredVolume lv;
 		lv.createGeoVolumes(*_msh, raster_paths);
 
@@ -294,7 +282,7 @@ void MeshLayerEditDialog::accept()
 		const std::string imgPath ( this->_edits[0]->text().toStdString() );
 		const double noDataReplacementValue = this->_noDataReplacementEdit->text().toDouble();
         MeshLayerMapper const mapper;
-		if (!mapper.layerMapping(*new_mesh, imgPath, nLayers, 0, noDataReplacementValue))
+		if (!mapper.layerMapping(*new_mesh, imgPath, noDataReplacementValue))
 		{
 			delete new_mesh;
 			return;
-- 
GitLab