]> SALOME platform Git repositories - plugins/gmshplugin.git/commitdiff
Salome HOME
23586: [EDF] HYDRO: Copy mesh to new geometry V9_2_0a1
authoreap <eap@opencascade.com>
Tue, 18 Sep 2018 11:58:42 +0000 (14:58 +0300)
committereap <eap@opencascade.com>
Tue, 18 Sep 2018 11:58:42 +0000 (14:58 +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 c8a698ee3fb7166d75f7425acefdbed252b586ee..2937a1d8384351bc1ca76dab54fa6e1e9ae83bb8 100644 (file)
@@ -39,8 +39,8 @@ GMSHPlugin_Hypothesis::GMSHPlugin_Hypothesis (int hypId,
     _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 0fe8db8847c0329f7ef92a3d7163e928e85d2c4f..48b271af71d89587b66314de465b9fe107fadbd4 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 2fc0a5d8dcf96c2517036544f2d042c9138f369e..312b762cf72141b484caed213e8c915039da214d 100644 (file)
@@ -342,3 +342,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 716ad9589b7e9470267e5339cc1f7ba64cd78da2..2686f71eb036fbb23235225f39149f342d557630 100644 (file)
@@ -94,10 +94,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);
 
@@ -163,6 +163,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 b36bcaf8da6de524620a2e1b526b89d746eb8e68..da965f630653a2ef1521e61c8d0a1de86a5c0a6d 100644 (file)
@@ -212,7 +212,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);
@@ -223,7 +223,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);
@@ -238,7 +238,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);
@@ -295,7 +295,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 ebbcae668d1797000917f86db94222b0d1b1f80a..486a360cb696d8cb324e9cab4964f5fac75f9f5a 100644 (file)
@@ -91,14 +91,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);
   };
 };