From 12a0f16b461fb633a28a68d7d159e2e3b5f63a2e Mon Sep 17 00:00:00 2001 From: rinkk <karsten.rink@ufz.de> Date: Fri, 28 Jun 2019 12:34:27 +0200 Subject: [PATCH] adding T-Surface reader to data explorer --- .../DataExplorer/Base/ImportFileTypes.h | 5 ++++ Applications/DataExplorer/mainwindow.cpp | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/Applications/DataExplorer/Base/ImportFileTypes.h b/Applications/DataExplorer/Base/ImportFileTypes.h index d5cad3909bf..6447b9f0ecd 100644 --- a/Applications/DataExplorer/Base/ImportFileTypes.h +++ b/Applications/DataExplorer/Base/ImportFileTypes.h @@ -31,6 +31,7 @@ public: FEFLOW, GMS, GMSH, + GOCAD_TSURF, #ifdef OGS_USE_NETCDF NETCDF, #endif // OGS_USE_NETCDF @@ -50,6 +51,8 @@ public: return "GMS"; if (t == ImportFileType::GMSH) return "GMSH"; + if (t == ImportFileType::GOCAD_TSURF) + return "Gocad TSurface"; #ifdef OGS_USE_NETCDF if (t == ImportFileType::NETCDF) return "NetCDF"; @@ -84,6 +87,8 @@ public: return "GMS files (*.txt *.3dm)"; if (t == ImportFileType::GMSH) return "GMSH mesh files (*.msh)"; + if (t == ImportFileType::GOCAD_TSURF) + return "Gocad TSurface files (*.ts)"; #ifdef OGS_USE_NETCDF if (t == ImportFileType::NETCDF) return "NetCDF files (*.nc)"; diff --git a/Applications/DataExplorer/mainwindow.cpp b/Applications/DataExplorer/mainwindow.cpp index 96e832f8475..7bacbe337c7 100644 --- a/Applications/DataExplorer/mainwindow.cpp +++ b/Applications/DataExplorer/mainwindow.cpp @@ -39,6 +39,7 @@ #include "Applications/FileIO/GMSInterface.h" #include "Applications/FileIO/Gmsh/GMSHInterface.h" #include "Applications/FileIO/Gmsh/GmshReader.h" +#include "Applications/FileIO/GocadIO/GocadTSurfaceReader.h" #include "Applications/FileIO/Legacy/OGSIOVer4.h" #include "Applications/FileIO/PetrelInterface.h" #include "Applications/FileIO/TetGenInterface.h" @@ -611,6 +612,26 @@ void MainWindow::loadFile(ImportFileType::type t, const QString &fileName) } settings.setValue("lastOpenedFileDirectory", dir.absolutePath()); } + else if (t == ImportFileType::GOCAD_TSURF) + { + std::string file_name(fileName.toStdString()); + FileIO::Gocad::GocadTSurfaceReader gcts (file_name); + if (gcts.readFile()) + { + std::vector<MeshLib::Mesh*> meshes = gcts.getData(); + for (MeshLib::Mesh* m : meshes) + { + std::unique_ptr<MeshLib::Mesh> mesh(m); + if (mesh != nullptr) + _meshModel->addMesh(std::move(mesh)); + } + } + else + { + OGSError::box("Error reading file."); + } + settings.setValue("lastOpenedFileDirectory", dir.absolutePath()); + } #ifdef OGS_USE_NETCDF else if (t == ImportFileType::NETCDF) // CH 01.2012 { @@ -751,6 +772,9 @@ QMenu* MainWindow::createImportFilesMenu() QAction* gmshFiles = importFiles->addAction("&GMSH Files..."); connect(gmshFiles, SIGNAL(triggered()), signal_mapper, SLOT(map())); signal_mapper->setMapping(gmshFiles, ImportFileType::GMSH); + QAction* gocadTsFiles = importFiles->addAction("&Gocad TSurface..."); + connect(gocadTsFiles, SIGNAL(triggered()), signal_mapper, SLOT(map())); + signal_mapper->setMapping(gocadTsFiles, ImportFileType::GOCAD_TSURF); #ifdef OGS_USE_NETCDF QAction* netcdfFiles = importFiles->addAction("&NetCDF Files..."); connect(netcdfFiles, SIGNAL(triggered()), signal_mapper, SLOT(map())); -- GitLab