X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM%2FGEOM_PythonDump.cxx;h=14c84dc8baca1ab1d98ada7a3b402d7d9a7760db;hb=8cee57a1875ffe457096f1f098d6378eb337d2e1;hp=86c576c643e8349d9776498b51122467207b55fc;hpb=7a7b104ba643ba417559c77e0f0f37c2caf5950a;p=modules%2Fgeom.git diff --git a/src/GEOM/GEOM_PythonDump.cxx b/src/GEOM/GEOM_PythonDump.cxx index 86c576c64..14c84dc8b 100644 --- a/src/GEOM/GEOM_PythonDump.cxx +++ b/src/GEOM/GEOM_PythonDump.cxx @@ -15,12 +15,17 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com #include "GEOM_PythonDump.hxx" #include +#include + +#include +#include + namespace GEOM { size_t TPythonDump::myCounter = 0; @@ -38,19 +43,12 @@ namespace GEOM TCollection_AsciiString aDescr; if ( myAppend ) aDescr = myFunction->GetDescription() + "\n\t"; - aDescr += (char *)myStream.str().c_str(); + std::string aString = myStream.str(); + aDescr += (char *)aString.c_str(); myFunction->SetDescription( aDescr ); } } -// TPythonDump::operator TCollection_AsciiString () const -// { -// if (myCounter == 1) { -// return TCollection_AsciiString ((char *)myStream.str().c_str()); -// } -// return TCollection_AsciiString (); -// } - TPythonDump& TPythonDump::operator<< (long int theArg) { myStream<GetEntry(), anEntry); - myStream << anEntry.ToCString(); + if (theObject.IsNull()) { + myStream << "None"; + } else { + TCollection_AsciiString anEntry; + TDF_Tool::Entry(theObject->GetEntry(), anEntry); + myStream << anEntry.ToCString(); + } return *this; } + + Handle(GEOM_Object) GetCreatedLast(const Handle(GEOM_Object)& theObj1, + const Handle(GEOM_Object)& theObj2) + { + if (theObj1.IsNull()) return theObj2; + if (theObj2.IsNull()) return theObj1; + + TColStd_ListOfInteger aTags1, aTags2; + TDF_Tool::TagList(theObj1->GetEntry(), aTags1); + TDF_Tool::TagList(theObj2->GetEntry(), aTags2); + TColStd_ListIteratorOfListOfInteger aListIter1(aTags1), aListIter2(aTags2); + for (; aListIter1.More(); aListIter1.Next(), aListIter2.Next()) { + if (!aListIter2.More()) + return theObj1; // anObj1 is stored under anObj2 + + if (aListIter1.Value() > aListIter2.Value()) + return theObj1; + else if (aListIter1.Value() < aListIter2.Value()) + return theObj2; + } + return theObj1; + } + + Handle(GEOM_Object) GetCreatedLast(const Handle(TColStd_HSequenceOfTransient)& theObjects) + { + Handle(GEOM_Object) anObject, aLatest; + int i, aLen = theObjects->Length(); + if (aLen < 1) + return aLatest; + + for (i = 1; i <= aLen; i++) { + anObject = Handle(GEOM_Object)::DownCast(theObjects->Value(i)); + aLatest = GetCreatedLast(aLatest, anObject); + } + return aLatest; + } }