]> SALOME platform Git repositories - plugins/gmshplugin.git/commitdiff
Salome HOME
23586: [EDF] HYDRO: Copy mesh to new geometry hydro/imps_2018 HYDRO_V2_0_0
authoreap <eap@opencascade.com>
Tue, 18 Sep 2018 14:25:15 +0000 (17:25 +0300)
committereap <eap@opencascade.com>
Tue, 18 Sep 2018 14:25:15 +0000 (17:25 +0300)
src/GMSHPlugin/GMSHPlugin_Hypothesis.cxx
src/GMSHPlugin/GMSHPlugin_Hypothesis.hxx
src/GMSHPlugin/GMSHPlugin_Hypothesis_i.cxx
src/GMSHPlugin/GMSHPlugin_Hypothesis_i.hxx
src/GMSHPlugin/GMSHPlugin_Mesher.cxx
src/GMSHPlugin/GMSHPlugin_Mesher.hxx

index 2b414c9f14bd86a9939342095ec0ed02e5e14547..3bdf21707252051a0df38b7f297ad0996c936601 100644 (file)
@@ -39,8 +39,8 @@ GMSHPlugin_Hypothesis::GMSHPlugin_Hypothesis (int hypId, int studyId,
     _remeshPara     (harmonic),
     _smouthSteps    (1),
     _sizeFactor     (1),
-    _maxSize        (1e22),
     _minSize        (0),
+    _maxSize        (1e22),
     _secondOrder    (false),
     _useIncomplElem (true)
 {
@@ -322,17 +322,6 @@ istream & GMSHPlugin_Hypothesis::LoadFrom(istream & load)
   return load;
 }
 
-ostream & operator <<(ostream & save, GMSHPlugin_Hypothesis & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-istream & operator >>(istream & load, GMSHPlugin_Hypothesis & hyp)
-{
-  return hyp.LoadFrom( load );
-}
-
-
 //================================================================================
 /*!
  * \brief Does nothing
@@ -355,7 +344,7 @@ bool GMSHPlugin_Hypothesis::SetParametersByMesh(const SMESH_Mesh*   theMesh,
 //================================================================================
 
 bool GMSHPlugin_Hypothesis::SetParametersByDefaults(const TDefaults&  dflts,
-                                                      const SMESH_Mesh* theMesh)
+                                                    const SMESH_Mesh* theMesh)
 {
   //_nbSegPerEdge = dflts._nbSegments;
   //_maxSize      = dflts._elemLength;
@@ -366,4 +355,5 @@ bool GMSHPlugin_Hypothesis::SetParametersByDefaults(const TDefaults&  dflts,
   //  _minSize    = GMSHPlugin_Mesher::GetDefaultMinSize( theMesh->GetShapeToMesh(), _maxSize );
 
   //return _nbSegPerEdge && _maxSize > 0;
+  return false;
 }
index dde0eb2ef17d80dcbe16026013cb3db7f1a8a5a9..c3fbdfbce5082396f4c7e45917f94b1856a60185 100644 (file)
@@ -133,8 +133,6 @@ public:
   // Persistence
   virtual ostream & SaveTo(ostream & save);
   virtual istream & LoadFrom(istream & load);
-  friend GMSHPLUGIN_EXPORT ostream & operator <<(ostream & save, GMSHPlugin_Hypothesis & hyp);
-  friend GMSHPLUGIN_EXPORT istream & operator >>(istream & load, GMSHPlugin_Hypothesis & hyp);
 
   /*!
    * \brief Does nothing
index 453074b533d5301ba8aa8ac85bac7f69f55b7e57..a68670030c4266c0f2bf577f123cdecc7300f9e1 100644 (file)
@@ -344,3 +344,49 @@ std::string GMSHPlugin_Hypothesis_i::getMethodOfParameter(const int paramIndex,
   }
   return "";
 }
+
+//================================================================================
+/*!
+ * \brief Return geometry this hypothesis depends on. Return false if there is no geometry parameter
+ */
+//================================================================================
+
+bool
+GMSHPlugin_Hypothesis_i::getObjectsDependOn( std::vector< std::string > & entryArray,
+                                             std::vector< int >         & subIDArray ) const
+{
+  typedef ::GMSHPlugin_Hypothesis THyp;
+  const THyp* impl = static_cast<const THyp*>( myBaseImpl );
+
+  const THyp::TCompound& compounds = impl->GetCompoundOnEntries();
+  entryArray.assign( compounds.cbegin(), compounds.cend() );
+
+  return true;
+}
+
+//================================================================================
+/*!
+ * \brief Set new geometry instead of that returned by getObjectsDependOn()
+ */
+//================================================================================
+
+bool
+GMSHPlugin_Hypothesis_i::setObjectsDependOn( std::vector< std::string > & entryArray,
+                                             std::vector< int >         & subIDArray )
+{
+  typedef ::GMSHPlugin_Hypothesis THyp;
+  THyp* impl = static_cast< THyp* >( myBaseImpl );
+
+  size_t iEnt = 0;
+
+  THyp::TCompound& compoundsNew = const_cast< THyp::TCompound& > ( impl->GetCompoundOnEntries() );
+  THyp::TCompound compounds;
+  compounds.swap( compoundsNew );
+
+  THyp::TCompound::const_iterator entry = compounds.cbegin();
+  for ( ; entry != compounds.cend(); ++entry, ++iEnt )
+    if ( !entryArray[ iEnt ].empty() )
+      compoundsNew.insert( entryArray[ iEnt ]);
+
+  return true;
+}
index 98817aa5c1d9eba61396af29fa21bc6a1ec97fc8..cdb9a03ac0501e84b3d23bf2c34c6389ecba2d00 100644 (file)
@@ -95,10 +95,10 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Hypothesis_i:
   void SetNbSegPerRadius(CORBA::Double theVal);
   CORBA::Double GetNbSegPerRadius();
 
-  void SetLocalSizeOnShape(GEOM::GEOM_Object_ptr GeomObj, CORBA::Double localSize);
-  void SetLocalSizeOnEntry(const char* entry, CORBA::Double localSize);
-  CORBA::Double GetLocalSizeOnEntry(const char* entry);
-  GMSHPlugin::string_array* GetLocalSizeEntries();
+  // void SetLocalSizeOnShape(GEOM::GEOM_Object_ptr GeomObj, CORBA::Double localSize);
+  // void SetLocalSizeOnEntry(const char* entry, CORBA::Double localSize);
+  // CORBA::Double GetLocalSizeOnEntry(const char* entry);
+  // GMSHPlugin::string_array* GetLocalSizeEntries();
   
   void UnsetLocalSizeOnEntry(const char* entry);
 
@@ -164,6 +164,17 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Hypothesis_i:
   // into myMethod2VarParams. It should return a method name for an index of
   // variable parameters. Index is countered from zero
   virtual std::string getMethodOfParameter(const int paramIndex, int nbVars) const;
+
+
+  // Methods for copying mesh definition to other geometry
+
+  // Return geometry this hypothesis depends on. Return false if there is no geometry parameter
+  virtual bool getObjectsDependOn( std::vector< std::string > & entryArray,
+                                   std::vector< int >         & subIDArray ) const;
+
+  // Set new geometry instead of that returned by getObjectsDependOn()
+  virtual bool setObjectsDependOn( std::vector< std::string > & entryArray,
+                                   std::vector< int >         & subIDArray );
 };
 
 #endif
index 6e2ccf18403a965385c715b7c5fe1aa06231a56d..8159c7544ead707de058c6933ccf46abc9127f69 100644 (file)
@@ -216,7 +216,7 @@ void GMSHPlugin_Mesher::CreateGmshCompounds()
       geomShape = smeshGen_i->GeomObjectToShape( aGeomObj.in() );
     
     TopAbs_ShapeEnum geomType = geomShape.ShapeType();
-    if (geomShape.ShapeType() == TopAbs_COMPOUND)// voir s'il ne faut pas mettre une erreur dans le cas contraire
+    if ( geomType == TopAbs_COMPOUND)// voir s'il ne faut pas mettre une erreur dans le cas contraire
     {
       MESSAGE("shapeType == TopAbs_COMPOUND");
       TopoDS_Iterator it(geomShape);
@@ -227,7 +227,7 @@ void GMSHPlugin_Mesher::CreateGmshCompounds()
         MESSAGE("    shapeType == TopAbs_EDGE :");
         int num = _gModel->getNumEdges()+1;
         Curve *curve = CreateCurve(num, MSH_SEGM_COMPOUND, 1, NULL, NULL, -1, -1, 0., 1.);
-        for (it; it.More(); it.Next())
+        for ( ; it.More(); it.Next())
         {
           TopoDS_Shape topoShape = it.Value();
           ASSERT(topoShape.ShapeType() == shapeType);
@@ -242,7 +242,7 @@ void GMSHPlugin_Mesher::CreateGmshCompounds()
         MESSAGE("    shapeType == TopAbs_FACE :");
         int num = _gModel->getNumFaces()+1;
         Surface *surface = CreateSurface(num, MSH_SURF_COMPOUND);
-        for (it; it.More(); it.Next())
+        for ( ; it.More(); it.Next())
         {
           TopoDS_Shape topoShape = it.Value();
           ASSERT(topoShape.ShapeType() == shapeType);
@@ -299,7 +299,7 @@ void GMSHPlugin_Mesher::FillSMesh()
       std::vector<MVertex*> verts;
       e->getVertices(verts);
       ASSERT(verts.size()==1);
-      SMDS_Mesh0DElement* zeroDElement = 0;
+      //SMDS_Mesh0DElement* zeroDElement = 0;
       // WE DONT ADD 0D ELEMENTS because it does not follow the salome meshers philosophy
       //zeroDElement = meshDS->Add0DElementWithID(verts[0]->getNum(),e->getNum());
       //meshDS->SetMeshElementOnShape(zeroDElement, topoVertex);
index 6da916462c12eda727891589b361d6167e649c7a..0f787ceda5287ea7b9c544b5738c40ed9c49d919 100644 (file)
@@ -92,14 +92,14 @@ class GMSHPLUGIN_EXPORT GMSHPlugin_Mesher
   void CreateGmshCompounds();
   void FillSMesh();
   float DistBoundingBox(SBoundingBox3d& bounds,SPoint3& point);
-  
+
   class mymsg : public GmshMessage
   {
-    private:
-      GModel* _gModel;
-    public:
-      mymsg(GModel* _gModel) : _gModel(_gModel), GmshMessage() {}
-      void operator()(std::string level, std::string msg);
+  private:
+    GModel* _gModel;
+  public:
+    mymsg(GModel* _gModel) :  GmshMessage(), _gModel(_gModel) {}
+    void operator()(std::string level, std::string msg);
   };
 };