Salome HOME
Copyright update 2022
[plugins/hybridplugin.git] / src / HYBRIDPlugin / HYBRIDPlugin_HYBRID.cxx
index 80d5993f0e7aa46536f76142fdaf1a2fd145fe36..862a704bcb8d67037ebee8e3ff212334a2295d6c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -70,6 +70,7 @@
 #include <Basics_Utils.hxx>
 #include <utilities.h>
 
+#include <fstream>
 #include <algorithm>
 
 #define castToNode(n) static_cast<const SMDS_MeshNode *>( n );
@@ -167,11 +168,11 @@ bool HYBRIDPlugin_HYBRID::CheckHypothesis ( SMESH_Mesh&         aMesh,
 
 TopoDS_Shape HYBRIDPlugin_HYBRID::entryToShape(std::string entry)
 {
-  if ( SMESH_Gen_i::getStudyServant()->_is_nil() )
+  if ( SMESH_Gen_i::GetSMESHGen()->getStudyServant()->_is_nil() )
     throw SALOME_Exception("MG-HYBRID plugin can't work w/o publishing in the study");
   GEOM::GEOM_Object_var aGeomObj;
   TopoDS_Shape S = TopoDS_Shape();
-  SALOMEDS::SObject_var aSObj = SMESH_Gen_i::getStudyServant()->FindObjectID( entry.c_str() );
+  SALOMEDS::SObject_var aSObj = SMESH_Gen_i::GetSMESHGen()->getStudyServant()->FindObjectID( entry.c_str() );
   if (!aSObj->_is_nil() ) {
     CORBA::Object_var obj = aSObj->GetObject();
     aGeomObj = GEOM::GEOM_Object::_narrow(obj);
@@ -190,7 +191,7 @@ TopoDS_Shape HYBRIDPlugin_HYBRID::entryToShape(std::string entry)
 static void addElemInMeshGroup(SMESH_Mesh*             theMesh,
                                const SMDS_MeshElement* anElem,
                                std::string&            groupName,
-                               std::set<std::string>&  groupsToRemove)
+                               std::set<std::string>&  /*groupsToRemove*/)
 {
   if ( !anElem ) return; // issue 0021776
 
@@ -329,13 +330,13 @@ static bool readGMFFile(MG_HYBRID_API*                          MGOutput,
                         SMESH_MesherHelper*                     theHelper,
                         std::vector <const SMDS_MeshNode*> &    theNodeByHybridId,
                         std::vector <const SMDS_MeshElement*> & theFaceByHybridId,
-                        std::map<const SMDS_MeshNode*,int> &    theNodeToHybridIdMap,
+                        std::map<const SMDS_MeshNode*,int> &    /*theNodeToHybridIdMap*/,
                         std::vector<std::string> &              aNodeGroupByHybridId,
                         std::vector<std::string> &              anEdgeGroupByHybridId,
                         std::vector<std::string> &              aFaceGroupByHybridId,
                         std::set<std::string> &                 groupsToRemove,
                         bool                                    toMakeGroupsOfDomains=false,
-                        bool                                    toMeshHoles=true)
+                        bool                                    /*toMeshHoles*/=true)
 {
   std::string tmpStr;
   SMESHDS_Mesh* theMeshDS = theHelper->GetMeshDS();
@@ -378,15 +379,15 @@ static bool readGMFFile(MG_HYBRID_API*                          MGOutput,
     theFaceByHybridId.clear();
   }
 
-  int nbMeshNodes = theMeshDS->NbNodes();
   int nbInitialNodes = theNodeByHybridId.size();
 
+#ifdef _DEBUG_
+  int nbMeshNodes = theMeshDS->NbNodes();
   const bool isQuadMesh =
     theHelper->GetMesh()->NbEdges( ORDER_QUADRATIC ) ||
     theHelper->GetMesh()->NbFaces( ORDER_QUADRATIC ) ||
     theHelper->GetMesh()->NbVolumes( ORDER_QUADRATIC );
 
-#ifdef _DEBUG_
   std::cout << "theNodeByHybridId.size(): " << nbInitialNodes << std::endl;
   std::cout << "theHelper->GetMesh()->NbNodes(): " << nbMeshNodes << std::endl;
   std::cout << "isQuadMesh: " << isQuadMesh << std::endl;
@@ -815,7 +816,7 @@ static bool readGMFFile(MG_HYBRID_API*                          MGOutput,
   std::map<int, std::set<int> >::const_iterator subdomainIt = subdomainId2tetraId.begin();
   std::string aSubdomainFileName = theFile;
   aSubdomainFileName = aSubdomainFileName + ".subdomain";
-  ofstream aSubdomainFile  ( aSubdomainFileName  , ios::out);
+  std::ofstream aSubdomainFile  ( aSubdomainFileName  , ios::out);
 
   aSubdomainFile << "Nb subdomains " << subdomainId2tetraId.size() << std::endl;
   for(;subdomainIt != subdomainId2tetraId.end() ; ++subdomainIt) {
@@ -1489,7 +1490,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   // Write aSmdsToHybridIdMap to temp file
   std::string aSmdsToHybridIdMapFileName;
   aSmdsToHybridIdMapFileName = aGenericName + ".ids";  // ids relation
-  ofstream aIdsFile  ( aSmdsToHybridIdMapFileName  , ios::out);
+  std::ofstream aIdsFile  ( aSmdsToHybridIdMapFileName  , ios::out);
   Ok = aIdsFile.rdbuf()->is_open();
   if (!Ok) {
     INFOS( "Can't write into " << aSmdsToHybridIdMapFileName);
@@ -1519,7 +1520,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   // run hybrid mesher
   // -----------------
 
-  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp, theMesh );
+  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp );
 
   if ( mgHybrid.IsExecutable() )
   {
@@ -1721,7 +1722,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   // run hybrid mesher
   // -----------------
 
-  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp, theMesh );
+  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp );
 
   if ( mgHybrid.IsExecutable() )
   {
@@ -2205,9 +2206,9 @@ bool HYBRIDPlugin_HYBRID::Evaluate(SMESH_Mesh& aMesh,
                                             "Submesh can not be evaluated",this));
       return false;
     }
-    std::vector<int> aVec = (*anIt).second;
-    nbtri += Max(aVec[SMDSEntity_Triangle],aVec[SMDSEntity_Quad_Triangle]);
-    nbqua += Max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]);
+    std::vector<smIdType> aVec = (*anIt).second;
+    nbtri += std::max(aVec[SMDSEntity_Triangle],aVec[SMDSEntity_Quad_Triangle]);
+    nbqua += std::max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]);
     GProp_GProps G;
     BRepGProp::SurfaceProperties(F,G);
     double anArea = G.Mass();
