Issue 0013373: EDF PAL 273 : Option Single/Multi file dump

This commit is contained in:
ouv 2011-03-29 07:36:50 +00:00
parent 723f0c59fb
commit c3caa78045
4 changed files with 42 additions and 5 deletions

View File

@ -561,6 +561,7 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
std::vector<TObjectData>& theObjectData,
TVariablesList theVariables,
bool isPublished,
bool isMultiFile,
bool& aValidScript)
{
// Set "C" numeric locale to save numbers correctly
@ -569,13 +570,22 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
TCollection_AsciiString aScript;
Handle(TDocStd_Document) aDoc = GetDocument(theDocID);
if (aDoc.IsNull()) return TCollection_AsciiString("def RebuildData(theStudy): pass\n");
if (aDoc.IsNull())
{
TCollection_AsciiString anEmptyScript;
if( isMultiFile )
anEmptyScript = "def RebuildData(theStudy): pass\n";
return anEmptyScript;
}
aScript = "import GEOM\n";
aScript += "import geompy\n";
aScript += "import math\n";
aScript += "import SALOMEDS\n\n";
aScript += "def RebuildData(theStudy):";
if( isMultiFile )
aScript += "def RebuildData(theStudy):";
else
aScript += "theStudy = salome.myStudy";
aScript += "\n\tgeompy.init_geom(theStudy)\n";
AddTextures(theDocID, aScript);

View File

@ -139,6 +139,7 @@ class GEOM_Engine
std::vector<TObjectData>& theObjectData,
TVariablesList theVariables,
bool isPublished,
bool isMultiFile,
bool& aValidScript);
Standard_EXPORT const char* GetDumpName (const char* theStudyEntry) const;

View File

@ -36,6 +36,25 @@
#include <vector>
#include <string>
//=======================================================================
//function : RemoveTabulation
//purpose :
//=======================================================================
void RemoveTabulation( TCollection_AsciiString& theScript )
{
std::string aString( theScript.ToCString() );
std::string::size_type aPos = 0;
while( aPos < aString.length() )
{
aPos = aString.find( "\n\t", aPos );
if( aPos == std::string::npos )
break;
aString.replace( aPos, 2, "\n" );
aPos++;
}
theScript = aString.c_str();
}
//=======================================================================
//function : DumpPython
//purpose :
@ -43,7 +62,8 @@
Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
CORBA::Boolean isPublished,
CORBA::Boolean& isValidScript)
CORBA::Boolean isMultiFile,
CORBA::Boolean& isValidScript)
{
SALOMEDS::Study_var aStudy = SALOMEDS::Study::_narrow(theStudy);
if(CORBA::is_nil(aStudy))
@ -98,7 +118,7 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
}
TCollection_AsciiString aScript;
aScript += _impl->DumpPython(aStudy->StudyId(), objectDataVec, aVariableMap, isPublished, isValidScript);
aScript += _impl->DumpPython(aStudy->StudyId(), objectDataVec, aVariableMap, isPublished, isMultiFile, isValidScript);
if (isPublished)
{
@ -111,7 +131,12 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
}
}
aScript += "\n\tpass\n";
if( isMultiFile )
aScript += "\n\tpass";
aScript += "\n";
if( !isMultiFile ) // remove unnecessary tabulation
RemoveTabulation( aScript );
int aLen = aScript.Length();
unsigned char* aBuffer = new unsigned char[aLen+1];

View File

@ -252,6 +252,7 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
CORBA::Boolean isPublished,
CORBA::Boolean isMultiFile,
CORBA::Boolean& isValidScript);
char* GetDumpName (const char* theStudyEntry);