Salome HOME
0051567: TC6.6.0: Qadrangle_2D fail
[modules/smesh.git] / src / SMESH_I / SMESH_2smeshpy.hxx
index b1019b72d3b8694ce9563a9edba27a65f926c305..feb720f5f913d5c8d5d3a633ef4503c74827538d 100644 (file)
@@ -37,6 +37,7 @@
 #include <list>
 #include <map>
 #include <vector>
+#include <set>
 
 #include <SALOMEconfig.h>
 #include CORBA_CLIENT_HEADER(SALOMEDS)
@@ -230,6 +231,7 @@ public:
   void SetCommandBefore( Handle(_pyCommand) theCmd, Handle(_pyCommand) theBeforeCmd );
   Handle(_pyCommand)& GetLastCommand();
   std::list< Handle(_pyCommand) >& GetCommands() { return myCommands; }
+  void PlaceSubmeshAfterItsCreation( Handle(_pyCommand) theCmdUsingSubmesh ) const;
 
   _pyID GenerateNewID( const _pyID& theID );
   void AddObject( Handle(_pyObject)& theObj );
@@ -294,7 +296,7 @@ private:
 class _pyMesh: public _pyObject
 {
   std::list< Handle(_pyHypothesis) > myHypos;
-  std::list< Handle(_pyCommand) >    myAddHypCmds;
+  std::list< Handle(_pyCommand) >    myAddHypCmds, myNotConvertedAddHypCmds;
   std::list< Handle(_pySubMesh) >    mySubmeshes;
   std::list< Handle(_pyGroup) >      myGroups;
   std::list< Handle(_pyMeshEditor)>  myEditors;
@@ -359,7 +361,7 @@ protected:
   _pyID   myGeom,   myMesh;
   struct CreationMethod {
     _AString              myMethod; // method of algo or mesh creating a hyp
-    // myArgNb(i)-th arg of myArgMethods(i) of hyp becomes an i-th arg of myAlgoMethod
+    // myArgNb(i)-th arg of myArgMethods(i) of hyp becomes an i-th arg of myMethod
     std::vector<_AString> myArgMethods;
     std::vector<int>      myArgNb; // arg nb countered from 1
     std::vector<_AString> myArgs; // creation arguments
@@ -368,6 +370,7 @@ protected:
   // a hypothesis can be created by different algos by different methods
   typedef std::map<_AString, CreationMethod > TType2CrMethod;
   TType2CrMethod                myAlgoType2CreationMethod;
+  std::set< _AString >          myAccumulativeMethods;
   CreationMethod*               myCurCrMethod; // used for adding to myAlgoType2CreationMethod
   std::list<Handle(_pyCommand)> myArgCommands;
   std::list<Handle(_pyCommand)> myUnusedCommands;
@@ -388,6 +391,8 @@ public:
   void AddArgMethod(const _AString& method, const int argNb = 1)
   { myCurCrMethod->myArgMethods.push_back( method );
     myCurCrMethod->myArgNb.push_back( argNb ); }
+  void AddAccumulativeMethod( const _AString& method)
+  { myAccumulativeMethods.insert( method ); }
   //const TColStd_SequenceOfAsciiString& GetArgs() const { return myArgs; }
   const std::list<Handle(_pyCommand)>& GetArgCommands() const { return myArgCommands; }
   void ClearAllCommands();
@@ -546,6 +551,7 @@ public:
   virtual Handle(_pyMesh) GetMesh() { return myMesh; }
   virtual void Free() { myCreator.Nullify(); myMesh.Nullify(); }
   void SetCreator( const Handle(_pyObject)& theCreator ) { myCreator = theCreator; }
+  static bool CanBeArgOfMethod(const _AString& theMethodName);
 
   DEFINE_STANDARD_RTTI (_pySubMesh)
 };
@@ -585,6 +591,7 @@ public:
   virtual void Process( const Handle(_pyCommand)& theCommand);
   virtual void Flush();
   virtual void Free() { myFilter.Nullify(); }
+  void RemovedWithContents();
 
   DEFINE_STANDARD_RTTI (_pyGroup)
 };