@@ -2226,9 +2227,9 @@ bool HYBRIDPlugin_HYBRID::Evaluate(SMESH_Mesh& aMesh,
     tmpMap.Add(E);
     SMESH_subMesh *aSubMesh = aMesh.GetSubMesh(exp.Current());
     MapShapeNbElemsItr anIt = aResMap.find(aSubMesh);
-    std::vector<int> aVec = (*anIt).second;
+    std::vector<smIdType> aVec = (*anIt).second;
     nb0d_e += aVec[SMDSEntity_Node];
-    nb1d_e += Max(aVec[SMDSEntity_Edge],aVec[SMDSEntity_Quad_Edge]);
+    nb1d_e += std::max(aVec[SMDSEntity_Edge],aVec[SMDSEntity_Quad_Edge]);
     if(IsFirst) {
       IsQuadratic = (aVec[SMDSEntity_Quad_Edge] > aVec[SMDSEntity_Edge]);
       IsFirst = false;
@@ -2246,7 +2247,7 @@ bool HYBRIDPlugin_HYBRID::Evaluate(SMESH_Mesh& aMesh,
   int nbVols = int(aVolume/tetrVol/CoeffQuality);
   int nb1d_f = (nbtri*3 + nbqua*4 - nb1d_e) / 2;
   int nb1d_in = (int) ( nbVols*6 - nb1d_e - nb1d_f ) / 5;
-  std::vector<int> aVec(SMDSEntity_Last);
+  std::vector<smIdType> aVec(SMDSEntity_Last);
   for(int i=SMDSEntity_Node; i<SMDSEntity_Last; i++) aVec[i]=0;
   if( IsQuadratic ) {
     aVec[SMDSEntity_Node] = nb1d_in/6 + 1 + nb1d_in;
@@ -2298,9 +2299,9 @@ namespace
      */
     void ProcessEvent(const int                       event,
                       const int                       eventType,
-                      SMESH_subMesh*                  subMesh,
+                      SMESH_subMesh*                  /*subMesh*/,
                       SMESH_subMeshEventListenerData* data,
-                      const SMESH_Hypothesis*         hyp)
+                      const SMESH_Hypothesis*         /*hyp*/)
     {
       if ( SMESH_subMesh::SUBMESH_LOADED == event &&
            SMESH_subMesh::COMPUTE_EVENT  == eventType &&
@@ -2339,11 +2340,11 @@ namespace
     /*!
      * \brief Treat events of the subMesh
      */
-    void ProcessEvent(const int                       event,
+    void ProcessEvent(const int                       /*event*/,
                       const int                       eventType,
                       SMESH_subMesh*                  subMesh,
-                      SMESH_subMeshEventListenerData* data,
-                      const SMESH_Hypothesis*         hyp)
+                      SMESH_subMeshEventListenerData* /*data*/,
+                      const SMESH_Hypothesis*         /*hyp*/)
     {
       if (SMESH_subMesh::ALGO_EVENT == eventType &&
           !subMesh->GetAlgo() )