From a23e1b0daf9aba788275accff0243565b668de50 Mon Sep 17 00:00:00 2001 From: GERALD NICOLAS Date: Thu, 11 Feb 2021 08:43:57 +0100 Subject: [PATCH] MEDcoupling pour la dimension du maillage --- src/SMESHGUI/MG_ADAPTGUI.cxx | 71 ++++++++++++++++-------------------- src/SMESHGUI/MG_ADAPTGUI.hxx | 3 +- 2 files changed, 32 insertions(+), 42 deletions(-) diff --git a/src/SMESHGUI/MG_ADAPTGUI.cxx b/src/SMESHGUI/MG_ADAPTGUI.cxx index c1df37aa7..9fae60140 100644 --- a/src/SMESHGUI/MG_ADAPTGUI.cxx +++ b/src/SMESHGUI/MG_ADAPTGUI.cxx @@ -1259,65 +1259,54 @@ void MgAdaptAdvWidgetTreeWidget::keyPressEvent( QKeyEvent* e ) QTreeWidget::keyPressEvent( e ); } - -// ======================================================================= -// renvoie le medId associe au fichier Med apres ouverture -// ======================================================================= -med_idt OuvrirFichier(QString aFile) -{ - med_idt medIdt = MEDfileOpen(aFile.toStdString().c_str(),MED_ACC_RDONLY); - if (medIdt <0) - { - QMessageBox::critical( 0, QObject::tr("MG_ADAPT_ERROR"), - QObject::tr("MG_ADAPT_MED_FILE_1") ); - } - return medIdt; -} - // ====================================================== // ======================================================== QString lireNomMaillage(QString aFile, med_int& meshdim) { QString nomMaillage = QString::null ; - std::vector listMeshesNames = MEDCoupling::GetMeshNames(aFile.toStdString()); - - std::size_t numberOfMeshes(listMeshesNames.size()); -// std::cout << "numberOfMeshes:" << numberOfMeshes << std::endl; - if (numberOfMeshes == 0 ) - { - QMessageBox::critical( 0, QObject::tr("MG_ADAPT_ERROR"), - QObject::tr("MG_ADAPT_MED_FILE_2") ); - return nomMaillage; - } - if (numberOfMeshes > 1 ) + while ( true ) { - QMessageBox::critical( 0, QObject::tr("MG_ADAPT_ERROR"), - QObject::tr("MG_ADAPT_MED_FILE_3") ); - return nomMaillage; - } + std::vector listMeshesNames = MEDCoupling::GetMeshNames(aFile.toStdString()); + + std::size_t numberOfMeshes(listMeshesNames.size()); + // std::cout << "numberOfMeshes:" << numberOfMeshes << std::endl; + if (numberOfMeshes == 0 ) + { + QMessageBox::critical( 0, QObject::tr("MG_ADAPT_ERROR"), + QObject::tr("MG_ADAPT_MED_FILE_2") ); + break ; + } + if (numberOfMeshes > 1 ) + { + QMessageBox::critical( 0, QObject::tr("MG_ADAPT_ERROR"), + QObject::tr("MG_ADAPT_MED_FILE_3") ); + break ; + } + +// std::cout << "nomMaillage:" << listMeshesNames[0] << std::endl; + nomMaillage = QString(listMeshesNames[0].c_str()); + + // Dimension du maillage + MEDCoupling::MCAuto mfd = MEDCoupling::MEDFileData::New(aFile.toStdString()); + meshdim = mfd->getMeshes()->getMeshAtPos(0)->getMeshDimension() ; +// std::cout << "meshdim:" << meshdim << std::endl; -// std::cout << "numberOfMeshes:" << numberOfMeshes << std::endl; - std::cout << "nomMaillage:" << listMeshesNames[0] << std::endl; - nomMaillage = QString(listMeshesNames[0].c_str()); + break ; + } return nomMaillage; } -// ======================================================================= - // ======================================================================= std::map GetListeChamps(QString aFile, bool errorMessage) // ======================================================================= { // Il faut voir si plusieurs maillages - MESSAGE("GetListeChamps"); std::map ListeChamp ; - med_err erreur = 0 ; - - while ( erreur == 0 ) + while ( true ) { MEDCoupling::MCAuto mfd = MEDCoupling::MEDFileData::New(aFile.toStdString()); std::vector listFieldsNames(mfd->getFields()->getFieldsNames()); @@ -1329,9 +1318,9 @@ std::map GetListeChamps(QString aFile, bool errorMessage) QMessageBox::critical( 0, QObject::tr("_ERROR"), QObject::tr("HOM_MED_FILE_5") ); } - erreur = 2 ; break ; } + // nbofcstp inutile pour le moment med_int nbofcstp = 1; for(std::size_t j=0;j GetListeChamps(QString aFile, bool errorMessage) return ListeChamp; } +// ======================================================================= std::string remove_extension(const std::string& filename) +// ======================================================================= { size_t lastdot = filename.find_last_of("."); if (lastdot == std::string::npos) return filename; diff --git a/src/SMESHGUI/MG_ADAPTGUI.hxx b/src/SMESHGUI/MG_ADAPTGUI.hxx index 7be0fdbc4..3204a11af 100644 --- a/src/SMESHGUI/MG_ADAPTGUI.hxx +++ b/src/SMESHGUI/MG_ADAPTGUI.hxx @@ -99,9 +99,8 @@ class QFileDialog; std::map GetListeChamps(QString aFile, bool errorMessage = true); QString lireNomMaillage(QString aFile, med_int& meshDim); -med_idt OuvrirFichier(QString aFile); -std::string remove_extension(const std::string& filename); +std::string remove_extension(const std::string& filename); enum ADAPTATION_MODE{ SURFACE, // surface adaption when meshDim == 2 -- 2.30.2