]> SALOME platform Git repositories - plugins/netgenplugin.git/commitdiff
Salome HOME
0021676: EDF 2283 NETGENPLUGIN: Improve Netgen 1D-2D-3D to generate pyramids in case...
authoreap <eap@opencascade.com>
Thu, 5 Jul 2012 09:35:10 +0000 (09:35 +0000)
committereap <eap@opencascade.com>
Thu, 5 Jul 2012 09:35:10 +0000 (09:35 +0000)
Allow qudrangles in 3D mesh

idl/NETGENPlugin_Algorithm.idl
src/GUI/NETGENPluginGUI_HypothesisCreator.cxx
src/NETGENPlugin/NETGENPluginDC.py
src/NETGENPlugin/NETGENPlugin_Hypothesis.cxx
src/NETGENPlugin/NETGENPlugin_Hypothesis.hxx
src/NETGENPlugin/NETGENPlugin_Hypothesis_2D.hxx
src/NETGENPlugin/NETGENPlugin_Hypothesis_2D_i.cxx
src/NETGENPlugin/NETGENPlugin_Hypothesis_2D_i.hxx
src/NETGENPlugin/NETGENPlugin_Hypothesis_i.cxx
src/NETGENPlugin/NETGENPlugin_Hypothesis_i.hxx

index e1eed22ea05a805b3ff8498f3db4d97e1b553f59..1dd6fc0ff46ac0deafaa524486a6d47b1fbb8156 100644 (file)
@@ -22,7 +22,6 @@
 
 //  File   : NETGENPlugin_Algorithm.idl
 //  Author : Julia DOROVSKIKH
-//  $Header$
 //
 #ifndef _SMESH_NETGENALGORITHM_IDL_
 #define _SMESH_NETGENALGORITHM_IDL_
@@ -96,6 +95,9 @@ module NETGENPlugin
     void SetNbSegPerRadius(in double value);
     double GetNbSegPerRadius();
 
+    void SetQuadAllowed(in boolean value);
+    boolean GetQuadAllowed();
+
     void SetLocalSizeOnShape(in GEOM::GEOM_Object GeomObj, in double localSize);
     void SetLocalSizeOnEntry(in string entry, in double localSize);
     double GetLocalSizeOnEntry(in string entry);
