Salome HOME
Dump Python extension.
authorrnv <rnv@opencascade.com>
Mon, 17 Nov 2008 15:40:53 +0000 (15:40 +0000)
committerrnv <rnv@opencascade.com>
Mon, 17 Nov 2008 15:40:53 +0000 (15:40 +0000)
src/BasicGUI/BasicGUI_PointDlg.cxx
src/DlgRef/DlgRef_1Sel1Spin_QTD.ui
src/DlgRef/DlgRef_1Sel2Spin_QTD.ui
src/DlgRef/DlgRef_1Sel3Spin_QTD.ui
src/GEOM/GEOM_Engine.cxx
src/GEOM/GEOM_Engine.hxx
src/GEOMGUI/GeometryGUI.cxx
src/GEOMGUI/GeometryGUI.h
src/GEOM_I/GEOM_DumpPython.cc
src/GEOM_SWIG/geompyDC.py

index ba8cdd6d2481902cc36b4d89117f49d88177644c..ada27151d909f847252e2424ee36f5cd3cbb6618 100644 (file)
@@ -687,19 +687,36 @@ GEOM::GEOM_IOperations_ptr BasicGUI_PointDlg::createOperation()
 // function : isValid
 // purpose  :
 //=================================================================================
-bool BasicGUI_PointDlg::isValid( QString& /*msg*/ )
+bool BasicGUI_PointDlg::isValid( QString& msg )
 {
   const int id = getConstructorId();
-  if ( id == 0 )
-    return true;
-  else if ( id == 1 )
-    return !myRefPoint->_is_nil();
-  else if ( id == 2 )
-    return !myEdge->_is_nil();
+  if ( id == 0 ) {
+    bool ok = true;
+    ok = GroupXYZ->SpinBox_DX->isValid( msg, !IsPreview() ) && ok;
+    ok = GroupXYZ->SpinBox_DY->isValid( msg, !IsPreview() ) && ok;
+    ok = GroupXYZ->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok;
+    return ok;
+  }
+  else if ( id == 1 ) {
+    bool ok = true;
+    ok = GroupRefPoint->SpinBox_DX->isValid( msg, !IsPreview() ) && ok;
+    ok = GroupRefPoint->SpinBox_DY->isValid( msg, !IsPreview() ) && ok;
+    ok = GroupRefPoint->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok;
+
+    return !myRefPoint->_is_nil() && ok;
+  }
+  else if ( id == 2 ) {
+    return !myEdge->_is_nil() && GroupOnCurve->SpinBox_DX->isValid( msg, !IsPreview() );
+  }
   else if ( id == 3 )
     return ( !myLine1->_is_nil() && !myLine2->_is_nil() );
-  else if ( id == 4 )
-    return !myFace->_is_nil();
+  else if ( id == 4 ) {
+    bool ok = true;
+    ok = GroupOnSurface->SpinBox_DX->isValid( msg, !IsPreview() ) && ok;
+    ok = GroupOnSurface->SpinBox_DY->isValid( msg, !IsPreview() ) && ok;
+    return !myFace->_is_nil() && ok;
+    
+  }
   return false;
 }
 
@@ -712,6 +729,7 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
   bool res = false;
 
   GEOM::GEOM_Object_var anObj;
+  QStringList aParameters;
 
   switch ( getConstructorId() ) {
   case 0 :
@@ -719,6 +737,10 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
       double x = GroupXYZ->SpinBox_DX->value();
       double y = GroupXYZ->SpinBox_DY->value();
       double z = GroupXYZ->SpinBox_DZ->value();
+
+      aParameters << GroupXYZ->SpinBox_DX->text();
+      aParameters << GroupXYZ->SpinBox_DY->text();
+      aParameters << GroupXYZ->SpinBox_DZ->text();
       
       anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePointXYZ( x, y, z );
       res = true;
@@ -729,6 +751,10 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
       double dx = GroupRefPoint->SpinBox_DX->value();
       double dy = GroupRefPoint->SpinBox_DY->value();
       double dz = GroupRefPoint->SpinBox_DZ->value();
+
+      aParameters << GroupRefPoint->SpinBox_DX->text();
+      aParameters << GroupRefPoint->SpinBox_DY->text();
+      aParameters << GroupRefPoint->SpinBox_DZ->text();
       
       anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
        MakePointWithReference( myRefPoint, dx, dy, dz );
@@ -738,6 +764,7 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
   case 2 :
     anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
       MakePointOnCurve( myEdge, getParameter() );
+    aParameters<<GroupOnCurve->SpinBox_DX->text();
     res = true;
     break;
   case 3 :
@@ -748,10 +775,20 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
   case 4 :
     anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
       MakePointOnSurface( myFace, getUParameter(), getVParameter() );
+    aParameters<<GroupOnSurface->SpinBox_DX->text();
+    aParameters<<GroupOnSurface->SpinBox_DY->text();
     res = true;
     break;
   }
   
