X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_2smeshpy.hxx;h=36212e0686a3bffbe5ff3bb02f3dae63d229db1b;hb=ab9945d2b06171e18f4839ea5536b1cd7f7b65fd;hp=1ad25475143bd65f914f6482ad87f0948b71d367;hpb=ddec989c2fb5982e993bb635080de49f1b2f1a1a;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_2smeshpy.hxx b/src/SMESH_I/SMESH_2smeshpy.hxx index 1ad254751..36212e068 100644 --- a/src/SMESH_I/SMESH_2smeshpy.hxx +++ b/src/SMESH_I/SMESH_2smeshpy.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -37,6 +37,7 @@ #include #include #include +#include #include #include CORBA_CLIENT_HEADER(SALOMEDS) @@ -123,7 +124,7 @@ public: _AString GetIndentation(); const _AString & GetResultValue(); const int GetNbResultValues(); - const _AString & GetResultValue(int res); + _AString GetResultValue(int res); const _AString & GetObject(); const _AString & GetMethod(); const _AString & GetArg( int index ); @@ -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 ); @@ -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 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 myArgCommands; std::list 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& 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) }; @@ -579,10 +585,11 @@ DEFINE_STANDARD_HANDLE (_pyFilter, _pyObject); class _pyGroup: public _pySubMesh { Handle(_pyFilter) myFilter; + bool myCanClearCreationCmd; public: _pyGroup(const Handle(_pyCommand)& theCreationCmd, const _pyID & id=_pyID()); virtual void Process( const Handle(_pyCommand)& theCommand); - virtual void Flush() {} + virtual void Flush(); virtual void Free() { myFilter.Nullify(); } DEFINE_STANDARD_RTTI (_pyGroup)