X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Gen_i_1.cxx;h=65ee1e31d21d00f6a6a50600a17e51d6809166fc;hp=77293d83bf971511f2f6fdd5b6b0cd8f49ef1288;hb=fd1943809d016d0223da20a2a492b157cb17146a;hpb=251f8c052dd12dd29922210dc901b295fe999a0e diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx index 77293d83b..65ee1e31d 100644 --- a/src/SMESH_I/SMESH_Gen_i_1.cxx +++ b/src/SMESH_I/SMESH_Gen_i_1.cxx @@ -275,21 +275,16 @@ static SALOMEDS::SObject_ptr publish(SALOMEDS::Study_ptr theStudy, SO = aStudyBuilder->NewObjectToTag( theFatherObject, theTag ); // define the next tag after given one in the data tree to insert SObject - std::string anEntry; - int last2Pnt_pos = -1; - int tagAfter = -1; - CORBA::String_var entry; SALOMEDS::SObject_wrap curObj; - SALOMEDS::UseCaseIterator_wrap anUseCaseIter = useCaseBuilder->GetUseCaseIterator(theFatherObject); - for ( ; anUseCaseIter->More(); anUseCaseIter->Next() ) { - curObj = anUseCaseIter->Value(); - entry = curObj->GetID(); - anEntry = entry.in(); - last2Pnt_pos = anEntry.rfind( ":" ); - tagAfter = atoi( anEntry.substr( last2Pnt_pos+1 ).c_str() ); - if ( tagAfter > theTag ) { - objAfter = curObj; - break; + if ( theFatherObject->GetLastChildTag() > theTag ) + { + SALOMEDS::UseCaseIterator_wrap anUseCaseIter = useCaseBuilder->GetUseCaseIterator(theFatherObject); + for ( ; anUseCaseIter->More(); anUseCaseIter->Next() ) { + curObj = anUseCaseIter->Value(); + if ( curObj->Tag() > theTag ) { + objAfter = curObj; + break; + } } } } @@ -534,32 +529,6 @@ SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent(SALOMEDS::Study_ptr theSt return father._retn(); } -//============================================================================= -/*! - * findMaxChildTag [ static internal ] - * - * Finds maximum child tag for the given object - */ -//============================================================================= - -static long findMaxChildTag( SALOMEDS::SObject_ptr theSObject ) -{ - long aTag = 0; - if ( !theSObject->_is_nil() ) { - SALOMEDS::Study_var aStudy = theSObject->GetStudy(); - if ( !aStudy->_is_nil() ) { - SALOMEDS::ChildIterator_wrap anIter = aStudy->NewChildIterator( theSObject ); - for ( ; anIter->More(); anIter->Next() ) { - SALOMEDS::SObject_wrap anSO = anIter->Value(); - long nTag = anSO->Tag(); - if ( nTag > aTag ) - aTag = nTag; - } - } - } - return aTag; -} - //======================================================================= //function : PublishMesh //purpose : @@ -584,7 +553,7 @@ SALOMEDS::SObject_ptr SMESH_Gen_i::PublishMesh (SALOMEDS::Study_ptr theStudy, return aMeshSO._retn(); // Find correct free tag - long aTag = findMaxChildTag( father.in() ); + long aTag = father->GetLastChildTag(); if ( aTag <= GetAlgorithmsRootTag() ) aTag = GetAlgorithmsRootTag() + 1; else