From: YOANN AUDOUIN Date: Thu, 21 Dec 2023 10:45:13 +0000 (+0100) Subject: Adding verbosity control for gmsh X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=26e4e307936db319b8605b8c5281cab81724fb42;p=plugins%2Fgmshplugin.git Adding verbosity control for gmsh --- diff --git a/idl/GMSHPlugin_Algorithm.idl b/idl/GMSHPlugin_Algorithm.idl index 902391d..cf0b5c3 100644 --- a/idl/GMSHPlugin_Algorithm.idl +++ b/idl/GMSHPlugin_Algorithm.idl @@ -52,7 +52,7 @@ module GMSHPlugin interface GMSHPlugin_GMSH_2D : SMESH::SMESH_2D_Algo { }; - + /*! * GMSHPlugin_Hypothesis: interface of "GMSH parameters" hypothesis */ @@ -60,34 +60,34 @@ module GMSHPlugin { void Set2DAlgo(in long value); long Get2DAlgo(); - + void Set3DAlgo(in long value); long Get3DAlgo(); - + void SetRecomb2DAlgo(in long value); long GetRecomb2DAlgo(); - + void SetRecombineAll(in boolean value); boolean GetRecombineAll(); - + void SetSubdivAlgo(in long value); long GetSubdivAlgo(); - + void SetRemeshAlgo(in long value); long GetRemeshAlgo(); - + void SetRemeshPara(in long value); long GetRemeshPara(); - + void SetSmouthSteps(in double value); double GetSmouthSteps(); - + void SetSizeFactor(in double value); double GetSizeFactor(); void SetMeshCurvatureSize(in double value); double GetMeshCurvatureSize(); - + void SetMaxSize(in double value); double GetMaxSize(); @@ -96,18 +96,21 @@ module GMSHPlugin void SetSecondOrder(in boolean value); boolean GetSecondOrder(); - + void SetUseIncomplElem(in boolean value); boolean GetUseIncomplElem(); - + void SetIs2d(in boolean value); - + + void SetVerbosityLevel(in long value); + long GetVerbosityLevel(); + void SetCompoundOnShape(in GEOM::GEOM_Object GeomObj); void SetCompoundOnEntry(in string entry); void UnsetCompoundOnShape(in GEOM::GEOM_Object GeomObj); void UnsetCompoundOnEntry(in string entry); string_array GetCompoundOnEntries(); - + }; /*! diff --git a/src/GMSHPlugin/GMSHPlugin_Hypothesis.cxx b/src/GMSHPlugin/GMSHPlugin_Hypothesis.cxx index 19cacb8..7e99d35 100644 --- a/src/GMSHPlugin/GMSHPlugin_Hypothesis.cxx +++ b/src/GMSHPlugin/GMSHPlugin_Hypothesis.cxx @@ -50,7 +50,8 @@ GMSHPlugin_Hypothesis::GMSHPlugin_Hypothesis (int hypId, _minSize (0), _maxSize (1e22), _secondOrder (false), - _useIncomplElem (true) + _useIncomplElem (true), + _verbLvl(status) { _name = "GMSH_Parameters"; _param_algo_dim = 3; @@ -189,6 +190,11 @@ void GMSHPlugin_Hypothesis::SetIs2d(bool theIs2d) _is2d = theIs2d; } +void GMSHPlugin_Hypothesis::SetVerbosityLevel(Verbosity theLevel) +{ + _verbLvl = theLevel; +} + void GMSHPlugin_Hypothesis::SetCompoundOnEntry(const std::string& entry) { diff --git a/src/GMSHPlugin/GMSHPlugin_Hypothesis.hxx b/src/GMSHPlugin/GMSHPlugin_Hypothesis.hxx index 5ef390c..42562d6 100644 --- a/src/GMSHPlugin/GMSHPlugin_Hypothesis.hxx +++ b/src/GMSHPlugin/GMSHPlugin_Hypothesis.hxx @@ -87,7 +87,7 @@ public: void SetRecomb2DAlgo(Recomb2DAlgo theRecomb2DAlgo); Recomb2DAlgo GetRecomb2DAlgo() const { return _recomb2DAlgo; } - + void SetRecombineAll(bool theRecombineAll); bool GetRecombineAll() const { return _recombineAll; } @@ -97,7 +97,7 @@ public: allquads, allhexas }; - + void SetSubdivAlgo(SubdivAlgo theSubdivAlgo); SubdivAlgo GetSubdivAlgo() const { return _subdivAlgo; } @@ -107,7 +107,7 @@ public: automaticR, automaticmetis }; - + void SetRemeshAlgo(RemeshAlgo theRemeshAlgo); RemeshAlgo GetRemeshAlgo() const { return _remeshAlgo; } @@ -117,16 +117,16 @@ public: conformal, rbfharmonic }; - + void SetRemeshPara(RemeshPara theRemeshPara); RemeshPara GetRemeshPara() const { return _remeshPara; } - + void SetSmouthSteps(double theSmouthSteps); double GetSmouthSteps() const { return _smouthSteps; } - + void SetSizeFactor(double theSizeFactor); double GetSizeFactor() const { return _sizeFactor; } - + void SetUseIncomplElem(bool theUseIncomplElem); bool GetUseIncomplElem() const { return _useIncomplElem; } @@ -134,10 +134,10 @@ public: void SetMeshCurvatureSize(double theMeshCurvatureSize); double GetMeshCurvatureSize() const { return _meshCurvatureSize; } #endif - + void SetMaxSize(double theSize); double GetMaxSize() const { return _maxSize; } - + void SetMinSize(double theSize); double GetMinSize() const { return _minSize; } @@ -146,12 +146,33 @@ public: void SetIs2d(bool theIs2d); bool GetIs2d() const { return _is2d; } - + + // Verbosity info: + // 0: silent except for fatal errors + // 1: +errors + // 2: +warnings + // 3: +direct + // 4: +information + // 5: +status + // 99: +debug + enum Verbosity + { + silent, + errors, + warnings, + direct, + information, + status, + debug + }; + void SetVerbosityLevel(Verbosity theLevel); + Verbosity GetVerbosityLevel() const { return _verbLvl; } + typedef std::set TCompound; void SetCompoundOnEntry(const std::string& entry); const TCompound& GetCompoundOnEntries() const { return _compounds; } void UnsetCompoundOnEntry(const std::string& entry); - + // Persistence virtual std::ostream & SaveTo(std::ostream & save); virtual std::istream & LoadFrom(std::istream & load); @@ -186,6 +207,7 @@ private: double _minSize, _maxSize; bool _secondOrder, _useIncomplElem; bool _is2d; + Verbosity _verbLvl; TCompound _compounds; }; diff --git a/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.cxx b/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.cxx index 036fdc9..c311fe7 100644 --- a/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.cxx +++ b/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.cxx @@ -39,7 +39,7 @@ bool GMSHPlugin_Hypothesis_i::isToSetParameter(double curValue, GMSHPlugin_Hypothesis_i:: GMSHPlugin_Hypothesis_i (PortableServer::POA_ptr thePOA, ::SMESH_Gen* theGenImpl) - : SALOME::GenericObj_i( thePOA ), + : SALOME::GenericObj_i( thePOA ), SMESH_Hypothesis_i( thePOA ), mySetMethodFlags(0) { @@ -200,7 +200,7 @@ void GMSHPlugin_Hypothesis_i::SetRemeshPara (CORBA::Long theValue) if ( isToSetParameter( GetRemeshPara(), theValue, METH_SetRemeshPara )) { this->GetImpl()->SetRemeshPara((::GMSHPlugin_Hypothesis::RemeshPara)theValue); - SMESH::TPythonDump() << _this() << ".SetRemeshAlgo( " << theValue << " )"; + SMESH::TPythonDump() << _this() << ".SetRemeshPara( " << theValue << " )"; } } @@ -257,6 +257,20 @@ void GMSHPlugin_Hypothesis_i::SetIs2d (CORBA::Boolean theValue) SMESH::TPythonDump() << _this() << ".SetIs2d( " << theValue << " )"; } +void GMSHPlugin_Hypothesis_i::SetVerbosityLevel (CORBA::Long theValue) +{ + if ( isToSetParameter( GetVerbosityLevel(), theValue, METH_SetVerbosityLevel )) + { + this->GetImpl()->SetVerbosityLevel((::GMSHPlugin_Hypothesis::Verbosity)theValue); + SMESH::TPythonDump() << _this() << ".SetVerbosityLevel( " << theValue << " )"; + } +} + +CORBA::Long GMSHPlugin_Hypothesis_i::GetVerbosityLevel() +{ + return this->GetImpl()->GetVerbosityLevel(); +} + void GMSHPlugin_Hypothesis_i::SetCompoundOnShape(GEOM::GEOM_Object_ptr GeomObj) { string entry; @@ -309,13 +323,13 @@ void GMSHPlugin_Hypothesis_i::UnsetCompoundOnEntry(const char* entry) //================================================================================ /*! - * \brief Verify whether hypothesis supports given entity type + * \brief Verify whether hypothesis supports given entity type * \param type - dimension (see SMESH::Dimension enumeration) * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise - * + * * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration) */ -//================================================================================ +//================================================================================ CORBA::Boolean GMSHPlugin_Hypothesis_i::IsDimSupported( SMESH::Dimension type ) { return type == SMESH::DIM_3D; diff --git a/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.hxx b/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.hxx index bd9ebb7..783626f 100644 --- a/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.hxx +++ b/src/GMSHPlugin/GMSHPlugin_Hypothesis_i.hxx @@ -44,20 +44,20 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Hypothesis_i: ::SMESH_Gen* theGenImpl); // Destructor virtual ~GMSHPlugin_Hypothesis_i(); - + // Ajout d'un truc void SetMeshCurvatureSize(CORBA::Double theMeshCurvatureSize); CORBA::Double GetMeshCurvatureSize(); - + void SetMaxSize(CORBA::Double theSize); CORBA::Double GetMaxSize(); - + void SetMinSize(CORBA::Double theSize); CORBA::Double GetMinSize(); - + void SetSecondOrder(CORBA::Boolean theVal); CORBA::Boolean GetSecondOrder(); - + void Set2DAlgo(CORBA::Long the2DAlgo); CORBA::Long Get2DAlgo(); void Set3DAlgo(CORBA::Long the3DAlgo); @@ -79,13 +79,15 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Hypothesis_i: void SetUseIncomplElem(CORBA::Boolean theUseIncomplElem); CORBA::Boolean GetUseIncomplElem(); void SetIs2d(CORBA::Boolean theIs2d); - + void SetVerbosityLevel(CORBA::Long theVerbLvl); + CORBA::Long GetVerbosityLevel(); + void SetCompoundOnShape(GEOM::GEOM_Object_ptr GeomObj); void SetCompoundOnEntry(const char* entry); void UnsetCompoundOnShape(GEOM::GEOM_Object_ptr GeomObj); void UnsetCompoundOnEntry(const char* entry); GMSHPlugin::string_array* GetCompoundOnEntries(); - + // fin d'ajout void SetGrowthRate(CORBA::Double theRate); @@ -101,13 +103,13 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Hypothesis_i: // void SetLocalSizeOnEntry(const char* entry, CORBA::Double localSize); // CORBA::Double GetLocalSizeOnEntry(const char* entry); // GMSHPlugin::string_array* GetLocalSizeEntries(); - + void UnsetLocalSizeOnEntry(const char* entry); // Get implementation ::GMSHPlugin_Hypothesis* GetImpl(); - - // Verify whether hypothesis supports given entity type + + // Verify whether hypothesis supports given entity type CORBA::Boolean IsDimSupported( SMESH::Dimension type ); protected: @@ -138,6 +140,7 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Hypothesis_i: METH_SetSizeFactor = 308, METH_SetUseIncomplElem = 309, METH_SetIs2d = 310, + METH_SetVerbosityLevel = 311, // fin d'ajout METH_LAST = METH_SetLocalSizeOnEntry }; diff --git a/src/GMSHPlugin/GMSHPlugin_Mesher.cxx b/src/GMSHPlugin/GMSHPlugin_Mesher.cxx index 8e8552e..b51ed77 100644 --- a/src/GMSHPlugin/GMSHPlugin_Mesher.cxx +++ b/src/GMSHPlugin/GMSHPlugin_Mesher.cxx @@ -192,7 +192,11 @@ void GMSHPlugin_Mesher::SetParameters(const GMSHPlugin_Hypothesis* hyp) _maxSize = hyp->GetMaxSize(); _secondOrder = hyp->GetSecondOrder(); _useIncomplElem = hyp->GetUseIncomplElem(); + _verbLvl = hyp->GetVerbosityLevel(); _compounds = hyp->GetCompoundOnEntries(); + // 6 in the enum corresponds to 99 in gmsh + if(_verbLvl == 6) + _verbLvl = 99; } else { @@ -315,7 +319,7 @@ void GMSHPlugin_Mesher::FillGMSHMesh() for (auto const& ls : listElements) { // Add nodes of triangles and triangles them-selves to netgen mesh - // add three nodes of + // add three nodes of bool hasDegen = false; for (int iN = 0; iN < 3; ++iN) { @@ -341,7 +345,7 @@ void GMSHPlugin_Mesher::FillGMSHMesh() if (hasDegen && (aTrinagle[0] == aTrinagle[1] || aTrinagle[0] == aTrinagle[2] || aTrinagle[2] == aTrinagle[1])) - continue; + continue; std::vector LinesID(3, 0); @@ -464,6 +468,9 @@ void GMSHPlugin_Mesher::SetGmshOptions() ASSERT(ok); } + ok = GmshSetOption("General", "Verbosity" , (double) _verbLvl ) ; // Verbosity level + ASSERT(ok); + #if GMSH_MAJOR_VERSION >=4 && GMSH_MINOR_VERSION >=8 /*ok = GmshSetOption("Mesh", "MaxNumThreads1D" , 0. ) ; // Coarse-grain algo threads ASSERT(ok); @@ -748,10 +755,10 @@ void GMSHPlugin_Mesher::FillSMesh() Standard_Real p1 = 1.0; TopLoc_Location loc; Handle(Geom_Curve) curve = BRep_Tool::Curve(topoEdge, loc, p0, p1); - + if ( !curve.IsNull() ) { - if ( !loc.IsIdentity() ) + if ( !loc.IsIdentity() ) point3D.Transform( loc.Transformation().Inverted() ); GeomAPI_ProjectPointOnCurve proj(point3D, curve, p0, p1); @@ -760,12 +767,12 @@ void GMSHPlugin_Mesher::FillSMesh() if ( proj.NbPoints() > 0 ) pa = (double)proj.LowerDistanceParameter(); - meshDS->SetNodeOnEdge( node, topoEdge, pa ); + meshDS->SetNodeOnEdge( node, topoEdge, pa ); } else - { + { meshDS->SetNodeOnEdge( node, topoEdge ); - } + } //END on BLSURFPlugin_BLSURF @@ -803,16 +810,16 @@ void GMSHPlugin_Mesher::FillSMesh() if ( verts[j]->onWhat()->getVisibility() == 0 ) { SMDS_MeshNode *node = meshDS->AddNode(verts[j]->x(),verts[j]->y(),verts[j]->z() ); - + gp_Pnt point3D( verts[j]->x(),verts[j]->y(),verts[j]->z() ); Standard_Real p0 = 0.0; Standard_Real p1 = 1.0; TopLoc_Location loc; Handle(Geom_Curve) curve = BRep_Tool::Curve(topoEdge, loc, p0, p1); - + if ( !curve.IsNull() ) { - if ( !loc.IsIdentity() ) + if ( !loc.IsIdentity() ) point3D.Transform( loc.Transformation().Inverted() ); GeomAPI_ProjectPointOnCurve proj(point3D, curve, p0, p1); @@ -821,13 +828,13 @@ void GMSHPlugin_Mesher::FillSMesh() if ( proj.NbPoints() > 0 ) pa = (double)proj.LowerDistanceParameter(); - meshDS->SetNodeOnEdge( node, topoEdge, pa ); + meshDS->SetNodeOnEdge( node, topoEdge, pa ); } else - { + { meshDS->SetNodeOnEdge( node, topoEdge ); - } - + } + verts[j]->setEntity(gEdge); _nodeMap.insert({ verts[j], node }); } @@ -1339,7 +1346,6 @@ bool GMSHPlugin_Mesher::Compute() } else { - //Msg::SetVerbosity(100); //CTX::instance()->mesh.maxNumThreads1D=1; _gModel->mesh( /*dim=*/ 1); @@ -1414,7 +1420,7 @@ void GMSHPlugin_Mesher::Set1DSubMeshes( GModel* gModel ) if ( gEdge->geomType() == GEntity::CompoundCurve ) #endif continue; - + TopoDS_Edge topoEdge = *((TopoDS_Edge*)gEdge->getNativePtr()); if ( !HasSubMesh( topoEdge )) continue; // empty sub-mesh diff --git a/src/GMSHPlugin/GMSHPlugin_Mesher.hxx b/src/GMSHPlugin/GMSHPlugin_Mesher.hxx index 22912e7..062b318 100644 --- a/src/GMSHPlugin/GMSHPlugin_Mesher.hxx +++ b/src/GMSHPlugin/GMSHPlugin_Mesher.hxx @@ -96,6 +96,7 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Mesher bool _secondOrder, _useIncomplElem; bool _is2d; bool _is3d; + int _verbLvl; GModel* _gModel; #if GMSH_MAJOR_VERSION >=4 && GMSH_MINOR_VERSION >=3 double _maxThreads; diff --git a/src/GUI/GMSHPluginGUI_HypothesisCreator.cxx b/src/GUI/GMSHPluginGUI_HypothesisCreator.cxx index a8e39a1..bfe5247 100644 --- a/src/GUI/GMSHPluginGUI_HypothesisCreator.cxx +++ b/src/GUI/GMSHPluginGUI_HypothesisCreator.cxx @@ -107,6 +107,17 @@ enum RemeshPara rbfharmonic }; +enum VerbLvl + { + silent, + errors, + warnings, + direct, + information, + status, + debug + }; + GMSHPluginGUI_HypothesisCreator::GMSHPluginGUI_HypothesisCreator( const QString& theHypType ) : SMESHGUI_GenericHypothesisCreator( theHypType ) @@ -217,7 +228,7 @@ QFrame* GMSHPluginGUI_HypothesisCreator::buildFrame() row++; mySubdivAlgo = 0; - + aGroupLayout->addWidget(new QLabel(tr("GMSH_SUBDIV_ALGO"), GroupC1), row, 0); mySubdivAlgo = new QComboBox(GroupC1); QStringList typesSubdivAlgo; @@ -288,6 +299,14 @@ QFrame* GMSHPluginGUI_HypothesisCreator::buildFrame() connect( mySecondOrder, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) ); + aGroupLayout->addWidget( new QLabel( tr( "GMSH_VERB_LVL" ), GroupC1 ), row, 0 ); + myVerbLvl = new QComboBox(GroupC1); + QStringList typesVerbLvl; + typesVerbLvl << tr("GMSH_SILENT") << tr("GMSH_ERRORS") << tr("GMSH_WARNINGS") << tr("GMSH_DIRECT") << tr("GMSH_INFORMATION") << tr("GMSH_STATUS") << tr("GMSH_DEBUG"); + myVerbLvl->addItems(typesVerbLvl); + aGroupLayout->addWidget(myVerbLvl, row, 1); + row++; + // Compounds if (!myIs3D) { @@ -411,7 +430,7 @@ void GMSHPluginGUI_HypothesisCreator::retrieveParams() const if ( myRecombineAll ) myRecombineAll->setChecked( data.myRecombineAll ); if ( mySubdivAlgo ) - mySubdivAlgo->setCurrentIndex( data.mySubdivAlgo ); + mySubdivAlgo->setCurrentIndex( data.mySubdivAlgo ); if (!myIs3D) { myRemeshAlgo->setCurrentIndex(data.myRemeshAlgo); @@ -443,6 +462,8 @@ void GMSHPluginGUI_HypothesisCreator::retrieveParams() const mySecondOrder->setChecked( data.mySecondOrder ); if ( myUseIncomplElem ) myUseIncomplElem->setChecked( data.myUseIncomplElem ); + if (myVerbLvl) + myVerbLvl->setCurrentIndex(data.myVerbLvl); GMSHPluginGUI_HypothesisCreator* that = (GMSHPluginGUI_HypothesisCreator*)this; that->updateWidgets(); @@ -512,6 +533,7 @@ bool GMSHPluginGUI_HypothesisCreator::readParamsFromHypo( GmshHypothesisData& h_ h_data.myMaxSizeVar = getVariableName("SetMaxSize"); h_data.mySecondOrder = h->GetSecondOrder(); h_data.myUseIncomplElem = h->GetUseIncomplElem(); + h_data.myVerbLvl = (int) h->GetVerbosityLevel(); GMSHPluginGUI_HypothesisCreator* that = (GMSHPluginGUI_HypothesisCreator*)this; GMSHPlugin::string_array_var myEntries = h->GetCompoundOnEntries(); @@ -564,6 +586,7 @@ bool GMSHPluginGUI_HypothesisCreator::storeParamsToHypo( const GmshHypothesisDat h->SetSecondOrder( h_data.mySecondOrder ); h->SetUseIncomplElem( h_data.myUseIncomplElem ); h->SetIs2d( myIs2D ); + h->SetVerbosityLevel(h_data.myVerbLvl); QString mainEntry = getMainShapeEntry(); for (QSet::const_iterator i = myCompoundSet.begin(); i != myCompoundSet.end(); ++i) @@ -622,6 +645,7 @@ bool GMSHPluginGUI_HypothesisCreator::readParamsFromWidgets( GmshHypothesisData& h_data.myMaxSizeVar = myMaxSize->text(); h_data.mySecondOrder = mySecondOrder->isChecked(); h_data.myUseIncomplElem = myUseIncomplElem->isChecked(); + h_data.myVerbLvl = myVerbLvl->currentIndex(); // ne semble pas utile dans la mesure ou myCompoundSet n'a pas besoin d'etre modifier /* diff --git a/src/GUI/GMSHPluginGUI_HypothesisCreator.h b/src/GUI/GMSHPluginGUI_HypothesisCreator.h index 89d6eaf..981fb87 100644 --- a/src/GUI/GMSHPluginGUI_HypothesisCreator.h +++ b/src/GUI/GMSHPluginGUI_HypothesisCreator.h @@ -53,6 +53,7 @@ typedef struct QString myMaxSizeVar, myMinSizeVar, mySmouthStepsVar, mySizeFactorVar; #endif mutable QString myErrorMsg; + int myVerbLvl; } GmshHypothesisData; /*! @@ -73,7 +74,7 @@ protected: virtual QFrame* buildFrame (); virtual void retrieveParams() const; virtual QString storeParams () const; - + virtual QString caption() const; virtual QPixmap icon() const; virtual QString type() const; @@ -82,7 +83,7 @@ protected slots: void updateWidgets(); virtual void onAddCompound(); virtual void onRemoveCompound(); - + private: bool readParamsFromHypo( GmshHypothesisData& ) const; bool readParamsFromWidgets( GmshHypothesisData& ) const; @@ -107,6 +108,7 @@ private: SMESHGUI_SpinBox* myMinSize; QCheckBox* myUseIncomplElem; QCheckBox* mySecondOrder; + QComboBox* myVerbLvl; bool myIs2D; bool myIs3D; diff --git a/src/GUI/GMSHPlugin_msg_en.ts b/src/GUI/GMSHPlugin_msg_en.ts index 167f7ec..7dce3a0 100644 --- a/src/GUI/GMSHPlugin_msg_en.ts +++ b/src/GUI/GMSHPlugin_msg_en.ts @@ -35,6 +35,38 @@ GMSH_SECOND_ORDER Second Order + + GMSH_VERB_LVL + Verbosity Level + + + GMSH_SILENT + Silent + + + GMSH_ERRORS + Errors + + + GMSH_WARNINGS + Warnings + + + GMSH_DIRECT + Direct + + + GMSH_INFORMATION + Information + + + GMSH_STATUS + Status + + + GMSH_DEBUG + Debug + GMSH_COMPOUND Compounds diff --git a/src/GUI/GMSHPlugin_msg_fr.ts b/src/GUI/GMSHPlugin_msg_fr.ts index aba7088..b363298 100644 --- a/src/GUI/GMSHPlugin_msg_fr.ts +++ b/src/GUI/GMSHPlugin_msg_fr.ts @@ -39,6 +39,38 @@ GMSH_SECOND_ORDER Second ordre + + GMSH_VERB_LVL + Niveau de verbosité + + + GMSH_SILENT + Silencieux + + + GMSH_ERRORS + Erreurs + + + GMSH_WARNINGS + Avertissement + + + GMSH_DIRECT + Direct + + + GMSH_INFORMATION + Information + + + GMSH_STATUS + Status + + + GMSH_DEBUG + Debug + GMSH_COMPOUND Compounds