+  if(!anObj->_is_nil() && (getConstructorId()==0 || 
+                           getConstructorId() == 1 ||
+                           getConstructorId() == 2 ||
+                           getConstructorId() == 4) ) {
+    anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters));
+  }
+  
+
   if ( getConstructorId() == 1 || getConstructorId() == 2 ||
        getConstructorId() == 4 ) {
     TopoDS_Shape aShape;
index 4df5a4e6db7d9b1c7c3e136af1a08993b73fdc8b..06d9d7c13b561b88f3da23461b80656a3ab58232 100644 (file)
        </widget>
       </item>
       <item row="1" column="1" colspan="2" >
-       <widget class="QtxDoubleSpinBox" name="SpinBox_DX" />
+       <widget class="SalomeApp_DoubleSpinBox" name="SpinBox_DX" />
       </item>
      </layout>
     </widget>
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>QtxDoubleSpinBox</class>
+   <class>SalomeApp_DoubleSpinBox</class>
    <extends>QDoubleSpinBox</extends>
-   <header location="global" >QtxDoubleSpinBox.h</header>
+   <header location="global" >SalomeApp_DoubleSpinBox.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
index 25d1a9baf3d9e4e49eda2cbe8507aa8ec7a78450..432160beaed8ec7585f1e9ec1df528943970acdd 100644 (file)
        <number>6</number>
       </property>
       <item row="2" column="1" colspan="2" >
-       <widget class="QtxDoubleSpinBox" name="SpinBox_DY" />
+       <widget class="SalomeApp_DoubleSpinBox" name="SpinBox_DY" />
       </item>
       <item row="1" column="1" colspan="2" >
-       <widget class="QtxDoubleSpinBox" name="SpinBox_DX" />
+       <widget class="SalomeApp_DoubleSpinBox" name="SpinBox_DX" />
       </item>
       <item row="1" column="0" >
        <widget class="QLabel" name="TextLabel2" >
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>QtxDoubleSpinBox</class>
+   <class>SalomeApp_DoubleSpinBox</class>
    <extends>QDoubleSpinBox</extends>
-   <header location="global" >QtxDoubleSpinBox.h</header>
+   <header location="global" >SalomeApp_DoubleSpinBox.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
index 9cabaf01d0ae908ebd0e7e2c9fa56a0a3f972d1d..6ec567c6e59844e782b807cc78d898acf0e107c7 100644 (file)
        <number>6</number>
       </property>
       <item row="2" column="1" colspan="2" >
-       <widget class="QtxDoubleSpinBox" name="SpinBox_DY" />
+       <widget class="SalomeApp_DoubleSpinBox" name="SpinBox_DY" />
       </item>
       <item row="3" column="1" colspan="2" >
-       <widget class="QtxDoubleSpinBox" name="SpinBox_DZ" />
+       <widget class="SalomeApp_DoubleSpinBox" name="SpinBox_DZ" />
       </item>
       <item row="1" column="1" colspan="2" >
-       <widget class="QtxDoubleSpinBox" name="SpinBox_DX" />
+       <widget class="SalomeApp_DoubleSpinBox" name="SpinBox_DX" />
       </item>
       <item row="1" column="0" >
        <widget class="QLabel" name="TextLabel2" >
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>QtxDoubleSpinBox</class>
+   <class>SalomeApp_DoubleSpinBox</class>
    <extends>QDoubleSpinBox</extends>
-   <header location="global" >QtxDoubleSpinBox.h</header>
+   <header location="global" >SalomeApp_DoubleSpinBox.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
index 73b3154143554b2e4f6cd8d3a6b50ed4aa3a14f9..2d01a571965cf2d0faef03e90fca903c7e9ecf88 100644 (file)
@@ -55,6 +55,7 @@
 
 #include <map>
 #include <string>
+#include <vector>
 
 #include <Standard_Failure.hxx>
 #include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
@@ -71,6 +72,8 @@ static int MYDEBUG = 0;
 
 static GEOM_Engine* TheEngine = NULL;
 
+using namespace std;
+
 static TCollection_AsciiString BuildIDFromObject(Handle(GEOM_Object)& theObject)
 {
   TCollection_AsciiString anID(theObject->GetDocID()), anEntry;
@@ -95,13 +98,11 @@ static Standard_Integer ExtractDocID(TCollection_AsciiString& theID)
 
 void ProcessFunction(Handle(GEOM_Function)& theFunction, 
                     TCollection_AsciiString& theScript,
-                     Resource_DataMapOfAsciiStringAsciiString& theVariableNames,
-                     TColStd_HSequenceOfAsciiString& theStudyVariables,
+                     TVariablesList theVariables,
                     TColStd_MapOfTransient& theProcessed);
 
 void ReplaceVariables(TCollection_AsciiString& theCommand, 
-                      Resource_DataMapOfAsciiStringAsciiString& theVariableNames,
-                      TColStd_HSequenceOfAsciiString& theStudyVariables);
+                      TVariablesList theVariables);
 
 
 
@@ -441,8 +442,7 @@ void GEOM_Engine::Close(int theDocID)
 //=============================================================================
 TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
                                                Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
-                                               Resource_DataMapOfAsciiStringAsciiString& theVariableNames,
-                                                TColStd_HSequenceOfAsciiString& theStudyVariables,
+                                                TVariablesList theVariables,
                                                bool isPublished,
                                                bool& aValidScript)
 {
@@ -472,7 +472,7 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
        MESSAGE ( "Null function !!!!" );
        continue;
       }