@@ -108,8 +110,6 @@ module NETGENPlugin
    */
   interface NETGENPlugin_Hypothesis_2D : NETGENPlugin_Hypothesis
   {
-    void SetQuadAllowed(in boolean value);
-    boolean GetQuadAllowed();
   };
 
   /*!
index 994fd09ccfdc33d0b7b0303810bdfb93c0b1b3ba..58f599f5a682b2acea1aa6f4fed9af3c8ec68950 100644 (file)
@@ -206,7 +206,7 @@ QFrame* NETGENPluginGUI_HypothesisCreator::buildFrame()
     row++;
   }
   myAllowQuadrangles = 0;
-  if ( myIs2D )
+  if ( true /*myIs2D*/ ) // issue 0021676
   {
     myAllowQuadrangles = new QCheckBox( tr( "NETGEN_ALLOW_QUADRANGLES" ), GroupC1 );
     aGroupLayout->addWidget( myAllowQuadrangles, row, 0 );
index 6012a00cd32dcd38b207cd2266282e7f4c3f5aaa..f49ba75be7b6134b61f8e401ff71348f381d8629 100644 (file)
@@ -148,6 +148,11 @@ class NETGEN_1D2D3D_Algorithm(NETGEN_Algorithm):
         if self.Parameters():
             self.params.SetNbSegPerRadius(theVal)
 
+    ## Sets QuadAllowed flag.
+    def SetQuadAllowed(self, toAllow=True):
+        if self.Parameters():
+            self.params.SetQuadAllowed(toAllow)
+
 
     ## Sets number of segments overriding the value set by SetLocalLength()
     #
@@ -192,11 +197,6 @@ class NETGEN_1D2D_Algorithm(NETGEN_1D2D3D_Algorithm):
     def __init__(self, mesh, geom=0):
         NETGEN_1D2D3D_Algorithm.__init__(self, mesh, geom)
 
-    ## Sets QuadAllowed flag.
-    def SetQuadAllowed(self, toAllow=True):
-        if self.Parameters():
-            self.params.SetQuadAllowed(toAllow)
-
 
 
 ## Triangle NETGEN 2D algorithm
index aa35370457a2b53a0b6c9474bf5cb8507817bf9d..853e76c0807cec76c02100409c52bab7e760c2be 100644 (file)
@@ -51,7 +51,8 @@ NETGENPlugin_Hypothesis::NETGENPlugin_Hypothesis (int hypId, int studyId,
     _fineness      (GetDefaultFineness()),
     _secondOrder   (GetDefaultSecondOrder()),
     _optimize      (GetDefaultOptimize()),
-    _localSize     (GetDefaultLocalSize())
+    _localSize     (GetDefaultLocalSize()),
+    _quadAllowed   (GetDefaultQuadAllowed())
 {
   _name = "NETGEN_Parameters";
   _param_algo_dim = 3;
@@ -244,6 +245,30 @@ void NETGENPlugin_Hypothesis::UnsetLocalSizeOnEntry(const std::string& entry)
   NotifySubMeshesHypothesisModification();
 }
 
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+void NETGENPlugin_Hypothesis::SetQuadAllowed(bool theVal)
+{
+  if (theVal != _quadAllowed)
+  {
+    _quadAllowed = theVal;
+    NotifySubMeshesHypothesisModification();
+  }
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+bool NETGENPlugin_Hypothesis::GetDefaultQuadAllowed()
+{
+  return false;
+}
+
 //=============================================================================
 /*!
  *  
@@ -268,6 +293,7 @@ ostream & NETGENPlugin_Hypothesis::SaveTo(ostream & save)
     save << " " << "__LOCALSIZE_END__";
   }
   save << " " << _minSize;
+  save << " " << _quadAllowed;
 
   return save;
 }
@@ -355,6 +381,10 @@ istream & NETGENPlugin_Hypothesis::LoadFrom(istream & load)
   if ( !hasLocalSize && !option_or_sm.empty() )
     _minSize = atof( option_or_sm.c_str() );
 
+  isOK = ( load >> _quadAllowed );
+  if ( !isOK )
+    _quadAllowed = GetDefaultQuadAllowed();
+
   return load;
 }
 
index c150dd54c30a3ad07a9c92ecf5eba9e84f717327..c96c8c8df826ab3768e7b79f0b3ddd4c46d79531 100644 (file)
@@ -90,6 +90,9 @@ public:
   const TLocalSize& GetLocalSizesAndEntries() const { return _localSize; }
   void UnsetLocalSizeOnEntry(const std::string& entry);
 
+  void SetQuadAllowed(bool theVal);
+  bool GetQuadAllowed() const { return _quadAllowed; }
+
   // the default values (taken from NETGEN 4.5 sources)
 
   static double GetDefaultMaxSize();
@@ -99,6 +102,7 @@ public:
   static double GetDefaultNbSegPerRadius();
   static bool GetDefaultSecondOrder();
   static bool GetDefaultOptimize();
+  static bool GetDefaultQuadAllowed();
 
   // Persistence
   virtual ostream & SaveTo(ostream & save);
@@ -129,6 +133,7 @@ private:
   bool          _secondOrder;
   bool          _optimize;
   TLocalSize    _localSize;
+  bool          _quadAllowed;
 };
 
 #endif
index 47f00c7efdf209690974408f0e073a33474db3ef..babfc87ccb7af73e123976fc50a8c8a6b2096401 100644 (file)
@@ -25,7 +25,6 @@
 // Author    : Michael Sazonov (OCN)
 // Date      : 27/03/2006
 // Project   : SALOME
-// $Header$
 //=============================================================================
 //
 #ifndef _NETGENPlugin_Hypothesis_2D_HXX_
index b84836014d8d808c9bb9d4fc266e01dc7c223bd6..86e5888262ac9a5b66d239dfa54bc5ce07b8f2d9 100644 (file)
@@ -78,16 +78,16 @@ NETGENPlugin_Hypothesis_2D_i::~NETGENPlugin_Hypothesis_2D_i()
  *  Set QuadAllowed flag
  */
 //=============================================================================
-void NETGENPlugin_Hypothesis_2D_i::SetQuadAllowed (CORBA::Boolean theValue)
-{
-  if ( NETGENPlugin_Hypothesis_i::isToSetParameter( GetQuadAllowed(),
-                                                    theValue,
-                                                    METH_SetQuadAllowed ))
-  {
-    this->GetImpl()->SetQuadAllowed(theValue);
-    SMESH::TPythonDump() << _this() << ".SetQuadAllowed( " << theValue << " )";
-  }
-}
+// void NETGENPlugin_Hypothesis_2D_i::SetQuadAllowed (CORBA::Boolean theValue)
+// {
+//   if ( NETGENPlugin_Hypothesis_i::isToSetParameter( GetQuadAllowed(),
+//                                                     theValue,
+//                                                     METH_SetQuadAllowed ))
+//   {
+//     this->GetImpl()->SetQuadAllowed(theValue);
+//     SMESH::TPythonDump() << _this() << ".SetQuadAllowed( " << theValue << " )";
+//   }
+// }
 
 //=============================================================================
 /*!
@@ -96,10 +96,10 @@ void NETGENPlugin_Hypothesis_2D_i::SetQuadAllowed (CORBA::Boolean theValue)
  *  Get QuadAllowed flag
  */
 //=============================================================================
-CORBA::Boolean NETGENPlugin_Hypothesis_2D_i::GetQuadAllowed()
-{
-  return this->GetImpl()->GetQuadAllowed();
-}
+// CORBA::Boolean NETGENPlugin_Hypothesis_2D_i::GetQuadAllowed()
+// {
+//   return this->GetImpl()->GetQuadAllowed();
+// }
 
 //=============================================================================
 /*!
index 267e4a329b4cccf1c63019d736282ffe75babed7..e6d0c55fbf8afe8a03421ea3a63c841201667e1c 100644 (file)
@@ -54,9 +54,6 @@ class NETGENPLUGIN_EXPORT  NETGENPlugin_Hypothesis_2D_i:
   // Destructor
   virtual ~NETGENPlugin_Hypothesis_2D_i();
 
-  void SetQuadAllowed(CORBA::Boolean theVal);
-  CORBA::Boolean GetQuadAllowed();
-
   // Get implementation
   ::NETGENPlugin_Hypothesis_2D* GetImpl();
   
@@ -66,11 +63,11 @@ class NETGENPLUGIN_EXPORT  NETGENPlugin_Hypothesis_2D_i:
  protected:
 
   // to remember whether a parameter is already set (issue 0021364)
-  enum SettingMethod
-  {
-    METH_SetQuadAllowed = NETGENPlugin_Hypothesis_i::METH_LAST * 2,
-    METH_LAST           = METH_SetQuadAllowed
-  };
+  // enum SettingMethod
+  // {
+  //   METH_SetQuadAllowed = NETGENPlugin_Hypothesis_i::METH_LAST * 2,
+  //   METH_LAST           = METH_SetQuadAllowed
+  // };
 };
 
 #endif
index b51b2a70f763f0b44dce1850723e7ef373f92297..17bdd35a19da2d78ae6cf9f87a02460621ab5f59 100644 (file)
@@ -363,6 +363,26 @@ void NETGENPlugin_Hypothesis_i::UnsetLocalSizeOnEntry(const char* entry)
   SMESH::TPythonDump() << _this() << ".UnsetLocalSizeOnEntry(" << entry << ")";
 }
 
+//=============================================================================
+
+void NETGENPlugin_Hypothesis_i::SetQuadAllowed (CORBA::Boolean theValue)
+{
+  if ( NETGENPlugin_Hypothesis_i::isToSetParameter( GetQuadAllowed(),
+                                                    theValue,
+                                                    METH_SetQuadAllowed ))
+  {
+    this->GetImpl()->SetQuadAllowed(theValue);
+    SMESH::TPythonDump() << _this() << ".SetQuadAllowed( " << theValue << " )";
+  }
+}
+
+//=============================================================================
+
+CORBA::Boolean NETGENPlugin_Hypothesis_i::GetQuadAllowed()
+{
+  return this->GetImpl()->GetQuadAllowed();
+}
+
 //=============================================================================
 /*!
  *  NETGENPlugin_Hypothesis_i::GetImpl
index 6a4ffa8f4d9e96b1edba78890e816945cf5c4d75..95435b0e765acfc7333c68d543f5af4e9ef806ac 100644 (file)
@@ -85,6 +85,9 @@ class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis_i:
   NETGENPlugin::string_array* GetLocalSizeEntries();
   void UnsetLocalSizeOnEntry(const char* entry);
 
+  void SetQuadAllowed(CORBA::Boolean theVal);
+  CORBA::Boolean GetQuadAllowed();
+
   // Get implementation
   ::NETGENPlugin_Hypothesis* GetImpl();
   
@@ -105,7 +108,8 @@ class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis_i:
     METH_SetNbSegPerEdge     = 64,
     METH_SetNbSegPerRadius   = 128,
     METH_SetLocalSizeOnEntry = 256,
-    METH_LAST                = METH_SetLocalSizeOnEntry
+    METH_SetQuadAllowed      = METH_SetLocalSizeOnEntry * 2,
+    METH_LAST                = METH_SetQuadAllowed
   };
   int mySetMethodFlags;