From 5fe0d98fd5642f527ec83dbd81367d5eae994df3 Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Tue, 18 Dec 2012 13:03:56 +0100
Subject: [PATCH] Using GeoLib::Raster instead of VtkRaster in
 DirectConditionGenerator.

---
 Gui/DataView/DirectConditionGenerator.cpp | 33 ++++++++++++++---------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/Gui/DataView/DirectConditionGenerator.cpp b/Gui/DataView/DirectConditionGenerator.cpp
index b7d8db059dc..6ea12fee1e0 100644
--- a/Gui/DataView/DirectConditionGenerator.cpp
+++ b/Gui/DataView/DirectConditionGenerator.cpp
@@ -9,9 +9,14 @@
  * Created on 2012-01-04 by Karsten Rink
  */
 
+#include <fstream>
+
+// ThirdParty/logog
+#include "logog/include/logog.hpp"
+
 #include "DirectConditionGenerator.h"
 
-#include "VtkRaster.h"
+#include "Raster.h"
 #include "MshEditor.h"
 #include "PointWithID.h"
 #include "Mesh.h"
@@ -23,18 +28,21 @@ const std::vector< std::pair<size_t,double> >& DirectConditionGenerator::directT
 {
 	if (_direct_values.empty())
 	{
-		double origin_x(0), origin_y(0), delta(0), no_data(-9999);
-		unsigned imgwidth(0), imgheight(0);
-
-		double* img = VtkRaster::loadDataFromASC(filename, origin_x, origin_y, imgwidth, imgheight, delta, no_data);
-		if (img == 0)
-		{
-			std::cout << "Error in DirectConditionGenerator::directWithSurfaceIntegration() - could not load vtk raster." << std::endl;
+		GeoLib::Raster* raster(GeoLib::Raster::getRasterFromASCFile(filename));
+		if (! raster) {
+			ERR("Error in DirectConditionGenerator::directWithSurfaceIntegration() - could not load vtk raster.");
 			return _direct_values;
-			}
+		}
+
+		double origin_x(raster->getOrigin()[0]);
+		double origin_y(raster->getOrigin()[1]);
+		double delta(raster->getRasterPixelDistance());
+		double no_data(raster->getNoDataValue());
+		unsigned imgwidth(raster->getNCols()), imgheight(raster->getNRows());
+		double const*const img(raster->begin());
 
 		const double dir[3] = {0,0,1};
-		const std::vector<GeoLib::PointWithID*> surface_nodes ( MeshLib::MshEditor::getSurfaceNodes(mesh, dir) );
+		const std::vector<GeoLib::PointWithID*> surface_nodes(MeshLib::MshEditor::getSurfaceNodes(mesh, dir) );
 		//std::vector<MeshLib::CNode*> nodes = mesh.nod_vector;
 		const size_t nNodes(surface_nodes.size());
 		_direct_values.reserve(nNodes);
@@ -57,11 +65,10 @@ const std::vector< std::pair<size_t,double> >& DirectConditionGenerator::directT
 			}
 		}
 
-		delete[] img;
-
+		delete raster;
 	}
 	else
-		std::cout << "Error in DirectConditionGenerator::directToSurfaceNodes() - Data vector contains outdated values..." << std::endl;
+		ERR("Error in DirectConditionGenerator::directToSurfaceNodes() - Data vector contains outdated values.");
 
 	return _direct_values;
 }
-- 
GitLab