-      ProcessFunction(aFunction, aScript, theVariableNames, theStudyVariables ,aMap);
+      ProcessFunction(aFunction, aScript, theVariables,aMap);
     }
   }
 
@@ -697,8 +697,7 @@ Handle(TColStd_HSequenceOfAsciiString) GEOM_Engine::GetAllDumpNames() const
 //===========================================================================
 void ProcessFunction(Handle(GEOM_Function)& theFunction, 
                     TCollection_AsciiString& theScript,
-                     Resource_DataMapOfAsciiStringAsciiString& theVariableNames,
-                     TColStd_HSequenceOfAsciiString& theStudyVariables,
+                     TVariablesList theVariables,
                     TColStd_MapOfTransient& theProcessed)
 {
   if(theFunction.IsNull() || theProcessed.Contains(theFunction)) return;
@@ -723,7 +722,7 @@ void ProcessFunction(Handle(GEOM_Function)& theFunction,
   if(aDescr == "None") return;
 
   //Replace parameter by notebook variables
-  ReplaceVariables(aDescr,theVariableNames,theStudyVariables);
+  ReplaceVariables(aDescr,theVariables);
   theScript += "\n\t";
   theScript += aDescr;
 
@@ -776,12 +775,18 @@ Handle(TColStd_HSequenceOfInteger) FindEntries(TCollection_AsciiString& theStrin
  */
 //=============================================================================
 void ReplaceVariables(TCollection_AsciiString& theCommand, 
-                      Resource_DataMapOfAsciiStringAsciiString& theVariableNames,
-                      TColStd_HSequenceOfAsciiString& theStudyVariables)
+                      TVariablesList theVariables)
 {
   //Get Entry of the result object
   TCollection_AsciiString anEntry = theCommand.Token("=",1);
 
+  if (MYDEBUG) {
+    cout<<"All Entries:"<<endl;
+    TVariablesList::const_iterator it = theVariables.begin();
+    for(;it != theVariables.end();it++)
+      cout<<"\t'"<<(*it).first<<"'"<<endl;
+  }
+  
   //Remove white spaces
   anEntry.RightAdjust();
   anEntry.LeftAdjust();
@@ -789,123 +794,81 @@ void ReplaceVariables(TCollection_AsciiString& theCommand,
     cout<<"Result entry : '" <<anEntry<<"'"<<endl;
     
   //Find variables used for object construction
-  TCollection_AsciiString aVariables;
-  if(theVariableNames.IsBound(anEntry)) 
-    aVariables = theVariableNames.Find(anEntry);
+  vector<TVariable> aVariables;
+  TVariablesList::const_iterator it = theVariables.find(anEntry);
+  if( it != theVariables.end() ) 
+    aVariables = (*it).second;
 
-  if(aVariables.IsEmpty()) {
+  if(aVariables.empty()) {
     if(MYDEBUG)
       cout<<"Valiables list empty!!!"<<endl;
     return;
   }
-
-  if(MYDEBUG)
-    cout<<"Variables : '" <<aVariables<<"'"<<endl;
-
-  //Calculate number of variables, that mast be replaced
-  Standard_Integer aNbReplacedParams = 1,aPos;
-  TColStd_HSequenceOfInteger aPositions;
-  while(aPos = aVariables.Location(aNbReplacedParams,':',1,aVariables.Length())) {
-    aPositions.Append(aPos);
-    aNbReplacedParams++;
+  
+  if(MYDEBUG) {
+    cout<<"Variables from SObject:"<<endl;
+    for (int i = 0; i < aVariables.size();i++)
+      cout<<"\t Variable["<<i<<"]"<<aVariables[i].myVariable<<endl;
   }
 
-  if(MYDEBUG)
-    cout<<"Number of replaced variables : " <<aNbReplacedParams<<endl;
-
-  if(MYDEBUG)
-    {
-      for(Standard_Integer i = 1;i<=aPositions.Length();i++)
-        cout<<"Positions ["<<i<<"] = "<<aPositions.Value(i)<<endl;
-    }
-
   //Calculate total number of parameter
   Standard_Integer aTotalNbParams = 1;
   while(theCommand.Location(aTotalNbParams,COMMA,1,theCommand.Length()))
     aTotalNbParams++;
-
-
-  if(MYDEBUG)
-    cout<<"Total Number of parameters : " <<aTotalNbParams<<endl;
-
-  //Get Variables names 
-  TColStd_SequenceOfAsciiString aVarSeq;
-  TCollection_AsciiString aVar;
-  Standard_Integer i = 1;
-  while(i <= aNbReplacedParams){
-    
-    if(i == 1)
-      aVar = (aPositions.Value(i) == 1) ? TCollection_AsciiString() : aVariables.SubString(1, aPositions.Value(i)-1);
-    else if(i == aNbReplacedParams) {
-      Standard_Integer aLen = aVariables.Length();
-      Standard_Integer aPos = aPositions.Value(i-1);
-      aVar = (aPos == aLen) ? TCollection_AsciiString() : aVariables.SubString(aPos+1, aLen);
-    }
-    else {
-      Standard_Integer aPrevPos = aPositions.Value(i-1);
-      Standard_Integer aCurrentPos = aPositions.Value(i);
-      aVar = (aCurrentPos - aPrevPos == 1) ? TCollection_AsciiString() : aVariables.SubString(aPrevPos+1, aCurrentPos-1);
-    }
-    if(MYDEBUG)
-      cout<<"Variable ["<<i<<"] = '"<<aVar<<"'"<<endl;
-    
-    //Add current varibale
-    aVarSeq.Append(aVar);
-    i++;
-  }
-
+  
   //Replace parameters by variables
   Standard_Integer aStartPos = 0;
   Standard_Integer aEndPos = 0;
-  Standard_Integer iVar = 1;
+  int iVar = 0;
+  TCollection_AsciiString aReplasedVar, aVar;
   for(Standard_Integer i=1;i <= aTotalNbParams;i++) {
         
     //Replace first parameter (bettwen '(' character and first ',' character)
-    if(i == 1) 
+    if(i == 1)
       {
         aStartPos = theCommand.Location(O_BRACKET, 1, theCommand.Length()) + 1;
         aEndPos = theCommand.Location(COMMA, 1, theCommand.Length());
       }
     //Replace last parameter (bettwen ',' character and ')' character)
-    else if(i == aVarSeq.Length())
+    else if(i == aTotalNbParams)
       {
         aStartPos = theCommand.Location(i-1, COMMA, 1, theCommand.Length()) + 2;
         aEndPos = theCommand.Location(C_BRACKET, 1, theCommand.Length());
       }
     //Replace other parameters (bettwen two ',' characters)
-    else if(i != 1 && i != aVarSeq.Length())
+    else if(i != 1 && i != aTotalNbParams )
       {
         aStartPos = theCommand.Location(i-1, COMMA, 1, theCommand.Length()) + 2;
         aEndPos = theCommand.Location(i, COMMA, 1, theCommand.Length());
       }
-
-    aVar = aVarSeq.Value(iVar);
-    
+    aVar = theCommand.SubString(aStartPos, aEndPos-1);
+    if(MYDEBUG) 
+      cout<<"Current variable 1: '"<< aVar <<"'"<<endl;
     //If parameter is entry, skip it
     aVar.RightAdjust();
     aVar.LeftAdjust();
-    if(theVariableNames.IsBound(aVar))
+
+    if(MYDEBUG) 
+      cout<<"Current variable 2: '"<< aVar <<"'"<<endl;
+    
+    if(theVariables.find(aVar) != theVariables.end())
       continue;
 
+    aReplasedVar = aVariables[iVar].myVariable;
+   
       
-    if(aVar.IsEmpty()) {
+    if(aReplasedVar.IsEmpty()) {
       iVar++;
       continue;
     }
 
-    bool isVar = false;
-    for(Standard_Integer i = 1; i <= theStudyVariables.Length();i++)
-      if(theStudyVariables.Value(i).IsEqual(aVar)) {
-        isVar = true;
-        break;
-      }
-    if(isVar) {
-      aVar.InsertBefore(1,"\"");
-      aVar.InsertAfter(aVar.Length(),"\"");
+    if(aVariables[iVar].isVariable) {
+      aReplasedVar.InsertBefore(1,"\"");
+      aReplasedVar.InsertAfter(aReplasedVar.Length(),"\"");
     }
 
     theCommand.Remove(aStartPos, aEndPos - aStartPos);
-    theCommand.Insert(aStartPos,aVar);    
+    theCommand.Insert(aStartPos,aReplasedVar);
     iVar++;
   }
 }
index 79fc81f29e911c5418252bb36673442fb0ab1cff..48d7dff45efcdfa26ac637a5ee1e13cf81f85051 100644 (file)
 #include <TColStd_HSequenceOfAsciiString.hxx>
 #include <TDF_Label.hxx>
 
+#include <map>
+#include <vector>
+
+struct TVariable{
+  TCollection_AsciiString myVariable;
+  bool isVariable;
+
+  TVariable(const TCollection_AsciiString& theVariable, bool theFlag = true):
+    myVariable(theVariable),
+    isVariable(theFlag){}
+};
+
+typedef std::map<TCollection_AsciiString, std::vector<TVariable> > TVariablesList;
+
 class GEOM_Engine
 {
  public:
@@ -84,8 +98,7 @@ class GEOM_Engine
 
   Standard_EXPORT TCollection_AsciiString DumpPython(int theDocID, 
                                     Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
-                                     Resource_DataMapOfAsciiStringAsciiString& theVariableNames,
-                                     TColStd_HSequenceOfAsciiString&           theStudyVariables,
+                                     TVariablesList theVariables,
                                     bool isPublished, 
                                     bool& aValidScript);
 
index 3fdf39984e943c75f0c03d766eb7df365ad70293..33f200502fff3b9ba4203686f00cb32274bcd887 100644 (file)
@@ -146,6 +146,14 @@ SALOMEDS::Study_var GeometryGUI::ClientStudyToStudy (_PTR(Study) theStudy)
   return aDSStudy._retn();
 }
 
+//=======================================================================
+// function : JoinObjectParameters
+// purpose  :
+//=======================================================================
+char* GeometryGUI::JoinObjectParameters(const QStringList& theParametersList)
+{
+  return (char*)theParametersList.join(":").toLatin1().constData();
+}
 //=======================================================================
 // function : GeometryGUI::GeometryGUI()
 // purpose  : Constructor
index cf9d7079d360d9212cbb011144cf8ea4c780ff14..45e42e248f92a244794882b71cd7c95cdac6713a 100644 (file)
@@ -81,6 +81,8 @@ public:
   static CORBA::Object_var    ClientSObjectToObject (_PTR(SObject) theSObject);
   static SALOMEDS::Study_var  ClientStudyToStudy (_PTR(Study) theStudy);
 
+  static char*                JoinObjectParameters(const QStringList& theParametersList);
+
   GEOM_Client&                GetShapeReader()    { return myShapeReader; }
   Standard_CString&           GetFatherior()      { return myFatherior; }
   //void                        SetState( const int state ) { myState = state; }
index 1bf4771099d81092600e1c24256612bb0505dc52..c3f7b5da9bde7efbe4d9b3b244f98bfa50607964 100644 (file)
 #include <Standard_Stream.hxx>
 
 #include "GEOM_Gen_i.hh"
+
+//#include <GEOM_Engine.hxx>
 #include <TCollection_AsciiString.hxx>
 #include <TCollection_ExtendedString.hxx>
 #include <TColStd_HSequenceOfAsciiString.hxx>
 #include <Resource_DataMapOfAsciiStringAsciiString.hxx>
 
+#include <vector>
+#include <string>
+
 //=======================================================================
 //function : DumpPython
 //purpose  : 
@@ -46,7 +51,9 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
   if(CORBA::is_nil(aSO))
     return new Engines::TMPFile(0);  
 
-  Resource_DataMapOfAsciiStringAsciiString aMap, aVariableMap;
+  Resource_DataMapOfAsciiStringAsciiString aMap;
+
+  TVariablesList aVariableMap;
 
   SALOMEDS::ChildIterator_var Itr = aStudy->NewChildIterator(aSO);
   for(Itr->InitEx(true); Itr->More(); Itr->Next()) {
@@ -63,28 +70,25 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
        //Find attribute with list of used notebook variables
        SALOMEDS::GenericAttribute_var anAttr;
        SALOMEDS::AttributeString_var anAttrStr;
-       TCollection_AsciiString aParameters;
+       vector<TVariable> aVariables;
        if(aValue->FindAttribute(anAttr,"AttributeString")){
          anAttrStr = SALOMEDS::AttributeString::_narrow(anAttr);
-         aParameters = TCollection_AsciiString(anAttrStr->Value());
+         SALOMEDS::ListOfStrings_var aListOfVars = aStudy->ParseVariables(anAttrStr->Value());
+         for(int i = 0;i < aListOfVars->length();i++) {
+           bool isVar = aStudy->IsVariable(aListOfVars[i].in());
+           TVariable aVar = TVariable( (char*)aListOfVars[i].in(), isVar );
+           aVariables.push_back(aVar);
+         }
        }
-       aVariableMap.Bind((char*)anEntry.in(),aParameters);
+       aVariableMap.insert(pair<TCollection_AsciiString,vector<TVariable> >((char*)anEntry,aVariables));
       }
     }
   }
-
-  //Get Study variables
-  SALOMEDS::ListOfStrings_var aListOfVars = aStudy->GetVariableNames();
-  TColStd_HSequenceOfAsciiString aStudyVariables;
-  for(int i = 0;i < aListOfVars->length();i++)
-    {
-      aStudyVariables.Append(aListOfVars[i].in());
-    }
   
   TCollection_AsciiString aScript =
     "### This file is generated by SALOME automatically by dump python functionality\n"
       "### of GEOM component\n\n";
-  aScript += _impl->DumpPython(aStudy->StudyId(), aMap, aVariableMap, aStudyVariables, isPublished, isValidScript);
+  aScript += _impl->DumpPython(aStudy->StudyId(), aMap, aVariableMap, isPublished, isValidScript);
 
   if (isPublished)
   {
index 2a883e4251fc06490d08fd1bedce3fca6ec5af35..6050ac582747d681188bba0867e19bf71684cadd 100644 (file)
@@ -280,8 +280,10 @@ class geompyDC(GEOM._objref_GEOM_Gen):
         #  @ref tui_creation_point "Example"
         def MakeVertex(self,theX, theY, theZ):
             # Example: see GEOM_TestAll.py
+            theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
             anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
             RaiseIfFailed("MakePointXYZ", self.BasicOp)
+            anObj.SetParameters(Parameters)
             return anObj
 
         ## Create a point, distant from the referenced point
@@ -295,8 +297,10 @@ class geompyDC(GEOM._objref_GEOM_Gen):
         #  @ref tui_creation_point "Example"
         def MakeVertexWithRef(self,theReference, theX, theY, theZ):
             # Example: see GEOM_TestAll.py
+            theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
             anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
             RaiseIfFailed("MakePointWithReference", self.BasicOp)
+            anObj.SetParameters(Parameters)
             return anObj
 
         ## Create a point, corresponding to the given parameter on the given curve.
@@ -307,8 +311,10 @@ class geompyDC(GEOM._objref_GEOM_Gen):
         #  @ref tui_creation_point "Example"
         def MakeVertexOnCurve(self,theRefCurve, theParameter):
             # Example: see GEOM_TestAll.py
+            theParameter, Parameters = ParseParameters(theParameter)
             anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter)
             RaiseIfFailed("MakePointOnCurve", self.BasicOp)
+            anObj.SetParameters(Parameters)
             return anObj
 
         ## Create a point, corresponding to the given parameters on the
@@ -320,9 +326,11 @@ class geompyDC(GEOM._objref_GEOM_Gen):
         #
         #  @ref swig_MakeVertexOnSurface "Example"
         def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter):
+            theUParameter, theVParameter, Parameters = ParseParameters(theParameter)
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter)
             RaiseIfFailed("MakePointOnSurface", self.BasicOp)
+            anObj.SetParameters(Parameters);
             return anObj
 
         ## Create a point on intersection of two lines.