X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_DumpPython.cxx;h=f8e7ec13184a40252b883255cd06e097d1a4d24d;hb=bb8292d2337d06ceb4cb35d910c808b72cd9258c;hp=e0ecf8fcd0cd328d320d187da17eded84f4f9e9e;hpb=c63ee099ad2b149bd70136839c973e8910137bc5;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_DumpPython.cxx b/src/SMESH_I/SMESH_DumpPython.cxx index e0ecf8fcd..f8e7ec131 100644 --- a/src/SMESH_I/SMESH_DumpPython.cxx +++ b/src/SMESH_I/SMESH_DumpPython.cxx @@ -231,6 +231,7 @@ namespace SMESH case FT_BelongToGeom: myStream<< "aBelongToGeom"; break; case FT_BelongToPlane: myStream<< "aBelongToPlane"; break; case FT_BelongToCylinder: myStream<< "aBelongToCylinder"; break; + case FT_BelongToGenSurface:myStream<<"aBelongToGenSurface";break; case FT_LyingOnGeom: myStream<< "aLyingOnGeom"; break; case FT_RangeOfIds: myStream<< "aRangeOfIds"; break; case FT_BadOrientedVolume:myStream<< "aBadOrientedVolume";break; @@ -436,7 +437,7 @@ Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Object_ptr theStudy, // Add trace of API methods calls and replace study entries by names TCollection_AsciiString aScript = "### This file is generated by SALOME automatically by dump python functionality of SMESH component\n\n"; - aScript += DumpPython_impl(aStudy->StudyId(), aMap, aMapNames, + aScript += DumpPython_impl(aStudy, aMap, aMapNames, isPublished, isValidScript, aSavedTrace); int aLen = aScript.Length(); @@ -597,13 +598,15 @@ namespace { */ //============================================================================= TCollection_AsciiString SMESH_Gen_i::DumpPython_impl - (int theStudyID, + (SALOMEDS::Study_ptr theStudy, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, Resource_DataMapOfAsciiStringAsciiString& theNames, bool isPublished, bool& aValidScript, const TCollection_AsciiString& theSavedTrace) { + int aStudyID = theStudy->StudyId(); + TCollection_AsciiString helper; // to comfortably concatenate C strings TCollection_AsciiString aSmeshpy( SMESH_2smeshpy::SmeshpyName() ); TCollection_AsciiString aSMESHGen( SMESH_2smeshpy::GenName() ); @@ -654,7 +657,7 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl } // Dump trace of API methods calls - TCollection_AsciiString aNewLines = GetNewPythonLines(theStudyID); + TCollection_AsciiString aNewLines = GetNewPythonLines(aStudyID); if (aNewLines.Length() > 0) { aScript += helper + "\n" + aNewLines; } @@ -748,6 +751,52 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl if (aSeq->Value(aLen) < aScriptLength) anUpdatedScript += aScript.SubString(aSeq->Value(aLen) + 1, aScriptLength); + + //SMESH_Gen_i* aSMESHGenI = SMESH_Gen_i::GetSMESHGen(); + if( !CORBA::is_nil(theStudy) ) + { + SALOMEDS::SObject_var aComp = theStudy->FindComponent(ComponentDataType()); + if( !CORBA::is_nil(aComp) ) + { + SALOMEDS::ChildIterator_var Itr = theStudy->NewChildIterator(aComp); + for( Itr->InitEx(true); Itr->More(); Itr->Next() ) + { + SALOMEDS::SObject_var aSObj = Itr->Value(); + CORBA::String_var aName = aSObj->GetName(); + + SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( SMESH_Gen_i::SObjectToObject( aSObj ) ); + if( !CORBA::is_nil(aMesh) ) + { + bool isAutoColor = aMesh->GetAutoColor(); + if( isAutoColor ) + { + anUpdatedScript += "\n\t"; + anUpdatedScript += (char*)aName.in(); + anUpdatedScript += ".SetAutoColor(1)"; + } + } + + SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH_Gen_i::SObjectToObject( aSObj ) ); + if( !CORBA::is_nil(aGroup) ) + { + SALOMEDS::Color aColor = aGroup->GetColor(); + if ( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 ) + { + anUpdatedScript += "\n\t"; + anUpdatedScript += (char*)aName.in(); + anUpdatedScript += ".SetColor(SALOMEDS.Color("; + anUpdatedScript += aColor.R; + anUpdatedScript += ","; + anUpdatedScript += aColor.G; + anUpdatedScript += ","; + anUpdatedScript += aColor.B; + anUpdatedScript += "))"; + } + } + } + } + } + // Remove removed objects if ( seqRemoved.Length() > 0 ) { anUpdatedScript += "\n\t## some objects were removed"; @@ -793,6 +842,21 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl } anUpdatedScript += "\n\n\t\tsalome.sg.updateObjBrowser(0)"; + // ----------------------------------------------------------------- + // store visual properties of displayed objects + // ----------------------------------------------------------------- + + if (isPublished) + { + //Output the script that sets up the visual parameters. + char* script = theStudy->GetDefaultScript(ComponentDataType(), "\t"); + if (script && strlen(script) > 0) { + anUpdatedScript += "\n\n\t### Store presentation parameters of displayed objects\n"; + anUpdatedScript += script; + CORBA::string_free(script); + } + } + anUpdatedScript += "\n\n\tpass\n"; // -----------------------------------------------------------------