22798: EDF 9100 SMESH: Dump python and "Compute()" position

Do not erase a previous Compute() if there were mesh edition commands after it
This commit is contained in:
eap 2014-11-05 20:33:43 +03:00
parent b905bf1432
commit e9c9effdfa
2 changed files with 28 additions and 9 deletions

View File

@ -1793,11 +1793,30 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
list< Handle(_pyHypothesis) >::iterator hyp;
if ( !myLastComputeCmd.IsNull() )
{
// check if the previously computed mesh has been edited,
// if so then we do not clear the previous Compute()
bool toClear = true;
if ( myLastComputeCmd->GetMethod() == "Compute" )
{
list< Handle(_pyMeshEditor)>::iterator e = myEditors.begin();
for ( ; e != myEditors.end() && toClear; ++e )
{
list< Handle(_pyCommand)>& cmds = (*e)->GetProcessedCmds();
list< Handle(_pyCommand) >::reverse_iterator cmd = cmds.rbegin();
if ( cmd != cmds.rend() &&
(*cmd)->GetOrderNb() > myLastComputeCmd->GetOrderNb() )
toClear = false;
}
}
if ( toClear )
{
// clear hyp commands called before myLastComputeCmd
for ( hyp = myHypos.begin(); hyp != myHypos.end(); ++hyp )
(*hyp)->ComputeDiscarded( myLastComputeCmd );
myLastComputeCmd->Clear();
}
}
myLastComputeCmd = theCommand;
for ( hyp = myHypos.begin(); hyp != myHypos.end(); ++hyp )
@ -1961,7 +1980,7 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
//
// remove "PartTo" from the method
TCollection_AsciiString newMethod = method;
newMethod.Remove( 7, 6 );
newMethod.Remove( /*where=*/7, /*howmany=*/6 );
theCommand->SetMethod( newMethod );
// make the 1st arg be the last one (or last but three for ExportMED())
_pyID partID = theCommand->GetArg( 1 );

View File

@ -127,7 +127,7 @@ public:
_AString GetIndentation();
const _AString & GetResultValue();
int GetNbResultValues();
const _AString& GetResultValue(int res);
const _AString & GetResultValue(int res);
const _AString & GetObject();
const _AString & GetMethod();
const _AString & GetArg( int index );