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