Salome HOME
Merge with PAL/SALOME 2.1.0d PAL_OCC OCC-V2_1_0d
authoradmin <salome-admin@opencascade.com>
Wed, 24 Nov 2004 12:04:58 +0000 (12:04 +0000)
committeradmin <salome-admin@opencascade.com>
Wed, 24 Nov 2004 12:04:58 +0000 (12:04 +0000)
87 files changed:
examples/GeomGraph.py
examples/GeomGraph.xml
examples/GeomGraph_py.py [new file with mode: 0644]
examples/GeomGraph_py.xml [new file with mode: 0644]
examples/GraphCpuUsed.py
examples/GraphEssai3.py
examples/GraphExample.py
examples/GraphGeomEssai.py [new file with mode: 0644]
examples/GraphGeomEssai.xml
examples/GraphGeomEssai_py.py [new file with mode: 0644]
examples/GraphGeomEssai_py.xml [new file with mode: 0644]
examples/GraphInLinesUnValid.py
examples/GraphMerge1.py
examples/GraphSwitch.py
examples/GraphSwitch1.py
examples/GraphSwitchCrash.py
examples/GraphSwitchs.py
examples/GraphSyrControl.py
examples/GraphSyrControl1.py
examples/GraphSyrControlAve.py
examples/GraphSyrControlDefault.py
examples/GraphSyrControlGUI.py
examples/GraphSyracuseC.py
examples/GraphSyracuseCEv.py
examples/GraphSyracuseC_Gate.py [deleted file]
examples/GraphSyracuseC_Gate.xml [deleted file]
examples/GraphSyracuseC_Void.py
examples/GraphSyracuseControl.py
examples/GraphSyracuseCpp.py
examples/GraphUnValid.py
examples/MacroWithGeom.py [new file with mode: 0644]
examples/MacroWithGeom.xml
examples/MacroWithGeom_py.py [new file with mode: 0644]
examples/MacroWithGeom_py.xml [new file with mode: 0644]
examples/NewGraphGeomEssai.py
examples/NewGraphGeomEssai.xml
examples/NewGraphGeomEssai_py.py [new file with mode: 0644]
examples/NewGraphGeomEssai_py.xml [new file with mode: 0644]
examples/SupervRheolefGraph.py [deleted file]
examples/SupervRheolefGraph.xml [deleted file]
examples/myFactorialPy.py
resources/SUPERVCatalog.xml
resources/SUPERV_en.xml
src/GraphBase/DataFlowBase_ComputingNode.cxx
src/GraphBase/DataFlowBase_DataNode.cxx
src/GraphBase/DataFlowBase_FactoryNode.cxx
src/GraphBase/DataFlowBase_Graph.cxx
src/GraphBase/DataFlowBase_LoadXml.cxx
src/GraphBase/DataFlowBase_OutPort.hxx
src/GraphEditor/DataFlowEditor_DataFlow.hxx
src/GraphEditor/DataFlowEditor_DataFlow.lxx
src/GraphEditor/DataFlowEditor_OutNode.cxx
src/GraphEditor/DataFlowEditor_OutNode.hxx
src/GraphExecutor/DataFlowExecutor_DataFlow.cxx
src/GraphExecutor/DataFlowExecutor_FiniteStateMachine.cxx
src/GraphExecutor/DataFlowExecutor_InNode.cxx
src/GraphExecutor/DataFlowExecutor_InNode.hxx
src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx
src/GraphExecutor/DataFlowExecutor_OutNode.cxx
src/GraphExecutor/DataFlowExecutor_OutNode.hxx
src/GraphExecutor/DataFlowExecutor_PyDynInvoke.cxx
src/GraphExecutor/Makefile.in
src/SUPERVGUI/SUPERVGUI.cxx
src/SUPERVGUI/SUPERVGUI.h
src/SUPERVGUI/SUPERVGUI_CanvasControlNode.cxx
src/SUPERVGUI/SUPERVGUI_CanvasLink.cxx
src/SUPERVGUI/SUPERVGUI_CanvasNode.cxx
src/SUPERVGUI/SUPERVGUI_CanvasNode.h
src/SUPERVGUI/SUPERVGUI_CanvasView.cxx
src/SUPERVGUI/SUPERVGUI_CanvasView.h
src/SUPERVGUI/SUPERVGUI_ControlNode.cxx
src/SUPERVGUI/SUPERVGUI_Main.cxx
src/SUPERVGUI/SUPERVGUI_Main.h
src/SUPERVGUI/SUPERVGUI_Node.cxx
src/SUPERVGUI/SUPERVGUI_Node.h
src/SUPERVGUI/SUPERVGUI_Service.cxx
src/SUPERVGUI/SUPERV_msg_en.po
src/Supervision/CNode_Impl.cxx
src/Supervision/ELNode_Impl.cxx
src/Supervision/FNode_Impl.cxx
src/Supervision/GNode_Impl.cxx
src/Supervision/GNode_Impl.hxx
src/Supervision/Graph_Impl.cxx
src/Supervision/LNode_Impl.cxx
src/Supervision/StreamGraph_Impl.cxx
src/Supervision/SuperV.py
src/Supervision/batchmode_SuperV.py

index 9f68efe6cd5750902eb9cfffb00de5399aa19603..0553d96e97fba3abbc0780e6a201cf877e0968cb 100644 (file)
 
-# Generated python file of Graph aNewDataFlow_1_4_2_1_1_2_2_1
+# Generated python file of Graph aNewDataFlow_1
 
 from SuperV import *
 
-# Graph creation of aNewDataFlow_1_4_2_1_1_2_2_1
-def DefaNewDataFlow_1_4_2_1_1_2_2_1() :
-    aNewDataFlow_1_4_2_1_1_2_2_1 = Graph( 'aNewDataFlow_1_4_2_1_1_2_2_1' )
-    aNewDataFlow_1_4_2_1_1_2_2_1.SetName( 'aNewDataFlow_1_4_2_1_1_2_2_1' )
-    aNewDataFlow_1_4_2_1_1_2_2_1.SetAuthor( '' )
-    aNewDataFlow_1_4_2_1_1_2_2_1.SetComment( '' )
-    aNewDataFlow_1_4_2_1_1_2_2_1.Coords( 0 , 0 )
+# Graph creation of aNewDataFlow_1
+def DefaNewDataFlow_1() :
+    aNewDataFlow_1 = Graph( 'aNewDataFlow_1' )
+    aNewDataFlow_1.SetName( 'aNewDataFlow_1' )
+    aNewDataFlow_1.SetAuthor( '' )
+    aNewDataFlow_1.SetComment( '' )
+    aNewDataFlow_1.Coords( 0 , 0 )
     
     # Creation of Factory Nodes
     
-    # Creation of InLine Nodes
-    Pygag = []
-    Pygag.append( 'from batchmode_geompy import *  ' )
-    Pygag.append( 'def gag():   ' )
-    Pygag.append( '    # This is a gag   ' )
-    Pygag.append( '    return 1   ' )
-    gag = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'gag' , Pygag )
-    gag.SetName( 'gag' )
-    gag.SetAuthor( '' )
-    gag.SetComment( 'Compute Node' )
-    gag.Coords( 0 , 123 )
-    IgagGate = gag.GetInPort( 'Gate' )
-    OgagGate = gag.GetOutPort( 'Gate' )
-    
-    PyMakeBox1 = []
-    PyMakeBox1.append( 'def MakeBox1(x1,y1,z1,x2,y2,z2):   ' )
-    PyMakeBox1.append( '    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ' )
-    PyMakeBox1.append( '    return aBox   ' )
-    MakeBox1 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeBox1' , PyMakeBox1 )
-    MakeBox1.SetName( 'MakeBox1' )
-    MakeBox1.SetAuthor( '' )
-    MakeBox1.SetComment( 'Compute Node' )
-    MakeBox1.Coords( 194 , 3 )
-    IMakeBox1x1 = MakeBox1.InPort( 'x1' , 'double' )
-    IMakeBox1y1 = MakeBox1.InPort( 'y1' , 'double' )
-    IMakeBox1z1 = MakeBox1.InPort( 'z1' , 'double' )
-    IMakeBox1x2 = MakeBox1.InPort( 'x2' , 'double' )
-    IMakeBox1y2 = MakeBox1.InPort( 'y2' , 'double' )
-    IMakeBox1z2 = MakeBox1.InPort( 'z2' , 'double' )
-    IMakeBox1Gate = MakeBox1.GetInPort( 'Gate' )
-    OMakeBox1shape = MakeBox1.OutPort( 'shape' , 'objref' )
-    OMakeBox1Gate = MakeBox1.GetOutPort( 'Gate' )
-    
-    PyMakeCopy_1 = []
-    PyMakeCopy_1.append( 'def MakeCopy_1(shape1):  ' )
-    PyMakeCopy_1.append( '    shape=MakeCopy(shape1) ' )
-    PyMakeCopy_1.append( '    return shape ' )
-    MakeCopy_1 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeCopy_1' , PyMakeCopy_1 )
+    SetStudyID = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'SetStudyID' )
+    SetStudyID.SetName( 'SetStudyID' )
+    SetStudyID.SetAuthor( '' )
+    SetStudyID.SetContainer( 'localhost/FactoryServer' )
+    SetStudyID.SetComment( 'SetStudyID from GEOM_Superv' )
+    SetStudyID.Coords( 14 , 241 )
+    ISetStudyIDtheStudyID = SetStudyID.GetInPort( 'theStudyID' )
+    ISetStudyIDGate = SetStudyID.GetInPort( 'Gate' )
+    OSetStudyIDGate = SetStudyID.GetOutPort( 'Gate' )
+    
+    MakeBox = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeBox' )
+    MakeBox.SetName( 'MakeBox' )
+    MakeBox.SetAuthor( '' )
+    MakeBox.SetContainer( 'localhost/FactoryServer' )
+    MakeBox.SetComment( 'MakeBox from GEOM_Superv' )
+    MakeBox.Coords( 198 , 46 )
+    IMakeBoxtheX1 = MakeBox.GetInPort( 'theX1' )
+    IMakeBoxtheY1 = MakeBox.GetInPort( 'theY1' )
+    IMakeBoxtheZ1 = MakeBox.GetInPort( 'theZ1' )
+    IMakeBoxtheX2 = MakeBox.GetInPort( 'theX2' )
+    IMakeBoxtheY2 = MakeBox.GetInPort( 'theY2' )
+    IMakeBoxtheZ2 = MakeBox.GetInPort( 'theZ2' )
+    IMakeBoxGate = MakeBox.GetInPort( 'Gate' )
+    OMakeBoxreturn = MakeBox.GetOutPort( 'return' )
+    OMakeBoxGate = MakeBox.GetOutPort( 'Gate' )
+    
+    MakeCopy = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
+    MakeCopy.SetName( 'MakeCopy' )
+    MakeCopy.SetAuthor( '' )
+    MakeCopy.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy.Coords( 383 , 46 )
+    IMakeCopytheOriginal = MakeCopy.GetInPort( 'theOriginal' )
+    IMakeCopyGate = MakeCopy.GetInPort( 'Gate' )
+    OMakeCopyreturn = MakeCopy.GetOutPort( 'return' )
+    OMakeCopyGate = MakeCopy.GetOutPort( 'Gate' )
+    
+    TranslateDXDYDZ = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetName( 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetAuthor( '' )
+    TranslateDXDYDZ.SetContainer( 'localhost/FactoryServer' )
+    TranslateDXDYDZ.SetComment( 'TranslateDXDYDZ from GEOM_Superv' )
+    TranslateDXDYDZ.Coords( 579 , 46 )
+    ITranslateDXDYDZtheObject = TranslateDXDYDZ.GetInPort( 'theObject' )
+    ITranslateDXDYDZtheDX = TranslateDXDYDZ.GetInPort( 'theDX' )
+    ITranslateDXDYDZtheDY = TranslateDXDYDZ.GetInPort( 'theDY' )
+    ITranslateDXDYDZtheDZ = TranslateDXDYDZ.GetInPort( 'theDZ' )
+    ITranslateDXDYDZGate = TranslateDXDYDZ.GetInPort( 'Gate' )
+    OTranslateDXDYDZreturn = TranslateDXDYDZ.GetOutPort( 'return' )
+    OTranslateDXDYDZGate = TranslateDXDYDZ.GetOutPort( 'Gate' )
+    
+    MakeCopy_1 = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
     MakeCopy_1.SetName( 'MakeCopy_1' )
     MakeCopy_1.SetAuthor( '' )
-    MakeCopy_1.SetComment( 'Compute Node' )
-    MakeCopy_1.Coords( 389 , 3 )
-    IMakeCopy_1shape1 = MakeCopy_1.InPort( 'shape1' , 'objref' )
+    MakeCopy_1.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy_1.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy_1.Coords( 384 , 168 )
+    IMakeCopy_1theOriginal = MakeCopy_1.GetInPort( 'theOriginal' )
     IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
-    OMakeCopy_1shape = MakeCopy_1.OutPort( 'shape' , 'objref' )
+    OMakeCopy_1return = MakeCopy_1.GetOutPort( 'return' )
     OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
     
-    PyMakeCopy_2 = []
-    PyMakeCopy_2.append( 'def MakeCopy_2(shape1):  ' )
-    PyMakeCopy_2.append( '    shape=MakeCopy(shape1)  ' )
-    PyMakeCopy_2.append( '    return shape ' )
-    MakeCopy_2 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeCopy_2' , PyMakeCopy_2 )
-    MakeCopy_2.SetName( 'MakeCopy_2' )
-    MakeCopy_2.SetAuthor( '' )
-    MakeCopy_2.SetComment( 'Compute Node' )
-    MakeCopy_2.Coords( 389 , 136 )
-    IMakeCopy_2shape1 = MakeCopy_2.InPort( 'shape1' , 'objref' )
-    IMakeCopy_2Gate = MakeCopy_2.GetInPort( 'Gate' )
-    OMakeCopy_2shape = MakeCopy_2.OutPort( 'shape' , 'objref' )
-    OMakeCopy_2Gate = MakeCopy_2.GetOutPort( 'Gate' )
-    
-    PyMakeSphere_1 = []
-    PyMakeSphere_1.append( 'def MakeSphere_1(x1,y1,z1,radius):   ' )
-    PyMakeSphere_1.append( '    apoint=MakeVertex(x1,y1,z1) ' )
-    PyMakeSphere_1.append( '    shape=MakeSphere(apoint,radius) ' )
-    PyMakeSphere_1.append( '    return shape ' )
-    MakeSphere_1 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeSphere_1' , PyMakeSphere_1 )
+    MakeSphere_1 = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeSphere' )
     MakeSphere_1.SetName( 'MakeSphere_1' )
     MakeSphere_1.SetAuthor( '' )
-    MakeSphere_1.SetComment( 'Compute Node' )
-    MakeSphere_1.Coords( 203 , 315 )
-    IMakeSphere_1x1 = MakeSphere_1.InPort( 'x1' , 'double' )
-    IMakeSphere_1y1 = MakeSphere_1.InPort( 'y1' , 'double' )
-    IMakeSphere_1z1 = MakeSphere_1.InPort( 'z1' , 'double' )
-    IMakeSphere_1radius = MakeSphere_1.InPort( 'radius' , 'double' )
+    MakeSphere_1.SetContainer( 'localhost/FactoryServer' )
+    MakeSphere_1.SetComment( 'MakeSphere from GEOM_Superv' )
+    MakeSphere_1.Coords( 201 , 332 )
+    IMakeSphere_1theX = MakeSphere_1.GetInPort( 'theX' )
+    IMakeSphere_1theY = MakeSphere_1.GetInPort( 'theY' )
+    IMakeSphere_1theZ = MakeSphere_1.GetInPort( 'theZ' )
+    IMakeSphere_1theRadius = MakeSphere_1.GetInPort( 'theRadius' )
     IMakeSphere_1Gate = MakeSphere_1.GetInPort( 'Gate' )
-    OMakeSphere_1shape = MakeSphere_1.OutPort( 'shape' , 'objref' )
+    OMakeSphere_1return = MakeSphere_1.GetOutPort( 'return' )
     OMakeSphere_1Gate = MakeSphere_1.GetOutPort( 'Gate' )
     
-    PyMakeTranslation_1 = []
-    PyMakeTranslation_1.append( 'def MakeTranslation_1(shape1,x1,y1,z1):   ' )
-    PyMakeTranslation_1.append( '    shape = MakeTranslation(shape1,x1,y1,z1)  ' )
-    PyMakeTranslation_1.append( '    return shape  ' )
-    MakeTranslation_1 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeTranslation_1' , PyMakeTranslation_1 )
-    MakeTranslation_1.SetName( 'MakeTranslation_1' )
-    MakeTranslation_1.SetAuthor( '' )
-    MakeTranslation_1.SetComment( 'Compute Node' )
-    MakeTranslation_1.Coords( 596 , 3 )
-    IMakeTranslation_1shape1 = MakeTranslation_1.InPort( 'shape1' , 'objref' )
-    IMakeTranslation_1x1 = MakeTranslation_1.InPort( 'x1' , 'double' )
-    IMakeTranslation_1y1 = MakeTranslation_1.InPort( 'y1' , 'double' )
-    IMakeTranslation_1z1 = MakeTranslation_1.InPort( 'z1' , 'double' )
-    IMakeTranslation_1Gate = MakeTranslation_1.GetInPort( 'Gate' )
-    OMakeTranslation_1shape = MakeTranslation_1.OutPort( 'shape' , 'objref' )
-    OMakeTranslation_1Gate = MakeTranslation_1.GetOutPort( 'Gate' )
-    
-    PyMakeFuse_1 = []
-    PyMakeFuse_1.append( 'def MakeFuse_1(shape1,shape2): ' )
-    PyMakeFuse_1.append( '    # fuse operation 3 ' )
-    PyMakeFuse_1.append( '    shape = MakeBoolean(shape1,shape2,3)  ' )
-    PyMakeFuse_1.append( '    return shape ' )
-    MakeFuse_1 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeFuse_1' , PyMakeFuse_1 )
+    MakeFuse = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeFuse' )
+    MakeFuse.SetName( 'MakeFuse' )
+    MakeFuse.SetAuthor( '' )
+    MakeFuse.SetContainer( 'localhost/FactoryServer' )
+    MakeFuse.SetComment( 'MakeFuse from GEOM_Superv' )
+    MakeFuse.Coords( 790 , 148 )
+    IMakeFusetheShape1 = MakeFuse.GetInPort( 'theShape1' )
+    IMakeFusetheShape2 = MakeFuse.GetInPort( 'theShape2' )
+    IMakeFuseGate = MakeFuse.GetInPort( 'Gate' )
+    OMakeFusereturn = MakeFuse.GetOutPort( 'return' )
+    OMakeFuseGate = MakeFuse.GetOutPort( 'Gate' )
+    
+    MakeFuse_1 = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeFuse' )
     MakeFuse_1.SetName( 'MakeFuse_1' )
     MakeFuse_1.SetAuthor( '' )
-    MakeFuse_1.SetComment( 'Compute Node' )
-    MakeFuse_1.Coords( 823 , 116 )
-    IMakeFuse_1shape1 = MakeFuse_1.InPort( 'shape1' , 'objref' )
-    IMakeFuse_1shape2 = MakeFuse_1.InPort( 'shape2' , 'objref' )
+    MakeFuse_1.SetContainer( 'localhost/FactoryServer' )
+    MakeFuse_1.SetComment( 'MakeFuse from GEOM_Superv' )
+    MakeFuse_1.Coords( 993 , 312 )
+    IMakeFuse_1theShape1 = MakeFuse_1.GetInPort( 'theShape1' )
+    IMakeFuse_1theShape2 = MakeFuse_1.GetInPort( 'theShape2' )
     IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
-    OMakeFuse_1shape = MakeFuse_1.OutPort( 'shape' , 'objref' )
+    OMakeFuse_1return = MakeFuse_1.GetOutPort( 'return' )
     OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
     
-    PyMakeFuse_2 = []
-    PyMakeFuse_2.append( 'def MakeFuse_2(shape1,shape2):           ' )
-    PyMakeFuse_2.append( '    # fuse operation 3          ' )
-    PyMakeFuse_2.append( '    shape = MakeBoolean(shape1,shape2,3) ' )
-    PyMakeFuse_2.append( '    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ' )
-    PyMakeFuse_2.append( '    myNamingService = SALOME_NamingServicePy_i(orb) ' )
-    PyMakeFuse_2.append( '    aSession = myNamingService.Resolve('/Kernel/Session') ' )
-    PyMakeFuse_2.append( '    aStudyId = aSession.GetActiveStudyId() ' )
-    PyMakeFuse_2.append( '    myStudyManager = myNamingService.Resolve('/myStudyManager') ' )
-    PyMakeFuse_2.append( '    aStudy = myStudyManager.GetStudyByID(aStudyId) ' )
-    PyMakeFuse_2.append( '    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ' )
-    PyMakeFuse_2.append( '    return shape ' )
-    MakeFuse_2 = aNewDataFlow_1_4_2_1_1_2_2_1.INode( 'MakeFuse_2' , PyMakeFuse_2 )
-    MakeFuse_2.SetName( 'MakeFuse_2' )
-    MakeFuse_2.SetAuthor( '' )
-    MakeFuse_2.SetComment( 'Compute Node' )
-    MakeFuse_2.Coords( 1049 , 295 )
-    IMakeFuse_2shape1 = MakeFuse_2.InPort( 'shape1' , 'objref' )
-    IMakeFuse_2shape2 = MakeFuse_2.InPort( 'shape2' , 'objref' )
-    IMakeFuse_2Gate = MakeFuse_2.GetInPort( 'Gate' )
-    OMakeFuse_2shape = MakeFuse_2.OutPort( 'shape' , 'objref' )
-    OMakeFuse_2Gate = MakeFuse_2.GetOutPort( 'Gate' )
-    
     # Creation of Links
-    LgagGateMakeBox1Gate = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OgagGate , IMakeBox1Gate )
+    LSetStudyIDGateMakeBoxGate = aNewDataFlow_1.Link( OSetStudyIDGate , IMakeBoxGate )
     
-    LgagGateMakeSphere_1Gate = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OgagGate , IMakeSphere_1Gate )
-    LgagGateMakeSphere_1Gate.AddCoord( 1 , 164 , 470 )
-    LgagGateMakeSphere_1Gate.AddCoord( 2 , 164 , 265 )
+    LSetStudyIDGateMakeSphere_1Gate = aNewDataFlow_1.Link( OSetStudyIDGate , IMakeSphere_1Gate )
     
-    LMakeBox1shapeMakeCopy_1shape1 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeBox1shape , IMakeCopy_1shape1 )
+    LMakeBoxreturnMakeCopytheOriginal = aNewDataFlow_1.Link( OMakeBoxreturn , IMakeCopytheOriginal )
     
-    LMakeBox1shapeMakeCopy_2shape1 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeBox1shape , IMakeCopy_2shape1 )
-    LMakeBox1shapeMakeCopy_2shape1.AddCoord( 1 , 384 , 207 )
+    LMakeBoxreturnMakeCopy_1theOriginal = aNewDataFlow_1.Link( OMakeBoxreturn , IMakeCopy_1theOriginal )
     
-    LMakeCopy_1shapeMakeTranslation_1shape1 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeCopy_1shape , IMakeTranslation_1shape1 )
+    LMakeCopyreturnTranslateDXDYDZtheObject = aNewDataFlow_1.Link( OMakeCopyreturn , ITranslateDXDYDZtheObject )
     
-    LMakeCopy_2shapeMakeFuse_1shape2 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeCopy_2shape , IMakeFuse_1shape2 )
-    LMakeCopy_2shapeMakeFuse_1shape2.AddCoord( 1 , 674 , 207 )
+    LTranslateDXDYDZreturnMakeFusetheShape1 = aNewDataFlow_1.Link( OTranslateDXDYDZreturn , IMakeFusetheShape1 )
     
-    LMakeSphere_1shapeMakeFuse_2shape2 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeSphere_1shape , IMakeFuse_2shape2 )
+    LMakeCopy_1returnMakeFusetheShape2 = aNewDataFlow_1.Link( OMakeCopy_1return , IMakeFusetheShape2 )
     
-    LMakeTranslation_1shapeMakeFuse_1shape1 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeTranslation_1shape , IMakeFuse_1shape1 )
+    LMakeSphere_1returnMakeFuse_1theShape2 = aNewDataFlow_1.Link( OMakeSphere_1return , IMakeFuse_1theShape2 )
     
-    LMakeFuse_1shapeMakeFuse_2shape1 = aNewDataFlow_1_4_2_1_1_2_2_1.Link( OMakeFuse_1shape , IMakeFuse_2shape1 )
-    LMakeFuse_1shapeMakeFuse_2shape1.AddCoord( 1 , 1017 , 366 )
-    LMakeFuse_1shapeMakeFuse_2shape1.AddCoord( 2 , 1017 , 187 )
+    LMakeFusereturnMakeFuse_1theShape1 = aNewDataFlow_1.Link( OMakeFusereturn , IMakeFuse_1theShape1 )
     
     # Input datas
-    IMakeBox1x1.Input( 0 )
-    IMakeBox1y1.Input( 0 )
-    IMakeBox1z1.Input( 0 )
-    IMakeBox1x2.Input( 50 )
-    IMakeBox1y2.Input( 50 )
-    IMakeBox1z2.Input( 50 )
-    IMakeSphere_1x1.Input( 0 )
-    IMakeSphere_1y1.Input( 0 )
-    IMakeSphere_1z1.Input( 0 )
-    IMakeSphere_1radius.Input( 12 )
-    IMakeTranslation_1x1.Input( 25 )
-    IMakeTranslation_1y1.Input( 25 )
-    IMakeTranslation_1z1.Input( 25 )
+    ISetStudyIDtheStudyID.Input( 1 )
+    IMakeBoxtheX1.Input( 0 )
+    IMakeBoxtheY1.Input( 0 )
+    IMakeBoxtheZ1.Input( 0 )
+    IMakeBoxtheX2.Input( 50 )
+    IMakeBoxtheY2.Input( 50 )
+    IMakeBoxtheZ2.Input( 50 )
+    ITranslateDXDYDZtheDX.Input( 10 )
+    ITranslateDXDYDZtheDY.Input( 10 )
+    ITranslateDXDYDZtheDZ.Input( 10 )
+    IMakeSphere_1theX.Input( 0 )
+    IMakeSphere_1theY.Input( 0 )
+    IMakeSphere_1theZ.Input( 0 )
+    IMakeSphere_1theRadius.Input( 12 )
     
     # Output Ports of the graph
-    #OMakeFuse_2shape = MakeFuse_2.GetOutPort( 'shape' )
-    return aNewDataFlow_1_4_2_1_1_2_2_1
+    #OMakeFuse_1return = MakeFuse_1.GetOutPort( 'return' )
+    return aNewDataFlow_1
 
 
-aNewDataFlow_1_4_2_1_1_2_2_1 = DefaNewDataFlow_1_4_2_1_1_2_2_1()
+aNewDataFlow_1 = DefaNewDataFlow_1()
index eb77edc6800fc9bbb1d053854d80e85f06902f2d..663002d1323dd558129f62df5226b301b1f37f5a 100644 (file)
@@ -5,59 +5,62 @@
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>aNewDataFlow_1_4_2_1_1_2_2_1</node-name>
+    <node-name>aNewDataFlow_1</node-name>
     <kind>1</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>aNewDataFlow_1_4_2_1_1_2_2_1</service-name>
+<service-name>aNewDataFlow_1</service-name>
      <inParameter-list>
 <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>SetStudyID__theStudyID</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theX1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theY1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theZ1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__x2</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theX2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__y2</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theY2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__z2</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theZ2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere_1__theX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere_1__theY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere_1__theZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>MakeSphere_1__theRadius</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>MakeFuse_2__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>MakeFuse_1__return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list/>
-    <creation-date>25/8/2004 - 16:28:50</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <creation-date>29/10/2004 - 10:52:34</creation-date>
+    <lastmodification-date>11/11/2004 - 11:41:31</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
     <y-position>0</y-position>   </node>  </info-list>
   <node-list>
 <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>gag</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>SetStudyID</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>gag</service-name>
-     <inParameter-list/>
+<service-name>SetStudyID</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>theStudyID</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list/>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>gag</FuncName>
-      <PyFunc><![CDATA[from batchmode_geompy import *  ]]></PyFunc>
-      <PyFunc><![CDATA[def gag():   ]]></PyFunc>
-      <PyFunc><![CDATA[    # This is a gag   ]]></PyFunc>
-      <PyFunc><![CDATA[    return 1   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:16:35</creation-date>
+    <lastmodification-date>11/11/2004 - 11:16:35</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>0</x-position>
-    <y-position>123</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>SetStudyID from GEOM_Superv</comment>
+    <x-position>14</x-position>
+    <y-position>241</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeBox1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeBox</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeBox1</service-name>
+<service-name>MakeBox</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
+       <inParameter-name>theX1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
+       <inParameter-name>theY1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
+       <inParameter-name>theZ1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x2</inParameter-name>      </inParameter>
+       <inParameter-name>theX2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y2</inParameter-name>      </inParameter>
+       <inParameter-name>theY2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z2</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>theZ2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeBox1</FuncName>
-      <PyFunc><![CDATA[def MakeBox1(x1,y1,z1,x2,y2,z2):   ]]></PyFunc>
-      <PyFunc><![CDATA[    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return aBox   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:17:44</creation-date>
+    <lastmodification-date>11/11/2004 - 11:17:44</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>194</x-position>
-    <y-position>3</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeBox from GEOM_Superv</comment>
+    <x-position>198</x-position>
+    <y-position>46</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_1</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_1</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_1(shape1):  ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:36:29</creation-date>
+    <lastmodification-date>11/11/2004 - 11:36:29</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>389</x-position>
-    <y-position>3</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>383</x-position>
+    <y-position>46</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_2</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>TranslateDXDYDZ</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_2</service-name>
+<service-name>TranslateDXDYDZ</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theObject</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDX</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDY</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDZ</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_2</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_2(shape1):  ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:37:10</creation-date>
+    <lastmodification-date>11/11/2004 - 11:37:10</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>389</x-position>
-    <y-position>136</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>TranslateDXDYDZ from GEOM_Superv</comment>
+    <x-position>579</x-position>
+    <y-position>46</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeSphere_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeSphere_1</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeSphere_1</FuncName>
-      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):   ]]></PyFunc>
-      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1) ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeSphere(apoint,radius) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:38:45</creation-date>
+    <lastmodification-date>11/11/2004 - 11:38:45</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>203</x-position>
-    <y-position>315</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>384</x-position>
+    <y-position>168</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeTranslation_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeSphere_1</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeTranslation_1</service-name>
+<service-name>MakeSphere</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
+       <inParameter-name>theY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
+       <inParameter-name>theZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>theRadius</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeTranslation_1</FuncName>
-      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:38:54</creation-date>
+    <lastmodification-date>11/11/2004 - 11:38:54</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>596</x-position>
-    <y-position>3</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeSphere from GEOM_Superv</comment>
+    <x-position>201</x-position>
+    <y-position>332</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeFuse_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeFuse</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeFuse_1</service-name>
+<service-name>MakeFuse</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape1</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeFuse_1</FuncName>
-      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2): ]]></PyFunc>
-      <PyFunc><![CDATA[    # fuse operation 3 ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:39:55</creation-date>
+    <lastmodification-date>11/11/2004 - 11:39:55</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>823</x-position>
-    <y-position>116</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeFuse from GEOM_Superv</comment>
+    <x-position>790</x-position>
+    <y-position>148</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeFuse_2</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeFuse_1</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeFuse_2</service-name>
+<service-name>MakeFuse</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape1</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeFuse_2</FuncName>
-      <PyFunc><![CDATA[def MakeFuse_2(shape1,shape2):           ]]></PyFunc>
-      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
-      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
-      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
-      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 9:41:28</creation-date>
-    <lastmodification-date>30/8/2004 - 9:41:28</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 11:40:15</creation-date>
+    <lastmodification-date>11/11/2004 - 11:40:15</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>1049</x-position>
-    <y-position>295</y-position>   </node>  </node-list>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeFuse from GEOM_Superv</comment>
+    <x-position>993</x-position>
+    <y-position>312</y-position>   </node>  </node-list>
   <link-list>
 <link>
-<fromnode-name>gag</fromnode-name>
+<fromnode-name>SetStudyID</fromnode-name>
     <fromserviceparameter-name>Gate</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
+    <tonode-name>MakeBox</tonode-name>
     <toserviceparameter-name>Gate</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>gag</fromnode-name>
+<fromnode-name>SetStudyID</fromnode-name>
     <fromserviceparameter-name>Gate</fromserviceparameter-name>
     <tonode-name>MakeSphere_1</tonode-name>
     <toserviceparameter-name>Gate</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>164</x>
-      <y>470</y>     </coord>
-     <coord>
-<x>164</x>
-      <y>265</y>     </coord>    </coord-list>   </link>
+    <coord-list/>   </link>
    <link>
-<fromnode-name>MakeBox1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeBox</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeBox1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_2</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>384</x>
-      <y>207</y>     </coord>    </coord-list>   </link>
+<fromnode-name>MakeBox</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
+    <coord-list/>   </link>
    <link>
-<fromnode-name>MakeCopy_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeCopy</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theObject</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeCopy_2</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape2</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>674</x>
-      <y>207</y>     </coord>    </coord-list>   </link>
+<fromnode-name>TranslateDXDYDZ</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape1</toserviceparameter-name>
+    <coord-list/>   </link>
    <link>
-<fromnode-name>MakeSphere_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_2</tonode-name>
-    <toserviceparameter-name>shape2</toserviceparameter-name>
+<fromnode-name>MakeCopy_1</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape2</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeTranslation_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
     <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <toserviceparameter-name>theShape2</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeFuse_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_2</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>1017</x>
-      <y>366</y>     </coord>
-     <coord>
-<x>1017</x>
-      <y>187</y>     </coord>    </coord-list>   </link>  </link-list>
+<fromnode-name>MakeFuse</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>theShape1</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
   <data-list>
 <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__x1</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>SetStudyID__theStudyID</fromserviceparameter-name>
+    <tonode-name>SetStudyID</tonode-name>
+    <toserviceparameter-name>theStudyID</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theX1</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theX1</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__y1</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theY1</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theY1</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__z1</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theZ1</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theZ1</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__x2</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>x2</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theX2</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theX2</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__y2</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>y2</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theY2</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theY2</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__z2</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>z2</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theZ2</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theZ2</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDX</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>0</value>    </data-value>
+     <value>10</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDY</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>0</value>    </data-value>
+     <value>10</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDZ</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>0</value>    </data-value>
+     <value>10</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__theX</fromserviceparameter-name>
     <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>radius</toserviceparameter-name>
+    <toserviceparameter-name>theX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>12</value>    </data-value>
+     <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__theY</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>theY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>25</value>    </data-value>
+     <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__theZ</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>theZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>25</value>    </data-value>
+     <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__theRadius</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>theRadius</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>25</value>    </data-value>
+     <value>12</value>    </data-value>
     <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GeomGraph_py.py b/examples/GeomGraph_py.py
new file mode 100644 (file)
index 0000000..163a2dd
--- /dev/null
@@ -0,0 +1,196 @@
+
+# Generated python file of Graph aNewDataFlow_1_4_2_1_1_2_2_1_1
+
+from SuperV import *
+
+# Graph creation of aNewDataFlow_1_4_2_1_1_2_2_1_1
+def DefaNewDataFlow_1_4_2_1_1_2_2_1_1() :
+    aNewDataFlow_1_4_2_1_1_2_2_1_1 = Graph( 'aNewDataFlow_1_4_2_1_1_2_2_1_1' )
+    aNewDataFlow_1_4_2_1_1_2_2_1_1.SetName( 'aNewDataFlow_1_4_2_1_1_2_2_1_1' )
+    aNewDataFlow_1_4_2_1_1_2_2_1_1.SetAuthor( '' )
+    aNewDataFlow_1_4_2_1_1_2_2_1_1.SetComment( '' )
+    aNewDataFlow_1_4_2_1_1_2_2_1_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    Pygag = []
+    Pygag.append( 'from batchmode_geompy import *  ' )
+    Pygag.append( 'def gag():   ' )
+    Pygag.append( '    # This is a gag   ' )
+    Pygag.append( '    return 1   ' )
+    gag = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'gag' , Pygag )
+    gag.SetName( 'gag' )
+    gag.SetAuthor( '' )
+    gag.SetComment( 'Compute Node' )
+    gag.Coords( 0 , 123 )
+    IgagGate = gag.GetInPort( 'Gate' )
+    OgagGate = gag.GetOutPort( 'Gate' )
+    
+    PyMakeBox1 = []
+    PyMakeBox1.append( 'def MakeBox1(x1,y1,z1,x2,y2,z2):   ' )
+    PyMakeBox1.append( '    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ' )
+    PyMakeBox1.append( '    return aBox   ' )
+    MakeBox1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeBox1' , PyMakeBox1 )
+    MakeBox1.SetName( 'MakeBox1' )
+    MakeBox1.SetAuthor( '' )
+    MakeBox1.SetComment( 'Compute Node' )
+    MakeBox1.Coords( 194 , 3 )
+    IMakeBox1x1 = MakeBox1.InPort( 'x1' , 'double' )
+    IMakeBox1y1 = MakeBox1.InPort( 'y1' , 'double' )
+    IMakeBox1z1 = MakeBox1.InPort( 'z1' , 'double' )
+    IMakeBox1x2 = MakeBox1.InPort( 'x2' , 'double' )
+    IMakeBox1y2 = MakeBox1.InPort( 'y2' , 'double' )
+    IMakeBox1z2 = MakeBox1.InPort( 'z2' , 'double' )
+    IMakeBox1Gate = MakeBox1.GetInPort( 'Gate' )
+    OMakeBox1shape = MakeBox1.OutPort( 'shape' , 'objref' )
+    OMakeBox1Gate = MakeBox1.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_1 = []
+    PyMakeCopy_1.append( 'def MakeCopy_1(shape1):  ' )
+    PyMakeCopy_1.append( '    shape=MakeCopy(shape1) ' )
+    PyMakeCopy_1.append( '    return shape ' )
+    MakeCopy_1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeCopy_1' , PyMakeCopy_1 )
+    MakeCopy_1.SetName( 'MakeCopy_1' )
+    MakeCopy_1.SetAuthor( '' )
+    MakeCopy_1.SetComment( 'Compute Node' )
+    MakeCopy_1.Coords( 389 , 3 )
+    IMakeCopy_1shape1 = MakeCopy_1.InPort( 'shape1' , 'objref' )
+    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
+    OMakeCopy_1shape = MakeCopy_1.OutPort( 'shape' , 'objref' )
+    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_2 = []
+    PyMakeCopy_2.append( 'def MakeCopy_2(shape1):  ' )
+    PyMakeCopy_2.append( '    shape=MakeCopy(shape1)  ' )
+    PyMakeCopy_2.append( '    return shape ' )
+    MakeCopy_2 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeCopy_2' , PyMakeCopy_2 )
+    MakeCopy_2.SetName( 'MakeCopy_2' )
+    MakeCopy_2.SetAuthor( '' )
+    MakeCopy_2.SetComment( 'Compute Node' )
+    MakeCopy_2.Coords( 389 , 136 )
+    IMakeCopy_2shape1 = MakeCopy_2.InPort( 'shape1' , 'objref' )
+    IMakeCopy_2Gate = MakeCopy_2.GetInPort( 'Gate' )
+    OMakeCopy_2shape = MakeCopy_2.OutPort( 'shape' , 'objref' )
+    OMakeCopy_2Gate = MakeCopy_2.GetOutPort( 'Gate' )
+    
+    PyMakeSphere_1 = []
+    PyMakeSphere_1.append( 'def MakeSphere_1(x1,y1,z1,radius):   ' )
+    PyMakeSphere_1.append( '    apoint=MakeVertex(x1,y1,z1) ' )
+    PyMakeSphere_1.append( '    shape=MakeSpherePntR(apoint,radius) ' )
+    PyMakeSphere_1.append( '    return shape ' )
+    MakeSphere_1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeSphere_1' , PyMakeSphere_1 )
+    MakeSphere_1.SetName( 'MakeSphere_1' )
+    MakeSphere_1.SetAuthor( '' )
+    MakeSphere_1.SetComment( 'Compute Node' )
+    MakeSphere_1.Coords( 203 , 315 )
+    IMakeSphere_1x1 = MakeSphere_1.InPort( 'x1' , 'double' )
+    IMakeSphere_1y1 = MakeSphere_1.InPort( 'y1' , 'double' )
+    IMakeSphere_1z1 = MakeSphere_1.InPort( 'z1' , 'double' )
+    IMakeSphere_1radius = MakeSphere_1.InPort( 'radius' , 'double' )
+    IMakeSphere_1Gate = MakeSphere_1.GetInPort( 'Gate' )
+    OMakeSphere_1shape = MakeSphere_1.OutPort( 'shape' , 'objref' )
+    OMakeSphere_1Gate = MakeSphere_1.GetOutPort( 'Gate' )
+    
+    PyMakeTranslation_1 = []
+    PyMakeTranslation_1.append( 'def MakeTranslation_1(shape1,x1,y1,z1):   ' )
+    PyMakeTranslation_1.append( '    shape = MakeTranslation(shape1,x1,y1,z1)  ' )
+    PyMakeTranslation_1.append( '    return shape  ' )
+    MakeTranslation_1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeTranslation_1' , PyMakeTranslation_1 )
+    MakeTranslation_1.SetName( 'MakeTranslation_1' )
+    MakeTranslation_1.SetAuthor( '' )
+    MakeTranslation_1.SetComment( 'Compute Node' )
+    MakeTranslation_1.Coords( 596 , 3 )
+    IMakeTranslation_1shape1 = MakeTranslation_1.InPort( 'shape1' , 'objref' )
+    IMakeTranslation_1x1 = MakeTranslation_1.InPort( 'x1' , 'double' )
+    IMakeTranslation_1y1 = MakeTranslation_1.InPort( 'y1' , 'double' )
+    IMakeTranslation_1z1 = MakeTranslation_1.InPort( 'z1' , 'double' )
+    IMakeTranslation_1Gate = MakeTranslation_1.GetInPort( 'Gate' )
+    OMakeTranslation_1shape = MakeTranslation_1.OutPort( 'shape' , 'objref' )
+    OMakeTranslation_1Gate = MakeTranslation_1.GetOutPort( 'Gate' )
+    
+    PyMakeFuse_1 = []
+    PyMakeFuse_1.append( 'def MakeFuse_1(shape1,shape2): ' )
+    PyMakeFuse_1.append( '    # fuse operation 3 ' )
+    PyMakeFuse_1.append( '    shape = MakeBoolean(shape1,shape2,3)  ' )
+    PyMakeFuse_1.append( '    return shape ' )
+    MakeFuse_1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeFuse_1' , PyMakeFuse_1 )
+    MakeFuse_1.SetName( 'MakeFuse_1' )
+    MakeFuse_1.SetAuthor( '' )
+    MakeFuse_1.SetComment( 'Compute Node' )
+    MakeFuse_1.Coords( 823 , 116 )
+    IMakeFuse_1shape1 = MakeFuse_1.InPort( 'shape1' , 'objref' )
+    IMakeFuse_1shape2 = MakeFuse_1.InPort( 'shape2' , 'objref' )
+    IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
+    OMakeFuse_1shape = MakeFuse_1.OutPort( 'shape' , 'objref' )
+    OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
+    
+    PyMakeFuse_2 = []
+    PyMakeFuse_2.append( 'def MakeFuse_2(shape1,shape2):           ' )
+    PyMakeFuse_2.append( '    # fuse operation 3          ' )
+    PyMakeFuse_2.append( '    shape = MakeBoolean(shape1,shape2,3) ' )
+    PyMakeFuse_2.append( '    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ' )
+    PyMakeFuse_2.append( '    myNamingService = SALOME_NamingServicePy_i(orb) ' )
+    PyMakeFuse_2.append( '    aSession = myNamingService.Resolve('/Kernel/Session') ' )
+    PyMakeFuse_2.append( '    aStudyId = aSession.GetActiveStudyId() ' )
+    PyMakeFuse_2.append( '    myStudyManager = myNamingService.Resolve('/myStudyManager') ' )
+    PyMakeFuse_2.append( '    aStudy = myStudyManager.GetStudyByID(aStudyId) ' )
+    PyMakeFuse_2.append( '    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ' )
+    PyMakeFuse_2.append( '    return shape ' )
+    MakeFuse_2 = aNewDataFlow_1_4_2_1_1_2_2_1_1.INode( 'MakeFuse_2' , PyMakeFuse_2 )
+    MakeFuse_2.SetName( 'MakeFuse_2' )
+    MakeFuse_2.SetAuthor( '' )
+    MakeFuse_2.SetComment( 'Compute Node' )
+    MakeFuse_2.Coords( 1049 , 295 )
+    IMakeFuse_2shape1 = MakeFuse_2.InPort( 'shape1' , 'objref' )
+    IMakeFuse_2shape2 = MakeFuse_2.InPort( 'shape2' , 'objref' )
+    IMakeFuse_2Gate = MakeFuse_2.GetInPort( 'Gate' )
+    OMakeFuse_2shape = MakeFuse_2.OutPort( 'shape' , 'objref' )
+    OMakeFuse_2Gate = MakeFuse_2.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LgagGateMakeBox1Gate = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OgagGate , IMakeBox1Gate )
+    
+    LgagGateMakeSphere_1Gate = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OgagGate , IMakeSphere_1Gate )
+    LgagGateMakeSphere_1Gate.AddCoord( 1 , 164 , 470 )
+    LgagGateMakeSphere_1Gate.AddCoord( 2 , 164 , 265 )
+    
+    LMakeBox1shapeMakeCopy_1shape1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeBox1shape , IMakeCopy_1shape1 )
+    
+    LMakeBox1shapeMakeCopy_2shape1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeBox1shape , IMakeCopy_2shape1 )
+    LMakeBox1shapeMakeCopy_2shape1.AddCoord( 1 , 384 , 207 )
+    
+    LMakeCopy_1shapeMakeTranslation_1shape1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeCopy_1shape , IMakeTranslation_1shape1 )
+    
+    LMakeCopy_2shapeMakeFuse_1shape2 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeCopy_2shape , IMakeFuse_1shape2 )
+    LMakeCopy_2shapeMakeFuse_1shape2.AddCoord( 1 , 674 , 207 )
+    
+    LMakeSphere_1shapeMakeFuse_2shape2 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeSphere_1shape , IMakeFuse_2shape2 )
+    
+    LMakeTranslation_1shapeMakeFuse_1shape1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeTranslation_1shape , IMakeFuse_1shape1 )
+    
+    LMakeFuse_1shapeMakeFuse_2shape1 = aNewDataFlow_1_4_2_1_1_2_2_1_1.Link( OMakeFuse_1shape , IMakeFuse_2shape1 )
+    LMakeFuse_1shapeMakeFuse_2shape1.AddCoord( 1 , 1017 , 366 )
+    LMakeFuse_1shapeMakeFuse_2shape1.AddCoord( 2 , 1017 , 187 )
+    
+    # Input datas
+    IMakeBox1x1.Input( 0 )
+    IMakeBox1y1.Input( 0 )
+    IMakeBox1z1.Input( 0 )
+    IMakeBox1x2.Input( 50 )
+    IMakeBox1y2.Input( 50 )
+    IMakeBox1z2.Input( 50 )
+    IMakeSphere_1x1.Input( 0 )
+    IMakeSphere_1y1.Input( 0 )
+    IMakeSphere_1z1.Input( 0 )
+    IMakeSphere_1radius.Input( 12 )
+    IMakeTranslation_1x1.Input( 25 )
+    IMakeTranslation_1y1.Input( 25 )
+    IMakeTranslation_1z1.Input( 25 )
+    
+    # Output Ports of the graph
+    #OMakeFuse_2shape = MakeFuse_2.GetOutPort( 'shape' )
+    return aNewDataFlow_1_4_2_1_1_2_2_1_1
+
+
+aNewDataFlow_1_4_2_1_1_2_2_1_1 = DefaNewDataFlow_1_4_2_1_1_2_2_1_1()
diff --git a/examples/GeomGraph_py.xml b/examples/GeomGraph_py.xml
new file mode 100644 (file)
index 0000000..d6ea4e9
--- /dev/null
@@ -0,0 +1,550 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__x2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__y2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__z2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>MakeFuse_2__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>25/8/2004 - 16:28:50</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>gag</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>gag</service-name>
+     <inParameter-list/>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>gag</FuncName>
+      <PyFunc><![CDATA[from batchmode_geompy import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def gag():   ]]></PyFunc>
+      <PyFunc><![CDATA[    # This is a gag   ]]></PyFunc>
+      <PyFunc><![CDATA[    return 1   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>0</x-position>
+    <y-position>123</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeBox1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeBox1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeBox1</FuncName>
+      <PyFunc><![CDATA[def MakeBox1(x1,y1,z1,x2,y2,z2):   ]]></PyFunc>
+      <PyFunc><![CDATA[    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return aBox   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>3</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_1</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_1(shape1):  ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>389</x-position>
+    <y-position>3</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_2</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_2</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_2(shape1):  ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>389</x-position>
+    <y-position>136</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeSphere_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeSphere_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeSphere_1</FuncName>
+      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):   ]]></PyFunc>
+      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1) ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeSpherePntR(apoint,radius) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>203</x-position>
+    <y-position>315</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeTranslation_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeTranslation_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeTranslation_1</FuncName>
+      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>596</x-position>
+    <y-position>3</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeFuse_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeFuse_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeFuse_1</FuncName>
+      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2): ]]></PyFunc>
+      <PyFunc><![CDATA[    # fuse operation 3 ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>823</x-position>
+    <y-position>116</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeFuse_2</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeFuse_2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeFuse_2</FuncName>
+      <PyFunc><![CDATA[def MakeFuse_2(shape1,shape2):           ]]></PyFunc>
+      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
+      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
+      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
+      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 10:50:25</creation-date>
+    <lastmodification-date>29/10/2004 - 10:50:25</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>1049</x-position>
+    <y-position>295</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>gag</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>gag</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>164</x>
+      <y>470</y>     </coord>
+     <coord>
+<x>164</x>
+      <y>265</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>MakeBox1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeBox1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_2</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>384</x>
+      <y>207</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>MakeCopy_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeCopy_2</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>674</x>
+      <y>207</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_2</tonode-name>
+    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeTranslation_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeFuse_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_2</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>1017</x>
+      <y>366</y>     </coord>
+     <coord>
+<x>1017</x>
+      <y>187</y>     </coord>    </coord-list>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__x1</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__y1</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__z1</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__x2</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>x2</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__y2</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>y2</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__z2</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>z2</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>radius</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>12</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1_1_2_2_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
index 15906f188968d6bf1c5d56cb60d8e5a0a6c97e40..1fc954a95bace80d8f013443a9584f4674d320c8 100755 (executable)
@@ -134,6 +134,7 @@ CompareResult = Compare.Port( 'Result' )
 
 GraphCpuUsed.Run()
 GraphCpuUsed.DoneW()
+print GraphCpuUsed.State()
 GraphCpuUsed.PrintPorts()
 print "sigma",sigma.CpuUsed(),"seconds"
 print "Sigma",Sigma.CpuUsed(),"seconds"
index 945840ef437dee215d157f18297054f6cf07556c..325ee695c814fcf65173a4ac6edd06c5e1cce592 100644 (file)
@@ -62,7 +62,9 @@ AddAndCompare_ServiceinParameter.append( SALOME_ModuleCatalog.ServicesParameter(
 AddAndCompare_ServiceoutParameter = []
 AddAndCompare_ServiceoutParameter.append( SALOME_ModuleCatalog.ServicesParameter( 'double' , 'FuncValue' ) )
 AddAndCompare_ServiceoutParameter.append( SALOME_ModuleCatalog.ServicesParameter( 'double' , 'z' ) )
-AddAndCompare_Service = SALOME_ModuleCatalog.Service( 'AddAndCompare' , AddAndCompare_ServiceinParameter , AddAndCompare_ServiceoutParameter , 0 )
+AddAndCompare_ServiceinStreamParameter = []
+AddAndCompare_ServiceoutStreamParameter = []
+AddAndCompare_Service = SALOME_ModuleCatalog.Service( 'AddAndCompare' , AddAndCompare_ServiceinParameter , AddAndCompare_ServiceoutParameter , AddAndCompare_ServiceinStreamParameter , AddAndCompare_ServiceoutStreamParameter , 0 , 0 )
 AddAndCompare = GraphEssai3.CNode( AddAndCompare_Service )
 AddAndCompare.SetName( 'AddAndCompare' )
 AddAndCompare.SetAuthor( '' )
@@ -117,7 +119,7 @@ GraphEssai3.Run()
 
 GraphEssai3.DoneW()
 
-GraphEssai3.State()
+print GraphEssai3.State()
 
 GraphEssai3.PrintPorts()
 
index 7329474687ebddfeec46d0c50001ad77d8631791..672e9dcc721652264d07c0a4359ab30644cc8c98 100644 (file)
@@ -13,7 +13,6 @@
 from SuperV import *
 
 myGraph = Graph( "myDataFlow" )
-print myGraph.SetContainer('FactoryServer')
 
 Add = myGraph.Node( "AddComponent" , "AddInterface" , "Add" )
 print Add.SetContainer('dm2s0017')
diff --git a/examples/GraphGeomEssai.py b/examples/GraphGeomEssai.py
new file mode 100644 (file)
index 0000000..cd59a99
--- /dev/null
@@ -0,0 +1,116 @@
+
+# Generated python file of Graph aNewDataFlow
+
+from SuperV import *
+
+# Graph creation of aNewDataFlow
+def DefaNewDataFlow() :
+    aNewDataFlow = Graph( 'aNewDataFlow' )
+    aNewDataFlow.SetName( 'aNewDataFlow' )
+    aNewDataFlow.SetAuthor( '' )
+    aNewDataFlow.SetComment( '' )
+    aNewDataFlow.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    SetStudyID = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'SetStudyID' )
+    SetStudyID.SetName( 'SetStudyID' )
+    SetStudyID.SetAuthor( '' )
+    SetStudyID.SetContainer( 'localhost/FactoryServer' )
+    SetStudyID.SetComment( 'SetStudyID from GEOM_Superv' )
+    SetStudyID.Coords( 13 , 109 )
+    ISetStudyIDtheStudyID = SetStudyID.GetInPort( 'theStudyID' )
+    ISetStudyIDGate = SetStudyID.GetInPort( 'Gate' )
+    OSetStudyIDGate = SetStudyID.GetOutPort( 'Gate' )
+    
+    MakeSphere = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeSphere' )
+    MakeSphere.SetName( 'MakeSphere' )
+    MakeSphere.SetAuthor( '' )
+    MakeSphere.SetContainer( 'localhost/FactoryServer' )
+    MakeSphere.SetComment( 'MakeSphere from GEOM_Superv' )
+    MakeSphere.Coords( 210 , 49 )
+    IMakeSpheretheX = MakeSphere.GetInPort( 'theX' )
+    IMakeSpheretheY = MakeSphere.GetInPort( 'theY' )
+    IMakeSpheretheZ = MakeSphere.GetInPort( 'theZ' )
+    IMakeSpheretheRadius = MakeSphere.GetInPort( 'theRadius' )
+    IMakeSphereGate = MakeSphere.GetInPort( 'Gate' )
+    OMakeSpherereturn = MakeSphere.GetOutPort( 'return' )
+    OMakeSphereGate = MakeSphere.GetOutPort( 'Gate' )
+    
+    MakeCopy = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
+    MakeCopy.SetName( 'MakeCopy' )
+    MakeCopy.SetAuthor( '' )
+    MakeCopy.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy.Coords( 412 , 12 )
+    IMakeCopytheOriginal = MakeCopy.GetInPort( 'theOriginal' )
+    IMakeCopyGate = MakeCopy.GetInPort( 'Gate' )
+    OMakeCopyreturn = MakeCopy.GetOutPort( 'return' )
+    OMakeCopyGate = MakeCopy.GetOutPort( 'Gate' )
+    
+    MakeCopy_1 = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
+    MakeCopy_1.SetName( 'MakeCopy_1' )
+    MakeCopy_1.SetAuthor( '' )
+    MakeCopy_1.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy_1.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy_1.Coords( 414 , 183 )
+    IMakeCopy_1theOriginal = MakeCopy_1.GetInPort( 'theOriginal' )
+    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
+    OMakeCopy_1return = MakeCopy_1.GetOutPort( 'return' )
+    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    
+    TranslateDXDYDZ = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetName( 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetAuthor( '' )
+    TranslateDXDYDZ.SetContainer( 'localhost/FactoryServer' )
+    TranslateDXDYDZ.SetComment( 'TranslateDXDYDZ from GEOM_Superv' )
+    TranslateDXDYDZ.Coords( 606 , 12 )
+    ITranslateDXDYDZtheObject = TranslateDXDYDZ.GetInPort( 'theObject' )
+    ITranslateDXDYDZtheDX = TranslateDXDYDZ.GetInPort( 'theDX' )
+    ITranslateDXDYDZtheDY = TranslateDXDYDZ.GetInPort( 'theDY' )
+    ITranslateDXDYDZtheDZ = TranslateDXDYDZ.GetInPort( 'theDZ' )
+    ITranslateDXDYDZGate = TranslateDXDYDZ.GetInPort( 'Gate' )
+    OTranslateDXDYDZreturn = TranslateDXDYDZ.GetOutPort( 'return' )
+    OTranslateDXDYDZGate = TranslateDXDYDZ.GetOutPort( 'Gate' )
+    
+    MakeFuse = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeFuse' )
+    MakeFuse.SetName( 'MakeFuse' )
+    MakeFuse.SetAuthor( '' )
+    MakeFuse.SetContainer( 'localhost/FactoryServer' )
+    MakeFuse.SetComment( 'MakeFuse from GEOM_Superv' )
+    MakeFuse.Coords( 801 , 163 )
+    IMakeFusetheShape1 = MakeFuse.GetInPort( 'theShape1' )
+    IMakeFusetheShape2 = MakeFuse.GetInPort( 'theShape2' )
+    IMakeFuseGate = MakeFuse.GetInPort( 'Gate' )
+    OMakeFusereturn = MakeFuse.GetOutPort( 'return' )
+    OMakeFuseGate = MakeFuse.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LSetStudyIDGateMakeSphereGate = aNewDataFlow.Link( OSetStudyIDGate , IMakeSphereGate )
+    
+    LMakeSpherereturnMakeCopytheOriginal = aNewDataFlow.Link( OMakeSpherereturn , IMakeCopytheOriginal )
+    
+    LMakeSpherereturnMakeCopy_1theOriginal = aNewDataFlow.Link( OMakeSpherereturn , IMakeCopy_1theOriginal )
+    
+    LMakeCopyreturnTranslateDXDYDZtheObject = aNewDataFlow.Link( OMakeCopyreturn , ITranslateDXDYDZtheObject )
+    
+    LMakeCopy_1returnMakeFusetheShape2 = aNewDataFlow.Link( OMakeCopy_1return , IMakeFusetheShape2 )
+    
+    LTranslateDXDYDZreturnMakeFusetheShape1 = aNewDataFlow.Link( OTranslateDXDYDZreturn , IMakeFusetheShape1 )
+    
+    # Input datas
+    ISetStudyIDtheStudyID.Input( 1 )
+    IMakeSpheretheX.Input( 0 )
+    IMakeSpheretheY.Input( 0 )
+    IMakeSpheretheZ.Input( 0 )
+    IMakeSpheretheRadius.Input( 20 )
+    ITranslateDXDYDZtheDX.Input( 10 )
+    ITranslateDXDYDZtheDY.Input( 10 )
+    ITranslateDXDYDZtheDZ.Input( 10 )
+    
+    # Output Ports of the graph
+    #OMakeFusereturn = MakeFuse.GetOutPort( 'return' )
+    return aNewDataFlow
+
+
+aNewDataFlow = DefaNewDataFlow()
index ff75b209426a82250819b318b2be62070f90c871..029943e398055756b1348d99d72cc8ac411764d0 100644 (file)
@@ -5,42 +5,45 @@
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>GraphGeomEssai_1_1_1</node-name>
+    <node-name>aNewDataFlow</node-name>
     <kind>1</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>GraphGeomEssai_1_1_1</service-name>
+<service-name>aNewDataFlow</service-name>
      <inParameter-list>
 <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>SetStudyID__theStudyID</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theRadius</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>TranslateDXDYDZ__theDZ</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>MakeFuse_1__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>MakeFuse__return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list/>
-    <creation-date>10/7/2002 - 14:53:2</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
-    <editor-release>1.03</editor-release>
+    <creation-date>29/10/2004 - 11:8:11</creation-date>
+    <lastmodification-date>11/11/2004 - 12:53:24</lastmodification-date>
+    <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
     <comment>?</comment>
     <y-position>0</y-position>   </node>  </info-list>
   <node-list>
 <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>gag</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>SetStudyID</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>gag</service-name>
-     <inParameter-list/>
+<service-name>SetStudyID</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>theStudyID</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list/>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>gag</FuncName>
-      <PyFunc><![CDATA[from batchmode_geompy import *   ]]></PyFunc>
-      <PyFunc><![CDATA[def gag():    ]]></PyFunc>
-      <PyFunc><![CDATA[    # This is a gag    ]]></PyFunc>
-      <PyFunc><![CDATA[    return 1 ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:8:1</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 12:50:30</creation-date>
+    <lastmodification-date>11/11/2004 - 12:50:30</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>0</x-position>
-    <y-position>166</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>SetStudyID from GEOM_Superv</comment>
+    <x-position>13</x-position>
+    <y-position>109</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeSphere_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeSphere</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeSphere_1</service-name>
+<service-name>MakeSphere</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
+       <inParameter-name>theX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
+       <inParameter-name>theY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
+       <inParameter-name>theZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>theRadius</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeSphere_1</FuncName>
-      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):    ]]></PyFunc>
-      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeSphere(apoint,radius)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:8:1</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 12:51:22</creation-date>
+    <lastmodification-date>11/11/2004 - 12:51:22</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>181</x-position>
-    <y-position>86</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeSphere from GEOM_Superv</comment>
+    <x-position>210</x-position>
+    <y-position>49</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_1</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_1</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_1(shape1):   ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:8:1</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 12:52:16</creation-date>
+    <lastmodification-date>11/11/2004 - 12:52:16</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>386</x-position>
-    <y-position>2</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>412</x-position>
+    <y-position>12</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_2</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_2</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_2</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_2(shape1):   ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:8:1</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 12:52:31</creation-date>
+    <lastmodification-date>11/11/2004 - 12:52:31</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>388</x-position>
-    <y-position>181</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>414</x-position>
+    <y-position>183</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeTranslation_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>TranslateDXDYDZ</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeTranslation_1</service-name>
+<service-name>TranslateDXDYDZ</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theObject</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
+       <inParameter-name>theDX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
+       <inParameter-name>theDY</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDZ</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeTranslation_1</FuncName>
-      <PyFunc><![CDATA[def MakeTranslation_1(x1,y1,z1,shape1):     ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)    ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:8:1</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 12:52:54</creation-date>
+    <lastmodification-date>11/11/2004 - 12:52:54</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>581</x-position>
-    <y-position>1</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>TranslateDXDYDZ from GEOM_Superv</comment>
+    <x-position>606</x-position>
+    <y-position>12</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeFuse_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeFuse</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeFuse_1</service-name>
+<service-name>MakeFuse</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape1</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeFuse_1</FuncName>
-      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2):           ]]></PyFunc>
-      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
-      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
-      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
-      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:8:1</creation-date>
-    <lastmodification-date>30/8/2004 - 10:8:1</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 12:53:16</creation-date>
+    <lastmodification-date>11/11/2004 - 12:53:16</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>779</x-position>
-    <y-position>161</y-position>   </node>  </node-list>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeFuse from GEOM_Superv</comment>
+    <x-position>801</x-position>
+    <y-position>163</y-position>   </node>  </node-list>
   <link-list>
 <link>
-<fromnode-name>gag</fromnode-name>
+<fromnode-name>SetStudyID</fromnode-name>
     <fromserviceparameter-name>Gate</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
+    <tonode-name>MakeSphere</tonode-name>
     <toserviceparameter-name>Gate</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeSphere_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeSphere</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeSphere_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_2</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeSphere</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeCopy_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeCopy</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theObject</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeCopy_2</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape2</toserviceparameter-name>
+<fromnode-name>MakeCopy_1</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape2</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeTranslation_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>TranslateDXDYDZ</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape1</toserviceparameter-name>
     <coord-list/>   </link>  </link-list>
   <data-list>
 <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>SetStudyID__theStudyID</fromserviceparameter-name>
+    <tonode-name>SetStudyID</tonode-name>
+    <toserviceparameter-name>theStudyID</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theX</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theY</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theZ</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>radius</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theRadius</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theRadius</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>20</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDX</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>10</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDY</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>10</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>GraphGeomEssai_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDZ</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>10</value>    </data-value>
diff --git a/examples/GraphGeomEssai_py.py b/examples/GraphGeomEssai_py.py
new file mode 100644 (file)
index 0000000..7385ef0
--- /dev/null
@@ -0,0 +1,143 @@
+
+# Generated python file of Graph GraphGeomEssai_1_1_1_1
+
+from SuperV import *
+
+# Graph creation of GraphGeomEssai_1_1_1_1
+def DefGraphGeomEssai_1_1_1_1() :
+    GraphGeomEssai_1_1_1_1 = Graph( 'GraphGeomEssai_1_1_1_1' )
+    GraphGeomEssai_1_1_1_1.SetName( 'GraphGeomEssai_1_1_1_1' )
+    GraphGeomEssai_1_1_1_1.SetAuthor( '' )
+    GraphGeomEssai_1_1_1_1.SetComment( '' )
+    GraphGeomEssai_1_1_1_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    Pygag = []
+    Pygag.append( 'from batchmode_geompy import *   ' )
+    Pygag.append( 'def gag():    ' )
+    Pygag.append( '    # This is a gag    ' )
+    Pygag.append( '    return 1 ' )
+    gag = GraphGeomEssai_1_1_1_1.INode( 'gag' , Pygag )
+    gag.SetName( 'gag' )
+    gag.SetAuthor( '' )
+    gag.SetComment( 'Compute Node' )
+    gag.Coords( 0 , 166 )
+    IgagGate = gag.GetInPort( 'Gate' )
+    OgagGate = gag.GetOutPort( 'Gate' )
+    
+    PyMakeSphere_1 = []
+    PyMakeSphere_1.append( 'def MakeSphere_1(x1,y1,z1,radius):    ' )
+    PyMakeSphere_1.append( '    apoint=MakeVertex(x1,y1,z1)  ' )
+    PyMakeSphere_1.append( '    shape=MakeSpherePntR(apoint,radius)  ' )
+    PyMakeSphere_1.append( '    return shape  ' )
+    MakeSphere_1 = GraphGeomEssai_1_1_1_1.INode( 'MakeSphere_1' , PyMakeSphere_1 )
+    MakeSphere_1.SetName( 'MakeSphere_1' )
+    MakeSphere_1.SetAuthor( '' )
+    MakeSphere_1.SetComment( 'Compute Node' )
+    MakeSphere_1.Coords( 181 , 86 )
+    IMakeSphere_1x1 = MakeSphere_1.InPort( 'x1' , 'double' )
+    IMakeSphere_1y1 = MakeSphere_1.InPort( 'y1' , 'double' )
+    IMakeSphere_1z1 = MakeSphere_1.InPort( 'z1' , 'double' )
+    IMakeSphere_1radius = MakeSphere_1.InPort( 'radius' , 'double' )
+    IMakeSphere_1Gate = MakeSphere_1.GetInPort( 'Gate' )
+    OMakeSphere_1shape = MakeSphere_1.OutPort( 'shape' , 'objref' )
+    OMakeSphere_1Gate = MakeSphere_1.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_1 = []
+    PyMakeCopy_1.append( 'def MakeCopy_1(shape1):   ' )
+    PyMakeCopy_1.append( '    shape=MakeCopy(shape1)  ' )
+    PyMakeCopy_1.append( '    return shape  ' )
+    MakeCopy_1 = GraphGeomEssai_1_1_1_1.INode( 'MakeCopy_1' , PyMakeCopy_1 )
+    MakeCopy_1.SetName( 'MakeCopy_1' )
+    MakeCopy_1.SetAuthor( '' )
+    MakeCopy_1.SetComment( 'Compute Node' )
+    MakeCopy_1.Coords( 386 , 2 )
+    IMakeCopy_1shape1 = MakeCopy_1.InPort( 'shape1' , 'objref' )
+    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
+    OMakeCopy_1shape = MakeCopy_1.OutPort( 'shape' , 'objref' )
+    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_2 = []
+    PyMakeCopy_2.append( 'def MakeCopy_2(shape1):   ' )
+    PyMakeCopy_2.append( '    shape=MakeCopy(shape1)  ' )
+    PyMakeCopy_2.append( '    return shape  ' )
+    MakeCopy_2 = GraphGeomEssai_1_1_1_1.INode( 'MakeCopy_2' , PyMakeCopy_2 )
+    MakeCopy_2.SetName( 'MakeCopy_2' )
+    MakeCopy_2.SetAuthor( '' )
+    MakeCopy_2.SetComment( 'Compute Node' )
+    MakeCopy_2.Coords( 388 , 181 )
+    IMakeCopy_2shape1 = MakeCopy_2.InPort( 'shape1' , 'objref' )
+    IMakeCopy_2Gate = MakeCopy_2.GetInPort( 'Gate' )
+    OMakeCopy_2shape = MakeCopy_2.OutPort( 'shape' , 'objref' )
+    OMakeCopy_2Gate = MakeCopy_2.GetOutPort( 'Gate' )
+    
+    PyMakeFuse_1 = []
+    PyMakeFuse_1.append( 'def MakeFuse_1(shape1,shape2):           ' )
+    PyMakeFuse_1.append( '    # fuse operation 3          ' )
+    PyMakeFuse_1.append( '    shape = MakeBoolean(shape1,shape2,3) ' )
+    PyMakeFuse_1.append( '    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ' )
+    PyMakeFuse_1.append( '    myNamingService = SALOME_NamingServicePy_i(orb) ' )
+    PyMakeFuse_1.append( '    aSession = myNamingService.Resolve('/Kernel/Session') ' )
+    PyMakeFuse_1.append( '    aStudyId = aSession.GetActiveStudyId() ' )
+    PyMakeFuse_1.append( '    myStudyManager = myNamingService.Resolve('/myStudyManager') ' )
+    PyMakeFuse_1.append( '    aStudy = myStudyManager.GetStudyByID(aStudyId) ' )
+    PyMakeFuse_1.append( '    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ' )
+    PyMakeFuse_1.append( '    return shape ' )
+    MakeFuse_1 = GraphGeomEssai_1_1_1_1.INode( 'MakeFuse_1' , PyMakeFuse_1 )
+    MakeFuse_1.SetName( 'MakeFuse_1' )
+    MakeFuse_1.SetAuthor( '' )
+    MakeFuse_1.SetComment( 'Compute Node' )
+    MakeFuse_1.Coords( 779 , 161 )
+    IMakeFuse_1shape1 = MakeFuse_1.InPort( 'shape1' , 'objref' )
+    IMakeFuse_1shape2 = MakeFuse_1.InPort( 'shape2' , 'objref' )
+    IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
+    OMakeFuse_1shape = MakeFuse_1.OutPort( 'shape' , 'objref' )
+    OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
+    
+    PyMakeTranslation_1 = []
+    PyMakeTranslation_1.append( 'def MakeTranslation_1(shape1,x1,y1,z1):   ' )
+    PyMakeTranslation_1.append( '    shape = MakeTranslation(shape1,x1,y1,z1)  ' )
+    PyMakeTranslation_1.append( '    return shape' )
+    MakeTranslation_1 = GraphGeomEssai_1_1_1_1.INode( 'MakeTranslation_1' , PyMakeTranslation_1 )
+    MakeTranslation_1.SetName( 'MakeTranslation_1' )
+    MakeTranslation_1.SetAuthor( '' )
+    MakeTranslation_1.SetComment( 'Compute Node' )
+    MakeTranslation_1.Coords( 580 , 2 )
+    IMakeTranslation_1shape1 = MakeTranslation_1.InPort( 'shape1' , 'objref' )
+    IMakeTranslation_1x1 = MakeTranslation_1.InPort( 'x1' , 'double' )
+    IMakeTranslation_1y1 = MakeTranslation_1.InPort( 'y1' , 'double' )
+    IMakeTranslation_1z1 = MakeTranslation_1.InPort( 'z1' , 'double' )
+    IMakeTranslation_1Gate = MakeTranslation_1.GetInPort( 'Gate' )
+    OMakeTranslation_1shape = MakeTranslation_1.OutPort( 'shape' , 'objref' )
+    OMakeTranslation_1Gate = MakeTranslation_1.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LgagGateMakeSphere_1Gate = GraphGeomEssai_1_1_1_1.Link( OgagGate , IMakeSphere_1Gate )
+    
+    LMakeSphere_1shapeMakeCopy_1shape1 = GraphGeomEssai_1_1_1_1.Link( OMakeSphere_1shape , IMakeCopy_1shape1 )
+    
+    LMakeSphere_1shapeMakeCopy_2shape1 = GraphGeomEssai_1_1_1_1.Link( OMakeSphere_1shape , IMakeCopy_2shape1 )
+    
+    LMakeCopy_1shapeMakeTranslation_1shape1 = GraphGeomEssai_1_1_1_1.Link( OMakeCopy_1shape , IMakeTranslation_1shape1 )
+    
+    LMakeCopy_2shapeMakeFuse_1shape2 = GraphGeomEssai_1_1_1_1.Link( OMakeCopy_2shape , IMakeFuse_1shape2 )
+    
+    LMakeTranslation_1shapeMakeFuse_1shape1 = GraphGeomEssai_1_1_1_1.Link( OMakeTranslation_1shape , IMakeFuse_1shape1 )
+    
+    # Input datas
+    IMakeSphere_1x1.Input( 0 )
+    IMakeSphere_1y1.Input( 0 )
+    IMakeSphere_1z1.Input( 0 )
+    IMakeSphere_1radius.Input( 20 )
+    IMakeTranslation_1x1.Input( 10 )
+    IMakeTranslation_1y1.Input( 10 )
+    IMakeTranslation_1z1.Input( 10 )
+    
+    # Output Ports of the graph
+    #OMakeFuse_1shape = MakeFuse_1.GetOutPort( 'shape' )
+    return GraphGeomEssai_1_1_1_1
+
+
+GraphGeomEssai_1_1_1_1 = DefGraphGeomEssai_1_1_1_1()
diff --git a/examples/GraphGeomEssai_py.xml b/examples/GraphGeomEssai_py.xml
new file mode 100644 (file)
index 0000000..52ca0b5
--- /dev/null
@@ -0,0 +1,361 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphGeomEssai_1_1_1_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphGeomEssai_1_1_1_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>MakeFuse_1__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>10/7/2002 - 14:53:2</creation-date>
+    <lastmodification-date>29/10/2004 - 15:7:37</lastmodification-date>
+    <editor-release>1.03</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>gag</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>gag</service-name>
+     <inParameter-list/>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>gag</FuncName>
+      <PyFunc><![CDATA[from batchmode_geompy import *   ]]></PyFunc>
+      <PyFunc><![CDATA[def gag():    ]]></PyFunc>
+      <PyFunc><![CDATA[    # This is a gag    ]]></PyFunc>
+      <PyFunc><![CDATA[    return 1 ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 14:58:4</creation-date>
+    <lastmodification-date>29/10/2004 - 14:58:4</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>0</x-position>
+    <y-position>166</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeSphere_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeSphere_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeSphere_1</FuncName>
+      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):    ]]></PyFunc>
+      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeSpherePntR(apoint,radius)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 14:58:4</creation-date>
+    <lastmodification-date>29/10/2004 - 14:58:4</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>181</x-position>
+    <y-position>86</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_1</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_1(shape1):   ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 14:58:4</creation-date>
+    <lastmodification-date>29/10/2004 - 14:58:4</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>386</x-position>
+    <y-position>2</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_2</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_2</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_2(shape1):   ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 14:58:4</creation-date>
+    <lastmodification-date>29/10/2004 - 14:58:4</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>388</x-position>
+    <y-position>181</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeFuse_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeFuse_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeFuse_1</FuncName>
+      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2):           ]]></PyFunc>
+      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
+      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
+      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
+      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 14:58:4</creation-date>
+    <lastmodification-date>29/10/2004 - 14:58:4</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>779</x-position>
+    <y-position>161</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeTranslation_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeTranslation_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeTranslation_1</FuncName>
+      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:1:27</creation-date>
+    <lastmodification-date>29/10/2004 - 15:1:27</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>580</x-position>
+    <y-position>2</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>gag</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_2</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeCopy_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeCopy_2</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeTranslation_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>radius</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>20</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGeomEssai_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
index 0b08e95ceec84071822566c97baeca63e3786896..c888f5e63c65a6ed2959093e9ace179416dec10e 100755 (executable)
@@ -70,14 +70,18 @@ Adda.AddCoord( 2 , 7 , 332 )
 Adda.AddCoord( 3 , 645 , 334 )
 Adda.AddCoord( 4 , 645 , 204 )
 
-GraphInLinesUnValid.IsValid()
+statvalid = GraphInLinesUnValid.IsValid()
+if statvalid != 0 :
+    print "ERROR : GraphInLinesUnValid should not be valid"
+else :
+    print "Ok : GraphInLinesUnValid is not valid"
 
 # Creation of Output variables
-GraphInLinesUnValid.Run()
+statrun = GraphInLinesUnValid.Run()
+if statrun != 0 :
+    print "ERROR : GraphInLinesUnValid should not run"
+else :
+    print "Ok : GraphInLinesUnValid does not run"
 
-GraphInLinesUnValid.IsDone()
 
-GraphInLinesUnValid.State()
-
-GraphInLinesUnValid.PrintPorts()
 
index 8ab8feadf6fc03c62afe818134ceafedf466c1e6..39955f4d9a28e6e435d30b6c1cdd9c5919c23475 100755 (executable)
@@ -8,7 +8,9 @@ from GraphSwitch import *
 from GraphSwitch1 import *
 
 # Merge of GraphSwitch1 in GraphSwitch
-GraphSwitch.Merge( GraphSwitch1 )
+statmerge = GraphSwitch.Merge( GraphSwitch1 )
+if statmerge == 0 :
+    print "Failed to merge GraphSwitch1 in GraphSwitch"
 
 # Create a variable for each node of GraphSwitch :
 # IsOdd,IsOdd_1,InitLoopSwitch,InitLoop,EndOfInitLoopSwitch,EndOfInitLoop,Switch,Switch_1,EndOfSwitch,EndSwitch
index 51a98e6b5cf45433ddc4284a38572759abc07f91..8515637053211fce41693476fe3758a589bd4554 100644 (file)
@@ -126,5 +126,5 @@ SwitchEven = Switch.Port( 'Even' )
 
 GraphSwitch.Run()
 GraphSwitch.DoneW()
-GraphSwitch.State()
+print GraphSwitch.State()
 GraphSwitch.PrintPorts()
index fd38739f0904fdcb9d32c27b7a6d3e87e6b0fe7c..0af47224cd5a6ffd6da0ece672c85936f4ccf6ab 100755 (executable)
@@ -127,5 +127,5 @@ EndOfInitLoopMax = EndOfInitLoop.Port( 'Max' )
 
 GraphSwitch1.Run()
 GraphSwitch1.DoneW()
-GraphSwitch1.State()
+print GraphSwitch1.State()
 GraphSwitch1.PrintPorts()
index 42fa59cbc54223fa80d122d5da7c0f4c361b448b..f22827a1af1c1bd3d78bac6af0eddfe054c13fac 100755 (executable)
@@ -233,5 +233,5 @@ EndOfInitLoopMax = EndOfInitLoop.Port( 'Max' )
 
 GraphSwitchCrash.Run()
 GraphSwitchCrash.DoneW()
-GraphSwitchCrash.State()
+print GraphSwitchCrash.State()
 GraphSwitchCrash.PrintPorts()
index 45c77ac8d76d490b2e34506afc3c0e999ad4e060..bf78c8168ea9564a377cb030cb7ecb9999e8b4df 100755 (executable)
@@ -228,5 +228,5 @@ EndOfInitLoopMax = EndOfInitLoop.Port( 'Max' )
 
 GraphSwitchs.Run()
 GraphSwitchs.DoneW()
-GraphSwitchs.State()
+print GraphSwitchs.State()
 GraphSwitchs.PrintPorts()
index 5756e845ee79b567c2cd389d37fe20e996cc9c3e..c1ea545cbd47c751a5a3f4929b94648e5783fbc6 100644 (file)
@@ -267,7 +267,7 @@ GraphSyrControl.Run( 7 )
 
 GraphSyrControl.DoneW()
 
-GraphSyrControl.State()
+print GraphSyrControl.State()
 
 GraphSyrControl.PrintPorts()
 
index 97b63e5a93ba5ad1c991f9b496177dde4388769c..254113c4664bc02679dad3dbdc4126dae7dc3617 100755 (executable)
@@ -231,7 +231,7 @@ GraphSyrControl1.Run( 7 )
 
 GraphSyrControl1.DoneW()
 
-GraphSyrControl1.State()
+print GraphSyrControl1.State()
 
 GraphSyrControl1.PrintPorts()
 
index 51bd2d86baf2b17fa0f49f9a596d6f119b0dd352..b039fbf4d953b14bc61a1f86cdf1bae498e66ede 100644 (file)
@@ -387,5 +387,5 @@ EndL_OneEvenAVERAGE = EndL_OneEven.Port( 'AVERAGE' )
 
 GraphSyrControlAve.Run()
 GraphSyrControlAve.DoneW()
-GraphSyrControlAve.State()
+print GraphSyrControlAve.State()
 GraphSyrControlAve.PrintPorts()
index 16c74657319efeeb9c5cb6d87520654ccbc46459..dfafc54f68ef06319957e0e456c5591cb111103d 100644 (file)
@@ -235,3 +235,8 @@ label_beginKB = label_begin.Input( 'KB' , 0)
 
 # Creation of Output variables
 EndSwitch_OneEvenK = EndSwitch_OneEven.Port( 'K' )
+
+GraphSyrControlDefault.Run()
+GraphSyrControlDefault.DoneW()
+print GraphSyrControlDefault.State()
+GraphSyrControlDefault.PrintPorts()
index cf7becd7e3333e87933691025766a916f3e9f430..c8ce801b27b704d033313da2ee182437256ac29b 100644 (file)
@@ -208,3 +208,8 @@ label_beginKB = label_begin.Input( 'KB' , 0)
 
 # Creation of Output variables
 label_testFinished = label_test.Port( 'Finished' )
+
+GraphSyrControlGUI.Run()
+GraphSyrControlGUI.DoneW()
+print GraphSyrControlGUI.State()
+GraphSyrControlGUI.PrintPorts()
index 296d36ac35ad5832d60a54ee3fb8a132013aa863..7b274963b43be56dc3998314674aadadc7d148b3 100644 (file)
@@ -82,7 +82,7 @@ GraphSyracuseC.ThreadsMax()
 
 GraphSyracuseC.LevelMax()
 
-GraphSyracuseC.GraphsNumber()
+GraphSyracuseC.SubGraphsNumber()
 
 GraphSyracuseC.IsExecutable()
 
@@ -165,6 +165,7 @@ incr.Resume()
 test_ISONE.Resume()
 test_ISEVEN.Resume()
 GraphSyracuseC.DoneW()
+print GraphSyracuseC.State()
 GraphSyracuseC.PrintPorts()
 GraphSyracuseC.PrintThreads()
 
index 2ee258e140def199ed59bf29a264b7cd58a7217c..5961ab5924aee9682b9be5d5d3ec13222a45065b 100644 (file)
@@ -78,7 +78,7 @@ GraphSyracuseCEv.ThreadsMax()
 
 GraphSyracuseCEv.LevelMax()
 
-GraphSyracuseCEv.GraphsNumber()
+GraphSyracuseCEv.SubGraphsNumber()
 
 GraphSyracuseCEv.IsExecutable()
 
@@ -163,5 +163,6 @@ while aNode != None :
     aStatus,aNode,anEvent,aState = GraphSyracuseCEv.Event()
 
 GraphSyracuseCEv.DoneW()
+print GraphSyracuseCEv.State()
 GraphSyracuseCEv.PrintThreads()
 GraphSyracuseCEv.PrintPorts()
diff --git a/examples/GraphSyracuseC_Gate.py b/examples/GraphSyracuseC_Gate.py
deleted file mode 100644 (file)
index 2493180..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
-#
-#
-#
-#  File   : GraphSyracuseC_Gate.py
-#  Module : SuperVisionTest
-
-from SuperV import *
-# Graph creation 
-GraphSyracuseC_Gate = Graph( 'GraphSyracuseC_Gate' )
-GraphSyracuseC_Gate.SetName( 'GraphSyracuseC_Gate' )
-GraphSyracuseC_Gate.SetAuthor( 'JR' )
-GraphSyracuseC_Gate.SetComment( 'Syracuse algorithm' )
-GraphSyracuseC_Gate.Coords( 0 , 0 )
-
-# Creation of Factory Nodes
-test_ISEVEN = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISEVEN' )
-test_ISEVEN.SetName( 'test_ISEVEN' )
-test_ISEVEN.SetAuthor( '' )
-test_ISEVEN.SetContainer( 'localhost/FactoryServer' )
-test_ISEVEN.SetComment( 'C_ISEVEN from SyrComponent' )
-test_ISEVEN.Coords( 5 , 416 )
-test_ISONE = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISONE' )
-test_ISONE.SetName( 'test_ISONE' )
-test_ISONE.SetAuthor( '' )
-test_ISONE.SetContainer( 'localhost/FactoryServer' )
-test_ISONE.SetComment( 'C_ISONE from SyrComponent' )
-test_ISONE.Coords( 7 , 232 )
-m3p1 = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_M3P1' )
-m3p1.SetName( 'm3p1' )
-m3p1.SetAuthor( '' )
-m3p1.SetContainer( 'localhost/FactoryServer' )
-m3p1.SetComment( 'C_M3P1 from SyrComponent' )
-m3p1.Coords( 180 , 417 )
-div2 = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_DIV2' )
-div2.SetName( 'div2' )
-div2.SetAuthor( '' )
-div2.SetContainer( 'localhost/FactoryServer' )
-div2.SetComment( 'C_DIV2 from SyrComponent' )
-div2.Coords( 435 , 7 )
-div2_ISEVEN = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISEVEN' )
-div2_ISEVEN.SetName( 'div2_ISEVEN' )
-div2_ISEVEN.SetAuthor( '' )
-div2_ISEVEN.SetContainer( 'localhost/FactoryServer' )
-div2_ISEVEN.SetComment( 'C_ISEVEN from SyrComponent' )
-div2_ISEVEN.Coords( 663 , 193 )
-div2_ISONE = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISONE' )
-div2_ISONE.SetName( 'div2_ISONE' )
-div2_ISONE.SetAuthor( '' )
-div2_ISONE.SetContainer( 'localhost/FactoryServer' )
-div2_ISONE.SetComment( 'C_ISONE from SyrComponent' )
-div2_ISONE.Coords( 651 , 6 )
-incr = GraphSyracuseC_Gate.FNode( 'SyrComponent' , 'SyrComponent' , 'C_INCR' )
-incr.SetName( 'incr' )
-incr.SetAuthor( '' )
-incr.SetContainer( 'localhost/FactoryServer' )
-incr.SetComment( 'C_INCR from SyrComponent' )
-incr.Coords( 434 , 193 )
-
-# Creation of intermediate Output variables and of Control Links
-test_ISEVENOutGate = test_ISEVEN.Port( 'OutGate' )
-m3p1InGate = GraphSyracuseC_Gate.Link( test_ISEVENOutGate , m3p1.Port( 'InGate' ) )
-m3p1anEvenInteger = m3p1.Port( 'anEvenInteger' )
-div2anEvenInteger = GraphSyracuseC_Gate.Link( m3p1anEvenInteger , div2.Port( 'anEvenInteger' ) )
-div2anEvenInteger.AddCoord( 1 , 373 , 117 )
-div2anEvenInteger.AddCoord( 2 , 373 , 528 )
-div2anInteger = div2.Port( 'anInteger' )
-div2_ISONEanInteger = GraphSyracuseC_Gate.Link( div2anInteger , div2_ISONE.Port( 'anInteger' ) )
-div2_ISEVENanInteger = GraphSyracuseC_Gate.Link( div2anInteger , div2_ISEVEN.Port( 'anInteger' ) )
-div2_ISEVENanInteger.AddCoord( 1 , 626 , 302 )
-div2_ISEVENanInteger.AddCoord( 2 , 626 , 116 )
-
-# Creation of Input datas
-test_ISEVENanInteger = test_ISEVEN.Input( 'anInteger' , 31)
-test_ISONEanInteger = test_ISONE.Input( 'anInteger' , 31)
-m3p1anOddInteger = m3p1.Input( 'anOddInteger' , 31)
-incraCount = incr.Input( 'aCount' , 0)
-
-# Creation of Output variables
-test_ISEVENBoolEven = test_ISEVEN.Port( 'BoolEven' )
-test_ISONEBoolOne = test_ISONE.Port( 'BoolOne' )
-div2_ISEVENBoolEven = div2_ISEVEN.Port( 'BoolEven' )
-div2_ISONEBoolOne = div2_ISONE.Port( 'BoolOne' )
-incraNewCount = incr.Port( 'aNewCount' )
-
-
-GraphSyracuseC_Gate.Start()
-
-div2InanInteger = div2.Port( 'anEvenInteger' )
-
-m3p1.Suspend()
-
-div2_ISEVEN.SuspendDone()
-div2_ISONE.SuspendDone()
-
-test_ISEVEN.Resume()
-test_ISONE.Resume()
-
-# Attente de fin d'execution de test
-test_ISONE.DoneW()
-test_ISEVEN.DoneW()
-
-m3p1.SuspendedW()
-incr.SuspendedW()
-incr.SuspendDone()
-
-# Etats et Threads des nodes
-GraphSyracuseC_Gate.PrintThreads()
-
-BoolOne = int( test_ISONEBoolOne.ToString() )
-BoolEven = int( test_ISEVENBoolEven.ToString() )
-while BoolOne == 0 :
-    if BoolEven == 0 :
-        sts = div2_ISONE.ReRunAt('m3p1')
-        if sts == 0 :
-            print 'div2_ISONE.ReRunAt error'
-            break
-        sts = incr.ReRun()
-        if sts == 0 :
-            print 'incr.ReRun error'
-            break
-        sts = m3p1.DoneW()
-        if sts == 0 :
-            print 'm3p1.DoneW error'
-            break
-        sts = incr.DoneW()
-        if sts == 0 :
-            print 'incr.DoneW error'
-            break
-        sts = incraCount.Input( int( incraNewCount.ToString() ) + 1 )
-        if sts == 0 :
-            print 'incraCount.Input error'
-            break
-        BoolEven = 1 
-        BoolOne = 0
-        Current = int( m3p1anEvenInteger.ToString() )
-        print incraNewCount.ToString(),"m3p1",Current,BoolEven
-        if Current <= 0 :
-            break
-    if Current <= 0 :
-        break
-    while BoolEven == 1 :
-        sts = incr.ReRun()
-        if sts == 0 :
-            print 'incr.ReRun error'
-            break
-        sts = div2.DoneW()
-        if sts == 0 :
-            print 'div2.DoneW error'
-            break
-        sts = div2_ISEVEN.DoneW()
-        if sts == 0 :
-            print 'div2_ISEVEN.DoneW error'
-            break
-        sts = div2_ISONE.DoneW()
-        if sts == 0 :
-            print 'div2_ISONE.DoneW error'
-            break
-        sts = incr.DoneW()
-        if sts == 0 :
-            print 'incr.DoneW error'
-            break
-        sts = incraCount.Input( incraNewCount.ToString() )
-        if sts == 0 :
-            print 'incraCount.Input error'
-            break
-        BoolOne = int( div2_ISONEBoolOne.ToString() )
-        BoolEven = int( div2_ISEVENBoolEven.ToString() )
-        Current = int( div2anInteger.ToString() )
-        print incraNewCount.ToString(),"div2",Current,BoolEven,BoolOne
-        if Current <= 0 :
-            break
-        if BoolEven == 1 :
-            sts = div2InanInteger.Input( Current )
-            if sts == 0 :
-                print 'div2InanInteger.Input error'
-                break
-            sts = div2_ISONE.ReRunAt('div2')
-            if sts == 0 :
-                print 'div2_ISONE.ReRunAt error'
-                break
-    if Current <= 0 :
-        break
-    sts = m3p1anOddInteger.Input( Current )
-    if sts == 0 :
-        print 'm3p1anOddInteger.Input error'
-        break
-    sts = m3p1InGate.InPort().Input( 1 )
-    if sts == 0 :
-        print 'm3p1InGate.InPort error'
-        break
-
-
-GraphSyracuseC_Gate.PrintThreads()
-m3p1.Resume()
-div2.Resume()
-incr.Resume()
-div2_ISONE.Resume()
-div2_ISEVEN.Resume()
-GraphSyracuseC_Gate.DoneW()
-GraphSyracuseC_Gate.PrintPorts()
-GraphSyracuseC_Gate.PrintThreads()
-
diff --git a/examples/GraphSyracuseC_Gate.xml b/examples/GraphSyracuseC_Gate.xml
deleted file mode 100644 (file)
index 8b87cf7..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE Dataflow>
-<dataflow>
-<info-list>
-<node>
-<component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>GraphSyracuseC_Gate</node-name>
-   <kind>1</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>GraphSyracuseC_Gate</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>test_ISEVEN\anInteger</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>test_ISONE\anInteger</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>m3p1\anOddInteger</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>incr\aCount</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>test_ISEVEN\BoolEven</outParameter-name>     </outParameter>
-     <outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>test_ISONE\BoolOne</outParameter-name>     </outParameter>
-     <outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>div2_ISEVEN\BoolEven</outParameter-name>     </outParameter>
-     <outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>div2_ISONE\BoolOne</outParameter-name>     </outParameter>
-     <outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>incr\aNewCount</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/3/2003 - 16:25:34</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:11</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>JR</author>
-   <container>?</container>
-   <comment>Syracuse algorithm</comment>
-   <x-position>0</x-position>
-   <y-position>0</y-position>  </node> </info-list>
- <node-list>
-<node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>test_ISEVEN</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_ISEVEN</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>anInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>BoolEven</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:10</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:10</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_ISEVEN from SyrComponent</comment>
-   <x-position>5</x-position>
-   <y-position>416</y-position>  </node>
-  <node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>test_ISONE</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_ISONE</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>anInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>BoolOne</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:10</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:10</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_ISONE from SyrComponent</comment>
-   <x-position>7</x-position>
-   <y-position>232</y-position>  </node>
-  <node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>m3p1</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_M3P1</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>anOddInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>anEvenInteger</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:10</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:10</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_M3P1 from SyrComponent</comment>
-   <x-position>180</x-position>
-   <y-position>417</y-position>  </node>
-  <node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>div2</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_DIV2</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>anEvenInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>anInteger</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:10</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:10</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_DIV2 from SyrComponent</comment>
-   <x-position>435</x-position>
-   <y-position>7</y-position>  </node>
-  <node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>div2_ISEVEN</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_ISEVEN</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>anInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>BoolEven</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:11</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:11</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_ISEVEN from SyrComponent</comment>
-   <x-position>663</x-position>
-   <y-position>193</y-position>  </node>
-  <node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>div2_ISONE</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_ISONE</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>anInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>BoolOne</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:11</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:11</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_ISONE from SyrComponent</comment>
-   <x-position>651</x-position>
-   <y-position>6</y-position>  </node>
-  <node>
-<component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>incr</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>C_INCR</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>aCount</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>aNewCount</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/6/2003 - 16:1:11</creation-date>
-   <lastmodification-date>11/6/2003 - 16:1:11</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_INCR from SyrComponent</comment>
-   <x-position>434</x-position>
-   <y-position>193</y-position>  </node> </node-list>
- <link-list>
-<link>
-<fromnode-name>test_ISEVEN</fromnode-name>
-   <fromserviceparameter-name>OutGate</fromserviceparameter-name>
-   <tonode-name>m3p1</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>m3p1</fromnode-name>
-   <fromserviceparameter-name>anEvenInteger</fromserviceparameter-name>
-   <tonode-name>div2</tonode-name>
-   <toserviceparameter-name>anEvenInteger</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>373</x>
-     <y>117</y>    </coord>
-    <coord>
-<x>373</x>
-     <y>528</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>div2</fromnode-name>
-   <fromserviceparameter-name>anInteger</fromserviceparameter-name>
-   <tonode-name>div2_ISONE</tonode-name>
-   <toserviceparameter-name>anInteger</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>div2</fromnode-name>
-   <fromserviceparameter-name>anInteger</fromserviceparameter-name>
-   <tonode-name>div2_ISEVEN</tonode-name>
-   <toserviceparameter-name>anInteger</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>626</x>
-     <y>302</y>    </coord>
-    <coord>
-<x>626</x>
-     <y>116</y>    </coord>   </coord-list>  </link> </link-list>
- <data-list>
-<data>
-<fromnode-name>GraphSyracuseC_Gate</fromnode-name>
-   <fromserviceparameter-name>test_ISEVEN\anInteger</fromserviceparameter-name>
-   <tonode-name>test_ISEVEN</tonode-name>
-   <toserviceparameter-name>anInteger</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>31</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>GraphSyracuseC_Gate</fromnode-name>
-   <fromserviceparameter-name>test_ISONE\anInteger</fromserviceparameter-name>
-   <tonode-name>test_ISONE</tonode-name>
-   <toserviceparameter-name>anInteger</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>31</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>GraphSyracuseC_Gate</fromnode-name>
-   <fromserviceparameter-name>m3p1\anOddInteger</fromserviceparameter-name>
-   <tonode-name>m3p1</tonode-name>
-   <toserviceparameter-name>anOddInteger</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>31</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>GraphSyracuseC_Gate</fromnode-name>
-   <fromserviceparameter-name>incr\aCount</fromserviceparameter-name>
-   <tonode-name>incr</tonode-name>
-   <toserviceparameter-name>aCount</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data> </data-list></dataflow>
index b4effae39464e09e4ad7ece233d58a8e8e21d34e..bb2a62da9000c0cef59e8de879a6b08ae862c213 100644 (file)
@@ -6,7 +6,6 @@ from SuperV import *
 GraphSyracuseC_Void = Graph( 'GraphSyracuseC_Void' )
 print GraphSyracuseC_Void.SetName( 'GraphSyracuseC_Void' )
 print GraphSyracuseC_Void.SetAuthor( 'JR' )
-print GraphSyracuseC_Void.SetContainer( 'localhost/FactoryServer' )
 print GraphSyracuseC_Void.SetComment( 'Syracuse algorithm' )
 GraphSyracuseC_Void.Coords( 0 , 0 )
 
@@ -155,6 +154,7 @@ incr.Resume()
 div2_ISONE.Resume()
 div2_ISEVEN.Resume()
 GraphSyracuseC_Void.DoneW()
+print GraphSyracuseC_Void.State()
 GraphSyracuseC_Void.PrintPorts()
 GraphSyracuseC_Void.PrintThreads()
 
index 3e432a75c5fdf0c34c94a854baa89f737fe0e0eb..a46564e1cf5d4e5ca2bb0b9a3c818658d2675018 100644 (file)
@@ -5,7 +5,6 @@ from SuperV import *
 GraphSyracuseControl = Graph( 'GraphSyracuseControl' )
 print GraphSyracuseControl.SetName( 'GraphSyracuseControl' )
 print GraphSyracuseControl.SetAuthor( 'JR' )
-print GraphSyracuseControl.SetContainer( 'localhost/FactoryServer' )
 print GraphSyracuseControl.SetComment( 'Syracuse algorithm' )
 GraphSyracuseControl.Coords( 0 , 0 )
 
@@ -118,7 +117,7 @@ GraphSyracuseControl.Run()
 
 GraphSyracuseControl.DoneW()
 
-GraphSyracuseControl.State()
+print GraphSyracuseControl.State()
 
 GraphSyracuseControl.PrintPorts()
 
index fba4f9278c8d15123a5557541f067d18e2aae5dc..6f4d67f3e2ac750bf153f1ca002368dce4eae26d 100644 (file)
@@ -217,6 +217,7 @@ sts = result_Current.Resume()
 sts = result_Count.ControlClear()
 sts = result_Count.Resume()
 sts = GraphSyracuseCpp.DoneW()
+print sts
 GraphSyracuseCpp.PrintPorts()
 GraphSyracuseCpp.PrintThreads()
 
index 0c113e949235ea3bd8d4deba7681b5eaaaa9ed46..c773582050494ded9a747bbd4bedd59be320bd85 100755 (executable)
@@ -73,10 +73,18 @@ Subx.AddCoord( 4 , 565 , 141 )
 AddFuncValue = Add.Port( 'FuncValue' )
 Divz = Div.Port( 'z' )
 
-GraphInLinesUnValid.IsValid()
+statvalid = GraphInLinesUnValid.IsValid()
+if statvalid == 0 :
+    print "Unvalid graph : Ok"
+else :
+    print "Error : the graph should not be valid"
 
 # Creation of Output variables
-GraphUnValid.Run()
+statrun = GraphUnValid.Run()
+if statrun == 0 :
+    print "Unvalid graph ==> No Run : Ok"
+else :
+    print "Error : the graph is not valid and is running"
 
 GraphUnValid.IsDone()
 
diff --git a/examples/MacroWithGeom.py b/examples/MacroWithGeom.py
new file mode 100644 (file)
index 0000000..45bb132
--- /dev/null
@@ -0,0 +1,224 @@
+
+# Generated python file of Graph aNewDataFlow
+
+from SuperV import *
+
+# Graph creation of aNewDataFlow
+def DefaNewDataFlow() :
+    aNewDataFlow = Graph( 'aNewDataFlow' )
+    aNewDataFlow.SetName( 'aNewDataFlow' )
+    aNewDataFlow.SetAuthor( '' )
+    aNewDataFlow.SetComment( '' )
+    aNewDataFlow.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    TranslateDXDYDZ = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetName( 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetAuthor( '' )
+    TranslateDXDYDZ.SetContainer( 'localhost/FactoryServer' )
+    TranslateDXDYDZ.SetComment( 'TranslateDXDYDZ from GEOM_Superv' )
+    TranslateDXDYDZ.Coords( 735 , 14 )
+    ITranslateDXDYDZtheObject = TranslateDXDYDZ.GetInPort( 'theObject' )
+    ITranslateDXDYDZtheDX = TranslateDXDYDZ.GetInPort( 'theDX' )
+    ITranslateDXDYDZtheDY = TranslateDXDYDZ.GetInPort( 'theDY' )
+    ITranslateDXDYDZtheDZ = TranslateDXDYDZ.GetInPort( 'theDZ' )
+    ITranslateDXDYDZGate = TranslateDXDYDZ.GetInPort( 'Gate' )
+    OTranslateDXDYDZreturn = TranslateDXDYDZ.GetOutPort( 'return' )
+    OTranslateDXDYDZGate = TranslateDXDYDZ.GetOutPort( 'Gate' )
+    
+    MakeCopy = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
+    MakeCopy.SetName( 'MakeCopy' )
+    MakeCopy.SetAuthor( '' )
+    MakeCopy.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy.Coords( 477 , 14 )
+    IMakeCopytheOriginal = MakeCopy.GetInPort( 'theOriginal' )
+    IMakeCopyGate = MakeCopy.GetInPort( 'Gate' )
+    OMakeCopyreturn = MakeCopy.GetOutPort( 'return' )
+    OMakeCopyGate = MakeCopy.GetOutPort( 'Gate' )
+    
+    MakeBox = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeBox' )
+    MakeBox.SetName( 'MakeBox' )
+    MakeBox.SetAuthor( '' )
+    MakeBox.SetContainer( 'localhost/FactoryServer' )
+    MakeBox.SetComment( 'MakeBox from GEOM_Superv' )
+    MakeBox.Coords( 219 , 14 )
+    IMakeBoxtheX1 = MakeBox.GetInPort( 'theX1' )
+    IMakeBoxtheY1 = MakeBox.GetInPort( 'theY1' )
+    IMakeBoxtheZ1 = MakeBox.GetInPort( 'theZ1' )
+    IMakeBoxtheX2 = MakeBox.GetInPort( 'theX2' )
+    IMakeBoxtheY2 = MakeBox.GetInPort( 'theY2' )
+    IMakeBoxtheZ2 = MakeBox.GetInPort( 'theZ2' )
+    IMakeBoxGate = MakeBox.GetInPort( 'Gate' )
+    OMakeBoxreturn = MakeBox.GetOutPort( 'return' )
+    OMakeBoxGate = MakeBox.GetOutPort( 'Gate' )
+    
+    MakeCopy_1 = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
+    MakeCopy_1.SetName( 'MakeCopy_1' )
+    MakeCopy_1.SetAuthor( '' )
+    MakeCopy_1.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy_1.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy_1.Coords( 482 , 306 )
+    IMakeCopy_1theOriginal = MakeCopy_1.GetInPort( 'theOriginal' )
+    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
+    OMakeCopy_1return = MakeCopy_1.GetOutPort( 'return' )
+    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    
+    MakeFuse = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeFuse' )
+    MakeFuse.SetName( 'MakeFuse' )
+    MakeFuse.SetAuthor( '' )
+    MakeFuse.SetContainer( 'localhost/FactoryServer' )
+    MakeFuse.SetComment( 'MakeFuse from GEOM_Superv' )
+    MakeFuse.Coords( 950 , 121 )
+    IMakeFusetheShape1 = MakeFuse.GetInPort( 'theShape1' )
+    IMakeFusetheShape2 = MakeFuse.GetInPort( 'theShape2' )
+    IMakeFuseGate = MakeFuse.GetInPort( 'Gate' )
+    OMakeFusereturn = MakeFuse.GetOutPort( 'return' )
+    OMakeFuseGate = MakeFuse.GetOutPort( 'Gate' )
+    
+    MakeSphere = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeSphere' )
+    MakeSphere.SetName( 'MakeSphere' )
+    MakeSphere.SetAuthor( '' )
+    MakeSphere.SetContainer( 'localhost/FactoryServer' )
+    MakeSphere.SetComment( 'MakeSphere from GEOM_Superv' )
+    MakeSphere.Coords( 227 , 409 )
+    IMakeSpheretheX = MakeSphere.GetInPort( 'theX' )
+    IMakeSpheretheY = MakeSphere.GetInPort( 'theY' )
+    IMakeSpheretheZ = MakeSphere.GetInPort( 'theZ' )
+    IMakeSpheretheRadius = MakeSphere.GetInPort( 'theRadius' )
+    IMakeSphereGate = MakeSphere.GetInPort( 'Gate' )
+    OMakeSpherereturn = MakeSphere.GetOutPort( 'return' )
+    OMakeSphereGate = MakeSphere.GetOutPort( 'Gate' )
+    
+    MakeFuse_1 = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeFuse' )
+    MakeFuse_1.SetName( 'MakeFuse_1' )
+    MakeFuse_1.SetAuthor( '' )
+    MakeFuse_1.SetContainer( 'localhost/FactoryServer' )
+    MakeFuse_1.SetComment( 'MakeFuse from GEOM_Superv' )
+    MakeFuse_1.Coords( 1217 , 389 )
+    IMakeFuse_1theShape1 = MakeFuse_1.GetInPort( 'theShape1' )
+    IMakeFuse_1theShape2 = MakeFuse_1.GetInPort( 'theShape2' )
+    IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
+    OMakeFuse_1return = MakeFuse_1.GetOutPort( 'return' )
+    OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
+    
+    SetStudyID = aNewDataFlow.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'SetStudyID' )
+    SetStudyID.SetName( 'SetStudyID' )
+    SetStudyID.SetAuthor( '' )
+    SetStudyID.SetContainer( 'localhost/FactoryServer' )
+    SetStudyID.SetComment( 'SetStudyID from GEOM_Superv' )
+    SetStudyID.Coords( 7 , 269 )
+    ISetStudyIDtheStudyID = SetStudyID.GetInPort( 'theStudyID' )
+    ISetStudyIDGate = SetStudyID.GetInPort( 'Gate' )
+    OSetStudyIDGate = SetStudyID.GetOutPort( 'Gate' )
+    
+    # Creation of Macro Nodes
+    aNewDataFlow_1 = DefaNewDataFlow_1()
+    Macro_aNewDataFlow_1 = aNewDataFlow.GraphMNode( aNewDataFlow_1 )
+    Macro_aNewDataFlow_1.SetCoupled( 'aNewDataFlow_1' )
+    Macro_aNewDataFlow_1.SetName( 'Macro_aNewDataFlow_1' )
+    Macro_aNewDataFlow_1.SetAuthor( '' )
+    Macro_aNewDataFlow_1.SetComment( 'Macro Node' )
+    Macro_aNewDataFlow_1.Coords( 480 , 145 )
+    IMacro_aNewDataFlow_1sum__a = Macro_aNewDataFlow_1.GetInPort( 'sum__a' )
+    IMacro_aNewDataFlow_1sum__b = Macro_aNewDataFlow_1.GetInPort( 'sum__b' )
+    IMacro_aNewDataFlow_1Gate = Macro_aNewDataFlow_1.GetInPort( 'Gate' )
+    OMacro_aNewDataFlow_1Mult__b = Macro_aNewDataFlow_1.GetOutPort( 'Mult__b' )
+    OMacro_aNewDataFlow_1Gate = Macro_aNewDataFlow_1.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LMacro_aNewDataFlow_1Mult__bTranslateDXDYDZtheDY = aNewDataFlow.Link( OMacro_aNewDataFlow_1Mult__b , ITranslateDXDYDZtheDY )
+    
+    LTranslateDXDYDZreturnMakeFusetheShape1 = aNewDataFlow.Link( OTranslateDXDYDZreturn , IMakeFusetheShape1 )
+    
+    LMakeCopyreturnTranslateDXDYDZtheObject = aNewDataFlow.Link( OMakeCopyreturn , ITranslateDXDYDZtheObject )
+    
+    LMakeBoxreturnMakeCopytheOriginal = aNewDataFlow.Link( OMakeBoxreturn , IMakeCopytheOriginal )
+    
+    LMakeBoxreturnMakeCopy_1theOriginal = aNewDataFlow.Link( OMakeBoxreturn , IMakeCopy_1theOriginal )
+    
+    LMakeCopy_1returnMakeFusetheShape2 = aNewDataFlow.Link( OMakeCopy_1return , IMakeFusetheShape2 )
+    
+    LMakeFusereturnMakeFuse_1theShape1 = aNewDataFlow.Link( OMakeFusereturn , IMakeFuse_1theShape1 )
+    
+    LMakeSpherereturnMakeFuse_1theShape2 = aNewDataFlow.Link( OMakeSpherereturn , IMakeFuse_1theShape2 )
+    
+    LSetStudyIDGateMakeBoxGate = aNewDataFlow.Link( OSetStudyIDGate , IMakeBoxGate )
+    
+    LSetStudyIDGateMakeSphereGate = aNewDataFlow.Link( OSetStudyIDGate , IMakeSphereGate )
+    
+    # Input datas
+    IMacro_aNewDataFlow_1sum__a.Input( 1 )
+    IMacro_aNewDataFlow_1sum__b.Input( 2 )
+    ITranslateDXDYDZtheDX.Input( 25 )
+    ITranslateDXDYDZtheDZ.Input( 25 )
+    IMakeBoxtheX1.Input( 0 )
+    IMakeBoxtheY1.Input( 0 )
+    IMakeBoxtheZ1.Input( 0 )
+    IMakeBoxtheX2.Input( 50 )
+    IMakeBoxtheY2.Input( 50 )
+    IMakeBoxtheZ2.Input( 50 )
+    IMakeSpheretheX.Input( 0 )
+    IMakeSpheretheY.Input( 0 )
+    IMakeSpheretheZ.Input( 0 )
+    IMakeSpheretheRadius.Input( 12 )
+    ISetStudyIDtheStudyID.Input( 1 )
+    
+    # Output Ports of the graph
+    #OMakeFuse_1return = MakeFuse_1.GetOutPort( 'return' )
+    return aNewDataFlow
+
+# Graph creation of aNewDataFlow_1
+def DefaNewDataFlow_1() :
+    aNewDataFlow_1 = Graph( 'aNewDataFlow_1' )
+    aNewDataFlow_1.SetCoupled( 'Macro_aNewDataFlow_1' )
+    aNewDataFlow_1.SetName( 'aNewDataFlow_1' )
+    aNewDataFlow_1.SetAuthor( '' )
+    aNewDataFlow_1.SetComment( '' )
+    aNewDataFlow_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyMult = []
+    PyMult.append( 'def Mult(a): ' )
+    PyMult.append( '   b = a*3 ' )
+    PyMult.append( '   return b ' )
+    Mult = aNewDataFlow_1.INode( 'Mult' , PyMult )
+    Mult.SetName( 'Mult' )
+    Mult.SetAuthor( '' )
+    Mult.SetComment( 'Compute Node' )
+    Mult.Coords( 382 , 78 )
+    IMulta = Mult.InPort( 'a' , 'double' )
+    IMultGate = Mult.GetInPort( 'Gate' )
+    OMultb = Mult.OutPort( 'b' , 'double' )
+    OMultGate = Mult.GetOutPort( 'Gate' )
+    
+    Pysum = []
+    Pysum.append( 'def sum(a, b): ' )
+    Pysum.append( '   return a+b' )
+    sum = aNewDataFlow_1.INode( 'sum' , Pysum )
+    sum.SetName( 'sum' )
+    sum.SetAuthor( '' )
+    sum.SetComment( 'Compute Node' )
+    sum.Coords( 47 , 87 )
+    Isuma = sum.InPort( 'a' , 'double' )
+    Isumb = sum.InPort( 'b' , 'double' )
+    IsumGate = sum.GetInPort( 'Gate' )
+    Osums = sum.OutPort( 's' , 'double' )
+    OsumGate = sum.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LsumsMulta = aNewDataFlow_1.Link( Osums , IMulta )
+    
+    # Input Ports of the graph
+    #Isuma = sum.GetInPort( 'a' )
+    #Isumb = sum.GetInPort( 'b' )
+    
+    # Output Ports of the graph
+    #OMultb = Mult.GetOutPort( 'b' )
+    return aNewDataFlow_1
+
+
+aNewDataFlow = DefaNewDataFlow()
index 01911261928068c39fa221f42c9f8ba408372988..5dce47fbb2bc34335d5ffd09aeb02243225947af 100755 (executable)
@@ -5,62 +5,65 @@
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>aNewDataFlow_1_4_1_1_1_1</node-name>
+    <node-name>aNewDataFlow</node-name>
     <kind>1</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>aNewDataFlow_1_4_1_1_1_1</service-name>
+<service-name>aNewDataFlow</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>Macro_aNewDataFlow_1__sum__a</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>Macro_aNewDataFlow_1__sum__b</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__x2</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__y2</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theX1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeBox1__z2</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theY1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theZ1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theX2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theY2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+       <inParameter-name>MakeBox__theZ2</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>Macro_aNewDataFlow_1_5_1_1__sum__a</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>Macro_aNewDataFlow_1_5_1_1__sum__b</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>MakeSphere__theRadius</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>SetStudyID__theStudyID</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>MakeFuse_2__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>MakeFuse_1__return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list/>
-    <creation-date>25/8/2004 - 16:28:50</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <creation-date>29/10/2004 - 14:37:33</creation-date>
+    <lastmodification-date>11/11/2004 - 13:15:14</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>gag</node-name>
-    <kind>3</kind>
-    <coupled-node>?</coupled-node>
-    <service>
-<service-name>gag</service-name>
-     <inParameter-list/>
-     <outParameter-list/>    </service>
-    <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>gag</FuncName>
-      <PyFunc><![CDATA[from batchmode_geompy import *  ]]></PyFunc>
-      <PyFunc><![CDATA[def gag():   ]]></PyFunc>
-      <PyFunc><![CDATA[    # This is a gag   ]]></PyFunc>
-      <PyFunc><![CDATA[    return 1   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
-    <editor-release>2.0</editor-release>
-    <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>0</x-position>
-    <y-position>123</y-position>   </node>
-   <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeBox1</node-name>
-    <kind>3</kind>
-    <coupled-node>?</coupled-node>
+    <node-name>Macro_aNewDataFlow_1</node-name>
+    <kind>10</kind>
+    <coupled-node>aNewDataFlow_1</coupled-node>
     <service>
-<service-name>MakeBox1</service-name>
+<service-name>aNewDataFlow_1</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>x2</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>y2</inParameter-name>      </inParameter>
+       <inParameter-name>sum__a</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z2</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>sum__b</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>Mult__b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list>
 <PyFunction>
-<FuncName>MakeBox1</FuncName>
-      <PyFunc><![CDATA[def MakeBox1(x1,y1,z1,x2,y2,z2):   ]]></PyFunc>
-      <PyFunc><![CDATA[    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return aBox   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>11/11/2004 - 13:11:17</creation-date>
+    <lastmodification-date>11/11/2004 - 13:11:17</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>194</x-position>
-    <y-position>3</y-position>   </node>
+    <comment>Macro Node</comment>
+    <x-position>480</x-position>
+    <y-position>145</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>TranslateDXDYDZ</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_1</service-name>
+<service-name>TranslateDXDYDZ</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theObject</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDX</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDY</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theDZ</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_1</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_1(shape1):  ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:11:58</creation-date>
+    <lastmodification-date>11/11/2004 - 13:11:58</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>389</x-position>
-    <y-position>3</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>TranslateDXDYDZ from GEOM_Superv</comment>
+    <x-position>735</x-position>
+    <y-position>14</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_2</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_2</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_2</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_2(shape1):  ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:12:24</creation-date>
+    <lastmodification-date>11/11/2004 - 13:12:24</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>391</x-position>
-    <y-position>264</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>477</x-position>
+    <y-position>14</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeSphere_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeBox</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeSphere_1</service-name>
+<service-name>MakeBox</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
+       <inParameter-name>theX1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
+       <inParameter-name>theY1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
+       <inParameter-name>theZ1</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>theX2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theY2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theZ2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeSphere_1</FuncName>
-      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):   ]]></PyFunc>
-      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1) ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeSphere(apoint,radius) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:12:49</creation-date>
+    <lastmodification-date>11/11/2004 - 13:12:49</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>203</x-position>
-    <y-position>315</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeBox from GEOM_Superv</comment>
+    <x-position>219</x-position>
+    <y-position>14</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeTranslation_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeTranslation_1</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeTranslation_1</FuncName>
-      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)     ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:13:9</creation-date>
+    <lastmodification-date>11/11/2004 - 13:13:9</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>596</x-position>
-    <y-position>3</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>482</x-position>
+    <y-position>306</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeFuse_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeFuse</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeFuse_1</service-name>
+<service-name>MakeFuse</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape1</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeFuse_1</FuncName>
-      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2): ]]></PyFunc>
-      <PyFunc><![CDATA[    # fuse operation 3 ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:13:47</creation-date>
+    <lastmodification-date>11/11/2004 - 13:13:47</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>823</x-position>
-    <y-position>116</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeFuse from GEOM_Superv</comment>
+    <x-position>950</x-position>
+    <y-position>121</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeFuse_2</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeSphere</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeFuse_2</service-name>
+<service-name>MakeSphere</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theX</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theY</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theZ</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theRadius</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeFuse_2</FuncName>
-      <PyFunc><![CDATA[def MakeFuse_2(shape1,shape2):           ]]></PyFunc>
-      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
-      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
-      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
-      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:14:15</creation-date>
+    <lastmodification-date>11/11/2004 - 13:14:15</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>1049</x-position>
-    <y-position>295</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeSphere from GEOM_Superv</comment>
+    <x-position>227</x-position>
+    <y-position>409</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>Macro_aNewDataFlow_1_5_1_1</node-name>
-    <kind>10</kind>
-    <coupled-node>aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1</coupled-node>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeFuse_1</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
     <service>
-<service-name>aNewDataFlow_1_5_1_1</service-name>
+<service-name>MakeFuse</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>sum__a</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape1</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>sum__b</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>int</outParameter-type>
-       <outParameter-name>Mult__b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>?</FuncName>
-      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:9</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:9</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:14:36</creation-date>
+    <lastmodification-date>11/11/2004 - 13:14:36</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Macro Node</comment>
-    <x-position>391</x-position>
-    <y-position>121</y-position>   </node>  </node-list>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeFuse from GEOM_Superv</comment>
+    <x-position>1217</x-position>
+    <y-position>389</y-position>   </node>
+   <node>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>SetStudyID</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>SetStudyID</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>theStudyID</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:15:1</creation-date>
+    <lastmodification-date>11/11/2004 - 13:15:1</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>localhost/FactoryServer</container>
+    <comment>SetStudyID from GEOM_Superv</comment>
+    <x-position>7</x-position>
+    <y-position>269</y-position>   </node>  </node-list>
   <link-list>
 <link>
-<fromnode-name>gag</fromnode-name>
-    <fromserviceparameter-name>Gate</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>Gate</toserviceparameter-name>
+<fromnode-name>Macro_aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>Mult__b</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDY</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>gag</fromnode-name>
-    <fromserviceparameter-name>Gate</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>Gate</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>175</x>
-      <y>470</y>     </coord>
-     <coord>
-<x>175</x>
-      <y>198</y>     </coord>    </coord-list>   </link>
+<fromnode-name>TranslateDXDYDZ</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape1</toserviceparameter-name>
+    <coord-list/>   </link>
    <link>
-<fromnode-name>MakeBox1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeCopy</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theObject</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeBox1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_2</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>373</x>
-      <y>211</y>     </coord>    </coord-list>   </link>
+<fromnode-name>MakeBox</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeBox</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
+    <coord-list/>   </link>
    <link>
 <fromnode-name>MakeCopy_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape2</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeCopy_2</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
+<fromnode-name>MakeFuse</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
     <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape2</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>674</x>
-      <y>207</y>     </coord>    </coord-list>   </link>
-   <link>
-<fromnode-name>MakeSphere_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_2</tonode-name>
-    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <toserviceparameter-name>theShape1</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeTranslation_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
+<fromnode-name>MakeSphere</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
     <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <toserviceparameter-name>theShape2</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeFuse_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_2</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
-    <coord-list>
-<coord>
-<x>1017</x>
-      <y>366</y>     </coord>
-     <coord>
-<x>1017</x>
-      <y>187</y>     </coord>    </coord-list>   </link>
+<fromnode-name>SetStudyID</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
    <link>
-<fromnode-name>Macro_aNewDataFlow_1_5_1_1</fromnode-name>
-    <fromserviceparameter-name>Mult__b</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>SetStudyID</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
     <coord-list/>   </link>  </link-list>
   <data-list>
 <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__x1</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>Macro_aNewDataFlow_1__sum__a</fromserviceparameter-name>
+    <tonode-name>Macro_aNewDataFlow_1</tonode-name>
+    <toserviceparameter-name>sum__a</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>0</value>    </data-value>
+     <value>1</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__y1</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>Macro_aNewDataFlow_1__sum__b</fromserviceparameter-name>
+    <tonode-name>Macro_aNewDataFlow_1</tonode-name>
+    <toserviceparameter-name>sum__b</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>2</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDX</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDX</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDZ</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDZ</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theX1</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theX1</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__z1</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theY1</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theY1</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__x2</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>x2</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theZ1</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theZ1</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>50</value>    </data-value>
+     <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__y2</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>y2</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theX2</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theX2</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeBox1__z2</fromserviceparameter-name>
-    <tonode-name>MakeBox1</tonode-name>
-    <toserviceparameter-name>z2</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theY2</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theY2</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeBox__theZ2</fromserviceparameter-name>
+    <tonode-name>MakeBox</tonode-name>
+    <toserviceparameter-name>theZ2</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>0</value>    </data-value>
+     <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theX</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theY</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>radius</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theZ</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>12</value>    </data-value>
+     <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theRadius</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theRadius</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
-     <value>25</value>    </data-value>
+     <value>12</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow</fromnode-name>
+    <fromserviceparameter-name>SetStudyID__theStudyID</fromserviceparameter-name>
+    <tonode-name>SetStudyID</tonode-name>
+    <toserviceparameter-name>theStudyID</toserviceparameter-name>
     <data-value>
-<value-type>7</value-type>
-     <value>25</value>    </data-value>
+<value-type>3</value-type>
+     <value>1</value>    </data-value>
     <coord-list/>   </data>  </data-list> </dataflow>
  <dataflow>
 <info-list>
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1</node-name>
+    <node-name>aNewDataFlow_1</node-name>
     <kind>1</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1</service-name>
+<service-name>aNewDataFlow_1</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
        <inParameter-name>sum__b</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>int</outParameter-type>
+<outParameter-type>double</outParameter-type>
        <outParameter-name>Mult__b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list/>
-    <creation-date>25/6/2004 - 17:42:12</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:10</lastmodification-date>
+    <creation-date>29/10/2004 - 14:40:44</creation-date>
+    <lastmodification-date>11/11/2004 - 13:11:18</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>sum</node-name>
+    <node-name>Mult</node-name>
     <kind>3</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>sum</service-name>
+<service-name>Mult</service-name>
      <inParameter-list>
 <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>a</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>b</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>long</outParameter-type>
-       <outParameter-name>s</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list>
 <PyFunction>
-<FuncName>sum</FuncName>
-      <PyFunc><![CDATA[def sum(a, b): ]]></PyFunc>
-      <PyFunc><![CDATA[   return a+b ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:10</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:10</lastmodification-date>
+<FuncName>Mult</FuncName>
+      <PyFunc><![CDATA[def Mult(a): ]]></PyFunc>
+      <PyFunc><![CDATA[   b = a*3 ]]></PyFunc>
+      <PyFunc><![CDATA[   return b ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>11/11/2004 - 13:11:18</creation-date>
+    <lastmodification-date>11/11/2004 - 13:11:18</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
     <comment>Compute Node</comment>
-    <x-position>52</x-position>
-    <y-position>80</y-position>   </node>
+    <x-position>382</x-position>
+    <y-position>78</y-position>   </node>
    <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>Mult</node-name>
+    <node-name>sum</node-name>
     <kind>3</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>Mult</service-name>
+<service-name>sum</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>int</inParameter-type>
-       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>b</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>int</outParameter-type>
-       <outParameter-name>b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>s</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list>
 <PyFunction>
-<FuncName>Mult</FuncName>
-      <PyFunc><![CDATA[def Mult(a): ]]></PyFunc>
-      <PyFunc><![CDATA[   b = a*3 ]]></PyFunc>
-      <PyFunc><![CDATA[   return b ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:16:10</creation-date>
-    <lastmodification-date>30/8/2004 - 10:16:10</lastmodification-date>
+<FuncName>sum</FuncName>
+      <PyFunc><![CDATA[def sum(a, b): ]]></PyFunc>
+      <PyFunc><![CDATA[   return a+b]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>11/11/2004 - 13:11:18</creation-date>
+    <lastmodification-date>11/11/2004 - 13:11:18</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
     <comment>Compute Node</comment>
-    <x-position>298</x-position>
-    <y-position>72</y-position>   </node>  </node-list>
+    <x-position>47</x-position>
+    <y-position>87</y-position>   </node>  </node-list>
   <link-list>
 <link>
 <fromnode-name>sum</fromnode-name>
diff --git a/examples/MacroWithGeom_py.py b/examples/MacroWithGeom_py.py
new file mode 100644 (file)
index 0000000..678d694
--- /dev/null
@@ -0,0 +1,264 @@
+
+# Generated python file of Graph aNewDataFlow_1_4_1_1_1_1
+
+from SuperV import *
+
+# Graph creation of aNewDataFlow_1_4_1_1_1_1
+def DefaNewDataFlow_1_4_1_1_1_1() :
+    aNewDataFlow_1_4_1_1_1_1 = Graph( 'aNewDataFlow_1_4_1_1_1_1' )
+    aNewDataFlow_1_4_1_1_1_1.SetName( 'aNewDataFlow_1_4_1_1_1_1' )
+    aNewDataFlow_1_4_1_1_1_1.SetAuthor( '' )
+    aNewDataFlow_1_4_1_1_1_1.SetComment( '' )
+    aNewDataFlow_1_4_1_1_1_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    Pygag = []
+    Pygag.append( 'from batchmode_geompy import *  ' )
+    Pygag.append( 'def gag():   ' )
+    Pygag.append( '    # This is a gag   ' )
+    Pygag.append( '    return 1   ' )
+    gag = aNewDataFlow_1_4_1_1_1_1.INode( 'gag' , Pygag )
+    gag.SetName( 'gag' )
+    gag.SetAuthor( '' )
+    gag.SetComment( 'Compute Node' )
+    gag.Coords( 0 , 123 )
+    IgagGate = gag.GetInPort( 'Gate' )
+    OgagGate = gag.GetOutPort( 'Gate' )
+    
+    PyMakeBox1 = []
+    PyMakeBox1.append( 'def MakeBox1(x1,y1,z1,x2,y2,z2):   ' )
+    PyMakeBox1.append( '    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ' )
+    PyMakeBox1.append( '    return aBox   ' )
+    MakeBox1 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeBox1' , PyMakeBox1 )
+    MakeBox1.SetName( 'MakeBox1' )
+    MakeBox1.SetAuthor( '' )
+    MakeBox1.SetComment( 'Compute Node' )
+    MakeBox1.Coords( 194 , 3 )
+    IMakeBox1x1 = MakeBox1.InPort( 'x1' , 'double' )
+    IMakeBox1y1 = MakeBox1.InPort( 'y1' , 'double' )
+    IMakeBox1z1 = MakeBox1.InPort( 'z1' , 'double' )
+    IMakeBox1x2 = MakeBox1.InPort( 'x2' , 'double' )
+    IMakeBox1y2 = MakeBox1.InPort( 'y2' , 'double' )
+    IMakeBox1z2 = MakeBox1.InPort( 'z2' , 'double' )
+    IMakeBox1Gate = MakeBox1.GetInPort( 'Gate' )
+    OMakeBox1shape = MakeBox1.OutPort( 'shape' , 'objref' )
+    OMakeBox1Gate = MakeBox1.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_1 = []
+    PyMakeCopy_1.append( 'def MakeCopy_1(shape1):  ' )
+    PyMakeCopy_1.append( '    shape=MakeCopy(shape1) ' )
+    PyMakeCopy_1.append( '    return shape ' )
+    MakeCopy_1 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeCopy_1' , PyMakeCopy_1 )
+    MakeCopy_1.SetName( 'MakeCopy_1' )
+    MakeCopy_1.SetAuthor( '' )
+    MakeCopy_1.SetComment( 'Compute Node' )
+    MakeCopy_1.Coords( 389 , 3 )
+    IMakeCopy_1shape1 = MakeCopy_1.InPort( 'shape1' , 'objref' )
+    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
+    OMakeCopy_1shape = MakeCopy_1.OutPort( 'shape' , 'objref' )
+    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_2 = []
+    PyMakeCopy_2.append( 'def MakeCopy_2(shape1):  ' )
+    PyMakeCopy_2.append( '    shape=MakeCopy(shape1)  ' )
+    PyMakeCopy_2.append( '    return shape ' )
+    MakeCopy_2 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeCopy_2' , PyMakeCopy_2 )
+    MakeCopy_2.SetName( 'MakeCopy_2' )
+    MakeCopy_2.SetAuthor( '' )
+    MakeCopy_2.SetComment( 'Compute Node' )
+    MakeCopy_2.Coords( 391 , 264 )
+    IMakeCopy_2shape1 = MakeCopy_2.InPort( 'shape1' , 'objref' )
+    IMakeCopy_2Gate = MakeCopy_2.GetInPort( 'Gate' )
+    OMakeCopy_2shape = MakeCopy_2.OutPort( 'shape' , 'objref' )
+    OMakeCopy_2Gate = MakeCopy_2.GetOutPort( 'Gate' )
+    
+    PyMakeSphere_1 = []
+    PyMakeSphere_1.append( 'def MakeSphere_1(x1,y1,z1,radius):   ' )
+    PyMakeSphere_1.append( '    apoint=MakeVertex(x1,y1,z1) ' )
+    PyMakeSphere_1.append( '    shape=MakeSpherePntR(apoint,radius) ' )
+    PyMakeSphere_1.append( '    return shape ' )
+    MakeSphere_1 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeSphere_1' , PyMakeSphere_1 )
+    MakeSphere_1.SetName( 'MakeSphere_1' )
+    MakeSphere_1.SetAuthor( '' )
+    MakeSphere_1.SetComment( 'Compute Node' )
+    MakeSphere_1.Coords( 203 , 315 )
+    IMakeSphere_1x1 = MakeSphere_1.InPort( 'x1' , 'double' )
+    IMakeSphere_1y1 = MakeSphere_1.InPort( 'y1' , 'double' )
+    IMakeSphere_1z1 = MakeSphere_1.InPort( 'z1' , 'double' )
+    IMakeSphere_1radius = MakeSphere_1.InPort( 'radius' , 'double' )
+    IMakeSphere_1Gate = MakeSphere_1.GetInPort( 'Gate' )
+    OMakeSphere_1shape = MakeSphere_1.OutPort( 'shape' , 'objref' )
+    OMakeSphere_1Gate = MakeSphere_1.GetOutPort( 'Gate' )
+    
+    PyMakeFuse_1 = []
+    PyMakeFuse_1.append( 'def MakeFuse_1(shape1,shape2): ' )
+    PyMakeFuse_1.append( '    # fuse operation 3 ' )
+    PyMakeFuse_1.append( '    shape = MakeBoolean(shape1,shape2,3)  ' )
+    PyMakeFuse_1.append( '    return shape ' )
+    MakeFuse_1 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeFuse_1' , PyMakeFuse_1 )
+    MakeFuse_1.SetName( 'MakeFuse_1' )
+    MakeFuse_1.SetAuthor( '' )
+    MakeFuse_1.SetComment( 'Compute Node' )
+    MakeFuse_1.Coords( 823 , 116 )
+    IMakeFuse_1shape1 = MakeFuse_1.InPort( 'shape1' , 'objref' )
+    IMakeFuse_1shape2 = MakeFuse_1.InPort( 'shape2' , 'objref' )
+    IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
+    OMakeFuse_1shape = MakeFuse_1.OutPort( 'shape' , 'objref' )
+    OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
+    
+    PyMakeFuse_2 = []
+    PyMakeFuse_2.append( 'def MakeFuse_2(shape1,shape2):           ' )
+    PyMakeFuse_2.append( '    # fuse operation 3          ' )
+    PyMakeFuse_2.append( '    shape = MakeBoolean(shape1,shape2,3) ' )
+    PyMakeFuse_2.append( '    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ' )
+    PyMakeFuse_2.append( '    myNamingService = SALOME_NamingServicePy_i(orb) ' )
+    PyMakeFuse_2.append( '    aSession = myNamingService.Resolve('/Kernel/Session') ' )
+    PyMakeFuse_2.append( '    aStudyId = aSession.GetActiveStudyId() ' )
+    PyMakeFuse_2.append( '    myStudyManager = myNamingService.Resolve('/myStudyManager') ' )
+    PyMakeFuse_2.append( '    aStudy = myStudyManager.GetStudyByID(aStudyId) ' )
+    PyMakeFuse_2.append( '    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ' )
+    PyMakeFuse_2.append( '    return shape ' )
+    MakeFuse_2 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeFuse_2' , PyMakeFuse_2 )
+    MakeFuse_2.SetName( 'MakeFuse_2' )
+    MakeFuse_2.SetAuthor( '' )
+    MakeFuse_2.SetComment( 'Compute Node' )
+    MakeFuse_2.Coords( 1049 , 295 )
+    IMakeFuse_2shape1 = MakeFuse_2.InPort( 'shape1' , 'objref' )
+    IMakeFuse_2shape2 = MakeFuse_2.InPort( 'shape2' , 'objref' )
+    IMakeFuse_2Gate = MakeFuse_2.GetInPort( 'Gate' )
+    OMakeFuse_2shape = MakeFuse_2.OutPort( 'shape' , 'objref' )
+    OMakeFuse_2Gate = MakeFuse_2.GetOutPort( 'Gate' )
+    
+    PyMakeTranslation_1 = []
+    PyMakeTranslation_1.append( 'def MakeTranslation_1(shape1,x1,y1,z1):   ' )
+    PyMakeTranslation_1.append( '    shape = MakeTranslation(shape1,x1,y1,z1)  ' )
+    PyMakeTranslation_1.append( '    return shape' )
+    MakeTranslation_1 = aNewDataFlow_1_4_1_1_1_1.INode( 'MakeTranslation_1' , PyMakeTranslation_1 )
+    MakeTranslation_1.SetName( 'MakeTranslation_1' )
+    MakeTranslation_1.SetAuthor( '' )
+    MakeTranslation_1.SetComment( 'Compute Node' )
+    MakeTranslation_1.Coords( 621 , 12 )
+    IMakeTranslation_1shape1 = MakeTranslation_1.InPort( 'shape1' , 'objref' )
+    IMakeTranslation_1x1 = MakeTranslation_1.InPort( 'x1' , 'double' )
+    IMakeTranslation_1y1 = MakeTranslation_1.InPort( 'y1' , 'double' )
+    IMakeTranslation_1z1 = MakeTranslation_1.InPort( 'z1' , 'double' )
+    IMakeTranslation_1Gate = MakeTranslation_1.GetInPort( 'Gate' )
+    OMakeTranslation_1shape = MakeTranslation_1.OutPort( 'shape' , 'objref' )
+    OMakeTranslation_1Gate = MakeTranslation_1.GetOutPort( 'Gate' )
+    
+    # Creation of Macro Nodes
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1 = DefaNewDataFlow_1_5_1_1_3_3_1_1_1_3_1()
+    Macro_aNewDataFlow_1_5_1_1 = aNewDataFlow_1_4_1_1_1_1.GraphMNode( aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1 )
+    Macro_aNewDataFlow_1_5_1_1.SetCoupled( 'aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1' )
+    Macro_aNewDataFlow_1_5_1_1.SetName( 'Macro_aNewDataFlow_1_5_1_1' )
+    Macro_aNewDataFlow_1_5_1_1.SetAuthor( '' )
+    Macro_aNewDataFlow_1_5_1_1.SetComment( 'Macro Node' )
+    Macro_aNewDataFlow_1_5_1_1.Coords( 391 , 121 )
+    IMacro_aNewDataFlow_1_5_1_1sum__a = Macro_aNewDataFlow_1_5_1_1.GetInPort( 'sum__a' )
+    IMacro_aNewDataFlow_1_5_1_1sum__b = Macro_aNewDataFlow_1_5_1_1.GetInPort( 'sum__b' )
+    IMacro_aNewDataFlow_1_5_1_1Gate = Macro_aNewDataFlow_1_5_1_1.GetInPort( 'Gate' )
+    OMacro_aNewDataFlow_1_5_1_1Mult__b = Macro_aNewDataFlow_1_5_1_1.GetOutPort( 'Mult__b' )
+    OMacro_aNewDataFlow_1_5_1_1Gate = Macro_aNewDataFlow_1_5_1_1.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LgagGateMakeBox1Gate = aNewDataFlow_1_4_1_1_1_1.Link( OgagGate , IMakeBox1Gate )
+    
+    LgagGateMakeSphere_1Gate = aNewDataFlow_1_4_1_1_1_1.Link( OgagGate , IMakeSphere_1Gate )
+    LgagGateMakeSphere_1Gate.AddCoord( 1 , 175 , 470 )
+    LgagGateMakeSphere_1Gate.AddCoord( 2 , 175 , 198 )
+    
+    LMakeBox1shapeMakeCopy_1shape1 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeBox1shape , IMakeCopy_1shape1 )
+    
+    LMakeBox1shapeMakeCopy_2shape1 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeBox1shape , IMakeCopy_2shape1 )
+    LMakeBox1shapeMakeCopy_2shape1.AddCoord( 1 , 373 , 211 )
+    
+    LMakeCopy_1shapeMakeTranslation_1shape1 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeCopy_1shape , IMakeTranslation_1shape1 )
+    
+    LMakeCopy_2shapeMakeFuse_1shape2 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeCopy_2shape , IMakeFuse_1shape2 )
+    LMakeCopy_2shapeMakeFuse_1shape2.AddCoord( 1 , 674 , 207 )
+    
+    LMakeSphere_1shapeMakeFuse_2shape2 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeSphere_1shape , IMakeFuse_2shape2 )
+    
+    LMakeFuse_1shapeMakeFuse_2shape1 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeFuse_1shape , IMakeFuse_2shape1 )
+    LMakeFuse_1shapeMakeFuse_2shape1.AddCoord( 1 , 1017 , 366 )
+    LMakeFuse_1shapeMakeFuse_2shape1.AddCoord( 2 , 1017 , 187 )
+    
+    LMacro_aNewDataFlow_1_5_1_1Mult__bMakeTranslation_1y1 = aNewDataFlow_1_4_1_1_1_1.Link( OMacro_aNewDataFlow_1_5_1_1Mult__b , IMakeTranslation_1y1 )
+    
+    LMakeTranslation_1shapeMakeFuse_1shape1 = aNewDataFlow_1_4_1_1_1_1.Link( OMakeTranslation_1shape , IMakeFuse_1shape1 )
+    
+    # Input datas
+    IMakeBox1x1.Input( 0 )
+    IMakeBox1y1.Input( 0 )
+    IMakeBox1z1.Input( 0 )
+    IMakeBox1x2.Input( 50 )
+    IMakeBox1y2.Input( 50 )
+    IMakeBox1z2.Input( 50 )
+    IMakeSphere_1x1.Input( 0 )
+    IMakeSphere_1y1.Input( 0 )
+    IMakeSphere_1z1.Input( 0 )
+    IMakeSphere_1radius.Input( 12 )
+    IMacro_aNewDataFlow_1_5_1_1sum__a.Input( 1 )
+    IMacro_aNewDataFlow_1_5_1_1sum__b.Input( 2 )
+    IMakeTranslation_1x1.Input( 25 )
+    IMakeTranslation_1z1.Input( 25 )
+    
+    # Output Ports of the graph
+    #OMakeFuse_2shape = MakeFuse_2.GetOutPort( 'shape' )
+    return aNewDataFlow_1_4_1_1_1_1
+
+# Graph creation of aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1
+def DefaNewDataFlow_1_5_1_1_3_3_1_1_1_3_1() :
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1 = Graph( 'aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1' )
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.SetCoupled( 'Macro_aNewDataFlow_1_5_1_1' )
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.SetName( 'aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1' )
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.SetAuthor( '' )
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.SetComment( '' )
+    aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    Pysum = []
+    Pysum.append( 'def sum(a, b): ' )
+    Pysum.append( '   return a+b ' )
+    sum = aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.INode( 'sum' , Pysum )
+    sum.SetName( 'sum' )
+    sum.SetAuthor( '' )
+    sum.SetComment( 'Compute Node' )
+    sum.Coords( 52 , 80 )
+    Isuma = sum.InPort( 'a' , 'double' )
+    Isumb = sum.InPort( 'b' , 'double' )
+    IsumGate = sum.GetInPort( 'Gate' )
+    Osums = sum.OutPort( 's' , 'double' )
+    OsumGate = sum.GetOutPort( 'Gate' )
+    
+    PyMult = []
+    PyMult.append( 'def Mult(a): ' )
+    PyMult.append( '   b = a*3 ' )
+    PyMult.append( '   return b ' )
+    Mult = aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.INode( 'Mult' , PyMult )
+    Mult.SetName( 'Mult' )
+    Mult.SetAuthor( '' )
+    Mult.SetComment( 'Compute Node' )
+    Mult.Coords( 298 , 72 )
+    IMulta = Mult.InPort( 'a' , 'double' )
+    IMultGate = Mult.GetInPort( 'Gate' )
+    OMultb = Mult.OutPort( 'b' , 'double' )
+    OMultGate = Mult.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LsumsMulta = aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1.Link( Osums , IMulta )
+    
+    # Input Ports of the graph
+    #Isuma = sum.GetInPort( 'a' )
+    #Isumb = sum.GetInPort( 'b' )
+    
+    # Output Ports of the graph
+    #OMultb = Mult.GetOutPort( 'b' )
+    return aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1
+
+
+aNewDataFlow_1_4_1_1_1_1 = DefaNewDataFlow_1_4_1_1_1_1()
diff --git a/examples/MacroWithGeom_py.xml b/examples/MacroWithGeom_py.xml
new file mode 100644 (file)
index 0000000..f73d935
--- /dev/null
@@ -0,0 +1,704 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>aNewDataFlow_1_4_1_1_1_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>aNewDataFlow_1_4_1_1_1_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__x2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__y2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeBox1__z2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>Macro_aNewDataFlow_1_5_1_1__sum__a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>Macro_aNewDataFlow_1_5_1_1__sum__b</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>MakeFuse_2__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>25/8/2004 - 16:28:50</creation-date>
+    <lastmodification-date>29/10/2004 - 15:25:57</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>gag</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>gag</service-name>
+     <inParameter-list/>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>gag</FuncName>
+      <PyFunc><![CDATA[from batchmode_geompy import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def gag():   ]]></PyFunc>
+      <PyFunc><![CDATA[    # This is a gag   ]]></PyFunc>
+      <PyFunc><![CDATA[    return 1   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>0</x-position>
+    <y-position>123</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeBox1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeBox1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y2</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeBox1</FuncName>
+      <PyFunc><![CDATA[def MakeBox1(x1,y1,z1,x2,y2,z2):   ]]></PyFunc>
+      <PyFunc><![CDATA[    aBox = MakeBox(x1,y1,z1,x2,y2,z2)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return aBox   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>3</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_1</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_1(shape1):  ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>389</x-position>
+    <y-position>3</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_2</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_2</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_2(shape1):  ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>391</x-position>
+    <y-position>264</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeSphere_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeSphere_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeSphere_1</FuncName>
+      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):   ]]></PyFunc>
+      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1) ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeSpherePntR(apoint,radius) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>203</x-position>
+    <y-position>315</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeFuse_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeFuse_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeFuse_1</FuncName>
+      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2): ]]></PyFunc>
+      <PyFunc><![CDATA[    # fuse operation 3 ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>823</x-position>
+    <y-position>116</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeFuse_2</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeFuse_2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeFuse_2</FuncName>
+      <PyFunc><![CDATA[def MakeFuse_2(shape1,shape2):           ]]></PyFunc>
+      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
+      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
+      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
+      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>1049</x-position>
+    <y-position>295</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Macro_aNewDataFlow_1_5_1_1</node-name>
+    <kind>10</kind>
+    <coupled-node>aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1</coupled-node>
+    <service>
+<service-name>aNewDataFlow_1_5_1_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>sum__a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>sum__b</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>Mult__b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Macro Node</comment>
+    <x-position>391</x-position>
+    <y-position>121</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeTranslation_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeTranslation_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeTranslation_1</FuncName>
+      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:24:21</creation-date>
+    <lastmodification-date>29/10/2004 - 15:24:21</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>621</x-position>
+    <y-position>12</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>gag</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>gag</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>175</x>
+      <y>470</y>     </coord>
+     <coord>
+<x>175</x>
+      <y>198</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>MakeBox1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeBox1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_2</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>373</x>
+      <y>211</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>MakeCopy_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeCopy_2</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>674</x>
+      <y>207</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_2</tonode-name>
+    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeFuse_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_2</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>1017</x>
+      <y>366</y>     </coord>
+     <coord>
+<x>1017</x>
+      <y>187</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Macro_aNewDataFlow_1_5_1_1</fromnode-name>
+    <fromserviceparameter-name>Mult__b</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeTranslation_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__x1</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__y1</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__z1</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__x2</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>x2</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__y2</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>y2</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeBox1__z2</fromserviceparameter-name>
+    <tonode-name>MakeBox1</tonode-name>
+    <toserviceparameter-name>z2</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>radius</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>12</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>Macro_aNewDataFlow_1_5_1_1__sum__a</fromserviceparameter-name>
+    <tonode-name>Macro_aNewDataFlow_1_5_1_1</tonode-name>
+    <toserviceparameter-name>sum__a</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>Macro_aNewDataFlow_1_5_1_1__sum__b</fromserviceparameter-name>
+    <tonode-name>Macro_aNewDataFlow_1_5_1_1</tonode-name>
+    <toserviceparameter-name>sum__b</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>2</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_1_1_1_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>25</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow>
+ <dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>aNewDataFlow_1_5_1_1_3_3_1_1_1_3_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>sum__a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>sum__b</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>Mult__b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>25/6/2004 - 17:42:12</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>sum</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>sum</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>b</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>s</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>sum</FuncName>
+      <PyFunc><![CDATA[def sum(a, b): ]]></PyFunc>
+      <PyFunc><![CDATA[   return a+b ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>52</x-position>
+    <y-position>80</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Mult</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>Mult</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+       <outParameter-name>b</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Mult</FuncName>
+      <PyFunc><![CDATA[def Mult(a): ]]></PyFunc>
+      <PyFunc><![CDATA[   b = a*3 ]]></PyFunc>
+      <PyFunc><![CDATA[   return b ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:22:47</creation-date>
+    <lastmodification-date>29/10/2004 - 15:22:47</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>298</x-position>
+    <y-position>72</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>sum</fromnode-name>
+    <fromserviceparameter-name>s</fromserviceparameter-name>
+    <tonode-name>Mult</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list/> </dataflow></supergraph>
index 461035f6f9c30fb860285aa4b20f4cc26c61bb9b..b8517043a20da95e38ddf8ccbacd15be35cbe0c2 100644 (file)
 
-# Generated python file of Graph aNewDataFlow_1_4_2_1
+# Generated python file of Graph aNewDataFlow_1
 
 from SuperV import *
 
-# Graph creation of aNewDataFlow_1_4_2_1
-def DefaNewDataFlow_1_4_2_1() :
-    aNewDataFlow_1_4_2_1 = Graph( 'aNewDataFlow_1_4_2_1' )
-    aNewDataFlow_1_4_2_1.SetName( 'aNewDataFlow_1_4_2_1' )
-    aNewDataFlow_1_4_2_1.SetAuthor( '' )
-    aNewDataFlow_1_4_2_1.SetComment( '' )
-    aNewDataFlow_1_4_2_1.Coords( 0 , 0 )
+# Graph creation of aNewDataFlow_1
+def DefaNewDataFlow_1() :
+    aNewDataFlow_1 = Graph( 'aNewDataFlow_1' )
+    aNewDataFlow_1.SetName( 'aNewDataFlow_1' )
+    aNewDataFlow_1.SetAuthor( '' )
+    aNewDataFlow_1.SetComment( '' )
+    aNewDataFlow_1.Coords( 0 , 0 )
     
     # Creation of Factory Nodes
     
-    # Creation of InLine Nodes
-    Pygag = []
-    Pygag.append( 'from batchmode_geompy import *  ' )
-    Pygag.append( 'def gag():   ' )
-    Pygag.append( '    # This is a gag   ' )
-    Pygag.append( '    return 1   ' )
-    gag = aNewDataFlow_1_4_2_1.INode( 'gag' , Pygag )
-    gag.SetName( 'gag' )
-    gag.SetAuthor( '' )
-    gag.SetComment( 'Compute Node' )
-    gag.Coords( 0 , 123 )
-    IgagGate = gag.GetInPort( 'Gate' )
-    OgagGate = gag.GetOutPort( 'Gate' )
+    SetStudyID = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'SetStudyID' )
+    SetStudyID.SetName( 'SetStudyID' )
+    SetStudyID.SetAuthor( '' )
+    SetStudyID.SetContainer( 'localhost/FactoryServer' )
+    SetStudyID.SetComment( 'SetStudyID from GEOM_Superv' )
+    SetStudyID.Coords( 9 , 118 )
+    ISetStudyIDtheStudyID = SetStudyID.GetInPort( 'theStudyID' )
+    ISetStudyIDGate = SetStudyID.GetInPort( 'Gate' )
+    OSetStudyIDGate = SetStudyID.GetOutPort( 'Gate' )
     
-    PyMakeCopy_1 = []
-    PyMakeCopy_1.append( 'def MakeCopy_1(shape1):  ' )
-    PyMakeCopy_1.append( '    shape=MakeCopy(shape1) ' )
-    PyMakeCopy_1.append( '    return shape ' )
-    MakeCopy_1 = aNewDataFlow_1_4_2_1.INode( 'MakeCopy_1' , PyMakeCopy_1 )
-    MakeCopy_1.SetName( 'MakeCopy_1' )
-    MakeCopy_1.SetAuthor( '' )
-    MakeCopy_1.SetComment( 'Compute Node' )
-    MakeCopy_1.Coords( 385 , 3 )
-    IMakeCopy_1shape1 = MakeCopy_1.InPort( 'shape1' , 'objref' )
-    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
-    OMakeCopy_1shape = MakeCopy_1.OutPort( 'shape' , 'objref' )
-    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    MakeSphere = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeSphere' )
+    MakeSphere.SetName( 'MakeSphere' )
+    MakeSphere.SetAuthor( '' )
+    MakeSphere.SetContainer( 'localhost/FactoryServer' )
+    MakeSphere.SetComment( 'MakeSphere from GEOM_Superv' )
+    MakeSphere.Coords( 202 , 58 )
+    IMakeSpheretheX = MakeSphere.GetInPort( 'theX' )
+    IMakeSpheretheY = MakeSphere.GetInPort( 'theY' )
+    IMakeSpheretheZ = MakeSphere.GetInPort( 'theZ' )
+    IMakeSpheretheRadius = MakeSphere.GetInPort( 'theRadius' )
+    IMakeSphereGate = MakeSphere.GetInPort( 'Gate' )
+    OMakeSpherereturn = MakeSphere.GetOutPort( 'return' )
+    OMakeSphereGate = MakeSphere.GetOutPort( 'Gate' )
     
-    PyMakeSphere_1 = []
-    PyMakeSphere_1.append( 'def MakeSphere_1(x1,y1,z1,radius):   ' )
-    PyMakeSphere_1.append( '    apoint=MakeVertex(x1,y1,z1) ' )
-    PyMakeSphere_1.append( '    shape=MakeSphere(apoint,radius) ' )
-    PyMakeSphere_1.append( '    return shape ' )
-    MakeSphere_1 = aNewDataFlow_1_4_2_1.INode( 'MakeSphere_1' , PyMakeSphere_1 )
-    MakeSphere_1.SetName( 'MakeSphere_1' )
-    MakeSphere_1.SetAuthor( '' )
-    MakeSphere_1.SetComment( 'Compute Node' )
-    MakeSphere_1.Coords( 193 , 67 )
-    IMakeSphere_1x1 = MakeSphere_1.InPort( 'x1' , 'double' )
-    IMakeSphere_1y1 = MakeSphere_1.InPort( 'y1' , 'double' )
-    IMakeSphere_1z1 = MakeSphere_1.InPort( 'z1' , 'double' )
-    IMakeSphere_1radius = MakeSphere_1.InPort( 'radius' , 'double' )
-    IMakeSphere_1Gate = MakeSphere_1.GetInPort( 'Gate' )
-    OMakeSphere_1shape = MakeSphere_1.OutPort( 'shape' , 'objref' )
-    OMakeSphere_1Gate = MakeSphere_1.GetOutPort( 'Gate' )
+    MakeCopy = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeCopy' )
+    MakeCopy.SetName( 'MakeCopy' )
+    MakeCopy.SetAuthor( '' )
+    MakeCopy.SetContainer( 'localhost/FactoryServer' )
+    MakeCopy.SetComment( 'MakeCopy from GEOM_Superv' )
+    MakeCopy.Coords( 425 , 11 )
+    IMakeCopytheOriginal = MakeCopy.GetInPort( 'theOriginal' )
+    IMakeCopyGate = MakeCopy.GetInPort( 'Gate' )
+    OMakeCopyreturn = MakeCopy.GetOutPort( 'return' )
+    OMakeCopyGate = MakeCopy.GetOutPort( 'Gate' )
     
-    PyMakeTranslation_1 = []
-    PyMakeTranslation_1.append( 'def MakeTranslation_1(shape1,x1,y1,z1):   ' )
-    PyMakeTranslation_1.append( '    shape = MakeTranslation(shape1,x1,y1,z1)  ' )
-    PyMakeTranslation_1.append( '    return shape  ' )
-    MakeTranslation_1 = aNewDataFlow_1_4_2_1.INode( 'MakeTranslation_1' , PyMakeTranslation_1 )
-    MakeTranslation_1.SetName( 'MakeTranslation_1' )
-    MakeTranslation_1.SetAuthor( '' )
-    MakeTranslation_1.SetComment( 'Compute Node' )
-    MakeTranslation_1.Coords( 388 , 146 )
-    IMakeTranslation_1shape1 = MakeTranslation_1.InPort( 'shape1' , 'objref' )
-    IMakeTranslation_1x1 = MakeTranslation_1.InPort( 'x1' , 'double' )
-    IMakeTranslation_1y1 = MakeTranslation_1.InPort( 'y1' , 'double' )
-    IMakeTranslation_1z1 = MakeTranslation_1.InPort( 'z1' , 'double' )
-    IMakeTranslation_1Gate = MakeTranslation_1.GetInPort( 'Gate' )
-    OMakeTranslation_1shape = MakeTranslation_1.OutPort( 'shape' , 'objref' )
-    OMakeTranslation_1Gate = MakeTranslation_1.GetOutPort( 'Gate' )
+    TranslateDXDYDZ = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetName( 'TranslateDXDYDZ' )
+    TranslateDXDYDZ.SetAuthor( '' )
+    TranslateDXDYDZ.SetContainer( 'localhost/FactoryServer' )
+    TranslateDXDYDZ.SetComment( 'TranslateDXDYDZ from GEOM_Superv' )
+    TranslateDXDYDZ.Coords( 428 , 197 )
+    ITranslateDXDYDZtheObject = TranslateDXDYDZ.GetInPort( 'theObject' )
+    ITranslateDXDYDZtheDX = TranslateDXDYDZ.GetInPort( 'theDX' )
+    ITranslateDXDYDZtheDY = TranslateDXDYDZ.GetInPort( 'theDY' )
+    ITranslateDXDYDZtheDZ = TranslateDXDYDZ.GetInPort( 'theDZ' )
+    ITranslateDXDYDZGate = TranslateDXDYDZ.GetInPort( 'Gate' )
+    OTranslateDXDYDZreturn = TranslateDXDYDZ.GetOutPort( 'return' )
+    OTranslateDXDYDZGate = TranslateDXDYDZ.GetOutPort( 'Gate' )
     
-    PyMakeFuse_1 = []
-    PyMakeFuse_1.append( 'def MakeFuse_1(shape1,shape2):           ' )
-    PyMakeFuse_1.append( '    # fuse operation 3          ' )
-    PyMakeFuse_1.append( '    shape = MakeBoolean(shape1,shape2,3) ' )
-    PyMakeFuse_1.append( '    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ' )
-    PyMakeFuse_1.append( '    myNamingService = SALOME_NamingServicePy_i(orb) ' )
-    PyMakeFuse_1.append( '    aSession = myNamingService.Resolve('/Kernel/Session') ' )
-    PyMakeFuse_1.append( '    aStudyId = aSession.GetActiveStudyId() ' )
-    PyMakeFuse_1.append( '    myStudyManager = myNamingService.Resolve('/myStudyManager') ' )
-    PyMakeFuse_1.append( '    aStudy = myStudyManager.GetStudyByID(aStudyId) ' )
-    PyMakeFuse_1.append( '    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ' )
-    PyMakeFuse_1.append( '    return shape ' )
-    MakeFuse_1 = aNewDataFlow_1_4_2_1.INode( 'MakeFuse_1' , PyMakeFuse_1 )
-    MakeFuse_1.SetName( 'MakeFuse_1' )
-    MakeFuse_1.SetAuthor( '' )
-    MakeFuse_1.SetComment( 'Compute Node' )
-    MakeFuse_1.Coords( 618 , 64 )
-    IMakeFuse_1shape1 = MakeFuse_1.InPort( 'shape1' , 'objref' )
-    IMakeFuse_1shape2 = MakeFuse_1.InPort( 'shape2' , 'objref' )
-    IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
-    OMakeFuse_1shape = MakeFuse_1.OutPort( 'shape' , 'objref' )
-    OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
+    MakeFuse = aNewDataFlow_1.FNode( 'GEOM_Superv' , 'GEOM_Superv' , 'MakeFuse' )
+    MakeFuse.SetName( 'MakeFuse' )
+    MakeFuse.SetAuthor( '' )
+    MakeFuse.SetContainer( 'localhost/FactoryServer' )
+    MakeFuse.SetComment( 'MakeFuse from GEOM_Superv' )
+    MakeFuse.Coords( 651 , 103 )
+    IMakeFusetheShape1 = MakeFuse.GetInPort( 'theShape1' )
+    IMakeFusetheShape2 = MakeFuse.GetInPort( 'theShape2' )
+    IMakeFuseGate = MakeFuse.GetInPort( 'Gate' )
+    OMakeFusereturn = MakeFuse.GetOutPort( 'return' )
+    OMakeFuseGate = MakeFuse.GetOutPort( 'Gate' )
     
     # Creation of Links
-    LgagGateMakeSphere_1Gate = aNewDataFlow_1_4_2_1.Link( OgagGate , IMakeSphere_1Gate )
+    LSetStudyIDGateMakeSphereGate = aNewDataFlow_1.Link( OSetStudyIDGate , IMakeSphereGate )
     
-    LMakeCopy_1shapeMakeFuse_1shape1 = aNewDataFlow_1_4_2_1.Link( OMakeCopy_1shape , IMakeFuse_1shape1 )
+    LMakeSpherereturnMakeCopytheOriginal = aNewDataFlow_1.Link( OMakeSpherereturn , IMakeCopytheOriginal )
     
-    LMakeSphere_1shapeMakeCopy_1shape1 = aNewDataFlow_1_4_2_1.Link( OMakeSphere_1shape , IMakeCopy_1shape1 )
+    LMakeSpherereturnTranslateDXDYDZtheObject = aNewDataFlow_1.Link( OMakeSpherereturn , ITranslateDXDYDZtheObject )
     
-    LMakeSphere_1shapeMakeTranslation_1shape1 = aNewDataFlow_1_4_2_1.Link( OMakeSphere_1shape , IMakeTranslation_1shape1 )
+    LMakeCopyreturnMakeFusetheShape1 = aNewDataFlow_1.Link( OMakeCopyreturn , IMakeFusetheShape1 )
     
-    LMakeTranslation_1shapeMakeFuse_1shape2 = aNewDataFlow_1_4_2_1.Link( OMakeTranslation_1shape , IMakeFuse_1shape2 )
+    LTranslateDXDYDZreturnMakeFusetheShape2 = aNewDataFlow_1.Link( OTranslateDXDYDZreturn , IMakeFusetheShape2 )
     
     # Input datas
-    IMakeSphere_1x1.Input( 0 )
-    IMakeSphere_1y1.Input( 0 )
-    IMakeSphere_1z1.Input( 0 )
-    IMakeSphere_1radius.Input( 50 )
-    IMakeTranslation_1x1.Input( 80 )
-    IMakeTranslation_1y1.Input( 0 )
-    IMakeTranslation_1z1.Input( 0 )
+    ISetStudyIDtheStudyID.Input( 1 )
+    IMakeSpheretheX.Input( 0 )
+    IMakeSpheretheY.Input( 0 )
+    IMakeSpheretheZ.Input( 0 )
+    IMakeSpheretheRadius.Input( 50 )
+    ITranslateDXDYDZtheDX.Input( 80 )
+    ITranslateDXDYDZtheDY.Input( 0 )
+    ITranslateDXDYDZtheDZ.Input( 0 )
     
     # Output Ports of the graph
-    #OMakeFuse_1shape = MakeFuse_1.GetOutPort( 'shape' )
-    return aNewDataFlow_1_4_2_1
+    #OMakeFusereturn = MakeFuse.GetOutPort( 'return' )
+    return aNewDataFlow_1
 
 
-aNewDataFlow_1_4_2_1 = DefaNewDataFlow_1_4_2_1()
+aNewDataFlow_1 = DefaNewDataFlow_1()
index 4f6b8b5de211264d7e97ff970455a56dfe5a014c..9cbb7e29394c929b1aa77cf63b555fa06608156c 100644 (file)
@@ -5,41 +5,44 @@
 <node>
 <component-name>?</component-name>
     <interface-name>?</interface-name>
-    <node-name>aNewDataFlow_1_4_2_1</node-name>
+    <node-name>aNewDataFlow_1</node-name>
     <kind>1</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>aNewDataFlow_1_4_2_1</service-name>
+<service-name>aNewDataFlow_1</service-name>
      <inParameter-list>
 <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>SetStudyID__theStudyID</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theZ</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+       <inParameter-name>MakeSphere__theRadius</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__y1</inParameter-name>      </inParameter>
+       <inParameter-name>TranslateDXDYDZ__theDY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>TranslateDXDYDZ__theDZ</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>MakeFuse_1__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>MakeFuse__return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
     <PyFunction-list/>
-    <creation-date>25/8/2004 - 16:28:50</creation-date>
-    <lastmodification-date>30/8/2004 - 10:10:8</lastmodification-date>
+    <creation-date>29/10/2004 - 11:15:45</creation-date>
+    <lastmodification-date>11/11/2004 - 13:5:45</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
     <container>?</container>
     <y-position>0</y-position>   </node>  </info-list>
   <node-list>
 <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>gag</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>SetStudyID</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>gag</service-name>
-     <inParameter-list/>
+<service-name>SetStudyID</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>theStudyID</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list/>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>gag</FuncName>
-      <PyFunc><![CDATA[from batchmode_geompy import *  ]]></PyFunc>
-      <PyFunc><![CDATA[def gag():   ]]></PyFunc>
-      <PyFunc><![CDATA[    # This is a gag   ]]></PyFunc>
-      <PyFunc><![CDATA[    return 1   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:10:8</creation-date>
-    <lastmodification-date>30/8/2004 - 10:10:8</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:3:46</creation-date>
+    <lastmodification-date>11/11/2004 - 13:3:46</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>0</x-position>
-    <y-position>123</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>SetStudyID from GEOM_Superv</comment>
+    <x-position>9</x-position>
+    <y-position>118</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeCopy_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeSphere</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeCopy_1</service-name>
+<service-name>MakeSphere</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theX</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theY</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theZ</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>theRadius</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeCopy_1</FuncName>
-      <PyFunc><![CDATA[def MakeCopy_1(shape1):  ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeCopy(shape1) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:10:8</creation-date>
-    <lastmodification-date>30/8/2004 - 10:10:8</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:4:18</creation-date>
+    <lastmodification-date>11/11/2004 - 13:4:18</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>385</x-position>
-    <y-position>3</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeSphere from GEOM_Superv</comment>
+    <x-position>202</x-position>
+    <y-position>58</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeSphere_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeCopy</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeSphere_1</service-name>
+<service-name>MakeCopy</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>
-      <inParameter>
-<inParameter-type>double</inParameter-type>
-       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theOriginal</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeSphere_1</FuncName>
-      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):   ]]></PyFunc>
-      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1) ]]></PyFunc>
-      <PyFunc><![CDATA[    shape=MakeSphere(apoint,radius) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:10:8</creation-date>
-    <lastmodification-date>30/8/2004 - 10:10:8</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:4:49</creation-date>
+    <lastmodification-date>11/11/2004 - 13:4:49</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>193</x-position>
-    <y-position>67</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeCopy from GEOM_Superv</comment>
+    <x-position>425</x-position>
+    <y-position>11</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeTranslation_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>TranslateDXDYDZ</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeTranslation_1</service-name>
+<service-name>TranslateDXDYDZ</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theObject</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>x1</inParameter-name>      </inParameter>
+       <inParameter-name>theDX</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>y1</inParameter-name>      </inParameter>
+       <inParameter-name>theDY</inParameter-name>      </inParameter>
       <inParameter>
 <inParameter-type>double</inParameter-type>
-       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+       <inParameter-name>theDZ</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeTranslation_1</FuncName>
-      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)  ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:10:8</creation-date>
-    <lastmodification-date>30/8/2004 - 10:10:8</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:5:12</creation-date>
+    <lastmodification-date>11/11/2004 - 13:5:12</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>388</x-position>
-    <y-position>146</y-position>   </node>
+    <container>localhost/FactoryServer</container>
+    <comment>TranslateDXDYDZ from GEOM_Superv</comment>
+    <x-position>428</x-position>
+    <y-position>197</y-position>   </node>
    <node>
-<component-name>?</component-name>
-    <interface-name>?</interface-name>
-    <node-name>MakeFuse_1</node-name>
-    <kind>3</kind>
+<component-name>GEOM_Superv</component-name>
+    <interface-name>GEOM_Superv</interface-name>
+    <node-name>MakeFuse</node-name>
+    <kind>0</kind>
     <coupled-node>?</coupled-node>
     <service>
-<service-name>MakeFuse_1</service-name>
+<service-name>MakeFuse</service-name>
      <inParameter-list>
 <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape1</inParameter-name>      </inParameter>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape1</inParameter-name>      </inParameter>
       <inParameter>
-<inParameter-type>objref</inParameter-type>
-       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+<inParameter-type>GEOM_Object</inParameter-type>
+       <inParameter-name>theShape2</inParameter-name>      </inParameter>     </inParameter-list>
      <outParameter-list>
 <outParameter>
-<outParameter-type>objref</outParameter-type>
-       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+<outParameter-type>GEOM_Object</outParameter-type>
+       <outParameter-name>return</outParameter-name>      </outParameter>     </outParameter-list>    </service>
     <DataStream-list/>
-    <PyFunction-list>
-<PyFunction>
-<FuncName>MakeFuse_1</FuncName>
-      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2):           ]]></PyFunc>
-      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
-      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
-      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
-      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
-      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
-      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
-      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
-      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
-    <creation-date>30/8/2004 - 10:10:8</creation-date>
-    <lastmodification-date>30/8/2004 - 10:10:8</lastmodification-date>
+    <PyFunction-list/>
+    <creation-date>11/11/2004 - 13:5:36</creation-date>
+    <lastmodification-date>11/11/2004 - 13:5:36</lastmodification-date>
     <editor-release>2.0</editor-release>
     <author>?</author>
-    <container>?</container>
-    <comment>Compute Node</comment>
-    <x-position>618</x-position>
-    <y-position>64</y-position>   </node>  </node-list>
+    <container>localhost/FactoryServer</container>
+    <comment>MakeFuse from GEOM_Superv</comment>
+    <x-position>651</x-position>
+    <y-position>103</y-position>   </node>  </node-list>
   <link-list>
 <link>
-<fromnode-name>gag</fromnode-name>
+<fromnode-name>SetStudyID</fromnode-name>
     <fromserviceparameter-name>Gate</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
+    <tonode-name>MakeSphere</tonode-name>
     <toserviceparameter-name>Gate</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeCopy_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeSphere</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeCopy</tonode-name>
+    <toserviceparameter-name>theOriginal</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeSphere_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeCopy_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeSphere</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theObject</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeSphere_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>shape1</toserviceparameter-name>
+<fromnode-name>MakeCopy</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape1</toserviceparameter-name>
     <coord-list/>   </link>
    <link>
-<fromnode-name>MakeTranslation_1</fromnode-name>
-    <fromserviceparameter-name>shape</fromserviceparameter-name>
-    <tonode-name>MakeFuse_1</tonode-name>
-    <toserviceparameter-name>shape2</toserviceparameter-name>
+<fromnode-name>TranslateDXDYDZ</fromnode-name>
+    <fromserviceparameter-name>return</fromserviceparameter-name>
+    <tonode-name>MakeFuse</tonode-name>
+    <toserviceparameter-name>theShape2</toserviceparameter-name>
     <coord-list/>   </link>  </link-list>
   <data-list>
 <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>SetStudyID__theStudyID</fromserviceparameter-name>
+    <tonode-name>SetStudyID</tonode-name>
+    <toserviceparameter-name>theStudyID</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theX</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theY</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theZ</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
-    <tonode-name>MakeSphere_1</tonode-name>
-    <toserviceparameter-name>radius</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere__theRadius</fromserviceparameter-name>
+    <tonode-name>MakeSphere</tonode-name>
+    <toserviceparameter-name>theRadius</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>50</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>x1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDX</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDX</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>80</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__y1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>y1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDY</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDY</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
     <coord-list/>   </data>
    <data>
-<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
-    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
-    <tonode-name>MakeTranslation_1</tonode-name>
-    <toserviceparameter-name>z1</toserviceparameter-name>
+<fromnode-name>aNewDataFlow_1</fromnode-name>
+    <fromserviceparameter-name>TranslateDXDYDZ__theDZ</fromserviceparameter-name>
+    <tonode-name>TranslateDXDYDZ</tonode-name>
+    <toserviceparameter-name>theDZ</toserviceparameter-name>
     <data-value>
 <value-type>7</value-type>
      <value>0</value>    </data-value>
diff --git a/examples/NewGraphGeomEssai_py.py b/examples/NewGraphGeomEssai_py.py
new file mode 100644 (file)
index 0000000..94809ba
--- /dev/null
@@ -0,0 +1,127 @@
+
+# Generated python file of Graph aNewDataFlow_1_4_2_1
+
+from SuperV import *
+
+# Graph creation of aNewDataFlow_1_4_2_1
+def DefaNewDataFlow_1_4_2_1() :
+    aNewDataFlow_1_4_2_1 = Graph( 'aNewDataFlow_1_4_2_1' )
+    aNewDataFlow_1_4_2_1.SetName( 'aNewDataFlow_1_4_2_1' )
+    aNewDataFlow_1_4_2_1.SetAuthor( '' )
+    aNewDataFlow_1_4_2_1.SetComment( '' )
+    aNewDataFlow_1_4_2_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    Pygag = []
+    Pygag.append( 'from batchmode_geompy import *  ' )
+    Pygag.append( 'def gag():   ' )
+    Pygag.append( '    # This is a gag   ' )
+    Pygag.append( '    return 1   ' )
+    gag = aNewDataFlow_1_4_2_1.INode( 'gag' , Pygag )
+    gag.SetName( 'gag' )
+    gag.SetAuthor( '' )
+    gag.SetComment( 'Compute Node' )
+    gag.Coords( 0 , 123 )
+    IgagGate = gag.GetInPort( 'Gate' )
+    OgagGate = gag.GetOutPort( 'Gate' )
+    
+    PyMakeCopy_1 = []
+    PyMakeCopy_1.append( 'def MakeCopy_1(shape1):  ' )
+    PyMakeCopy_1.append( '    shape=MakeCopy(shape1) ' )
+    PyMakeCopy_1.append( '    return shape ' )
+    MakeCopy_1 = aNewDataFlow_1_4_2_1.INode( 'MakeCopy_1' , PyMakeCopy_1 )
+    MakeCopy_1.SetName( 'MakeCopy_1' )
+    MakeCopy_1.SetAuthor( '' )
+    MakeCopy_1.SetComment( 'Compute Node' )
+    MakeCopy_1.Coords( 385 , 3 )
+    IMakeCopy_1shape1 = MakeCopy_1.InPort( 'shape1' , 'objref' )
+    IMakeCopy_1Gate = MakeCopy_1.GetInPort( 'Gate' )
+    OMakeCopy_1shape = MakeCopy_1.OutPort( 'shape' , 'objref' )
+    OMakeCopy_1Gate = MakeCopy_1.GetOutPort( 'Gate' )
+    
+    PyMakeSphere_1 = []
+    PyMakeSphere_1.append( 'def MakeSphere_1(x1,y1,z1,radius):   ' )
+    PyMakeSphere_1.append( '    apoint=MakeVertex(x1,y1,z1) ' )
+    PyMakeSphere_1.append( '    shape=MakeSpherePntR(apoint,radius) ' )
+    PyMakeSphere_1.append( '    return shape ' )
+    MakeSphere_1 = aNewDataFlow_1_4_2_1.INode( 'MakeSphere_1' , PyMakeSphere_1 )
+    MakeSphere_1.SetName( 'MakeSphere_1' )
+    MakeSphere_1.SetAuthor( '' )
+    MakeSphere_1.SetComment( 'Compute Node' )
+    MakeSphere_1.Coords( 193 , 67 )
+    IMakeSphere_1x1 = MakeSphere_1.InPort( 'x1' , 'double' )
+    IMakeSphere_1y1 = MakeSphere_1.InPort( 'y1' , 'double' )
+    IMakeSphere_1z1 = MakeSphere_1.InPort( 'z1' , 'double' )
+    IMakeSphere_1radius = MakeSphere_1.InPort( 'radius' , 'double' )
+    IMakeSphere_1Gate = MakeSphere_1.GetInPort( 'Gate' )
+    OMakeSphere_1shape = MakeSphere_1.OutPort( 'shape' , 'objref' )
+    OMakeSphere_1Gate = MakeSphere_1.GetOutPort( 'Gate' )
+    
+    PyMakeTranslation_1 = []
+    PyMakeTranslation_1.append( 'def MakeTranslation_1(shape1,x1,y1,z1):   ' )
+    PyMakeTranslation_1.append( '    shape = MakeTranslation(shape1,x1,y1,z1)  ' )
+    PyMakeTranslation_1.append( '    return shape  ' )
+    MakeTranslation_1 = aNewDataFlow_1_4_2_1.INode( 'MakeTranslation_1' , PyMakeTranslation_1 )
+    MakeTranslation_1.SetName( 'MakeTranslation_1' )
+    MakeTranslation_1.SetAuthor( '' )
+    MakeTranslation_1.SetComment( 'Compute Node' )
+    MakeTranslation_1.Coords( 388 , 146 )
+    IMakeTranslation_1shape1 = MakeTranslation_1.InPort( 'shape1' , 'objref' )
+    IMakeTranslation_1x1 = MakeTranslation_1.InPort( 'x1' , 'double' )
+    IMakeTranslation_1y1 = MakeTranslation_1.InPort( 'y1' , 'double' )
+    IMakeTranslation_1z1 = MakeTranslation_1.InPort( 'z1' , 'double' )
+    IMakeTranslation_1Gate = MakeTranslation_1.GetInPort( 'Gate' )
+    OMakeTranslation_1shape = MakeTranslation_1.OutPort( 'shape' , 'objref' )
+    OMakeTranslation_1Gate = MakeTranslation_1.GetOutPort( 'Gate' )
+    
+    PyMakeFuse_1 = []
+    PyMakeFuse_1.append( 'def MakeFuse_1(shape1,shape2):           ' )
+    PyMakeFuse_1.append( '    # fuse operation 3          ' )
+    PyMakeFuse_1.append( '    shape = MakeBoolean(shape1,shape2,3) ' )
+    PyMakeFuse_1.append( '    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ' )
+    PyMakeFuse_1.append( '    myNamingService = SALOME_NamingServicePy_i(orb) ' )
+    PyMakeFuse_1.append( '    aSession = myNamingService.Resolve('/Kernel/Session') ' )
+    PyMakeFuse_1.append( '    aStudyId = aSession.GetActiveStudyId() ' )
+    PyMakeFuse_1.append( '    myStudyManager = myNamingService.Resolve('/myStudyManager') ' )
+    PyMakeFuse_1.append( '    aStudy = myStudyManager.GetStudyByID(aStudyId) ' )
+    PyMakeFuse_1.append( '    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ' )
+    PyMakeFuse_1.append( '    return shape ' )
+    MakeFuse_1 = aNewDataFlow_1_4_2_1.INode( 'MakeFuse_1' , PyMakeFuse_1 )
+    MakeFuse_1.SetName( 'MakeFuse_1' )
+    MakeFuse_1.SetAuthor( '' )
+    MakeFuse_1.SetComment( 'Compute Node' )
+    MakeFuse_1.Coords( 618 , 64 )
+    IMakeFuse_1shape1 = MakeFuse_1.InPort( 'shape1' , 'objref' )
+    IMakeFuse_1shape2 = MakeFuse_1.InPort( 'shape2' , 'objref' )
+    IMakeFuse_1Gate = MakeFuse_1.GetInPort( 'Gate' )
+    OMakeFuse_1shape = MakeFuse_1.OutPort( 'shape' , 'objref' )
+    OMakeFuse_1Gate = MakeFuse_1.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    LgagGateMakeSphere_1Gate = aNewDataFlow_1_4_2_1.Link( OgagGate , IMakeSphere_1Gate )
+    
+    LMakeCopy_1shapeMakeFuse_1shape1 = aNewDataFlow_1_4_2_1.Link( OMakeCopy_1shape , IMakeFuse_1shape1 )
+    
+    LMakeSphere_1shapeMakeCopy_1shape1 = aNewDataFlow_1_4_2_1.Link( OMakeSphere_1shape , IMakeCopy_1shape1 )
+    
+    LMakeSphere_1shapeMakeTranslation_1shape1 = aNewDataFlow_1_4_2_1.Link( OMakeSphere_1shape , IMakeTranslation_1shape1 )
+    
+    LMakeTranslation_1shapeMakeFuse_1shape2 = aNewDataFlow_1_4_2_1.Link( OMakeTranslation_1shape , IMakeFuse_1shape2 )
+    
+    # Input datas
+    IMakeSphere_1x1.Input( 0 )
+    IMakeSphere_1y1.Input( 0 )
+    IMakeSphere_1z1.Input( 0 )
+    IMakeSphere_1radius.Input( 50 )
+    IMakeTranslation_1x1.Input( 80 )
+    IMakeTranslation_1y1.Input( 0 )
+    IMakeTranslation_1z1.Input( 0 )
+    
+    # Output Ports of the graph
+    #OMakeFuse_1shape = MakeFuse_1.GetOutPort( 'shape' )
+    return aNewDataFlow_1_4_2_1
+
+
+aNewDataFlow_1_4_2_1 = DefaNewDataFlow_1_4_2_1()
diff --git a/examples/NewGraphGeomEssai_py.xml b/examples/NewGraphGeomEssai_py.xml
new file mode 100644 (file)
index 0000000..17ad7ca
--- /dev/null
@@ -0,0 +1,324 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>aNewDataFlow_1_4_2_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>aNewDataFlow_1_4_2_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeSphere_1__radius</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>MakeTranslation_1__z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>MakeFuse_1__shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>25/8/2004 - 16:28:50</creation-date>
+    <lastmodification-date>29/10/2004 - 15:17:44</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>gag</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>gag</service-name>
+     <inParameter-list/>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>gag</FuncName>
+      <PyFunc><![CDATA[from batchmode_geompy import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def gag():   ]]></PyFunc>
+      <PyFunc><![CDATA[    # This is a gag   ]]></PyFunc>
+      <PyFunc><![CDATA[    return 1   ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:17:44</creation-date>
+    <lastmodification-date>29/10/2004 - 15:17:44</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>0</x-position>
+    <y-position>123</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeCopy_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeCopy_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeCopy_1</FuncName>
+      <PyFunc><![CDATA[def MakeCopy_1(shape1):  ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeCopy(shape1) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:17:44</creation-date>
+    <lastmodification-date>29/10/2004 - 15:17:44</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>385</x-position>
+    <y-position>3</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeSphere_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeSphere_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>radius</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeSphere_1</FuncName>
+      <PyFunc><![CDATA[def MakeSphere_1(x1,y1,z1,radius):   ]]></PyFunc>
+      <PyFunc><![CDATA[    apoint=MakeVertex(x1,y1,z1) ]]></PyFunc>
+      <PyFunc><![CDATA[    shape=MakeSpherePntR(apoint,radius) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:17:44</creation-date>
+    <lastmodification-date>29/10/2004 - 15:17:44</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>193</x-position>
+    <y-position>67</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeTranslation_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeTranslation_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>x1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>y1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>double</inParameter-type>
+       <inParameter-name>z1</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeTranslation_1</FuncName>
+      <PyFunc><![CDATA[def MakeTranslation_1(shape1,x1,y1,z1):   ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeTranslation(shape1,x1,y1,z1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:17:44</creation-date>
+    <lastmodification-date>29/10/2004 - 15:17:44</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>388</x-position>
+    <y-position>146</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>MakeFuse_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>MakeFuse_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape1</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>objref</inParameter-type>
+       <inParameter-name>shape2</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+       <outParameter-name>shape</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>MakeFuse_1</FuncName>
+      <PyFunc><![CDATA[def MakeFuse_1(shape1,shape2):           ]]></PyFunc>
+      <PyFunc><![CDATA[    # fuse operation 3          ]]></PyFunc>
+      <PyFunc><![CDATA[    shape = MakeBoolean(shape1,shape2,3) ]]></PyFunc>
+      <PyFunc><![CDATA[    from SALOME_NamingServicePy import SALOME_NamingServicePy_i ]]></PyFunc>
+      <PyFunc><![CDATA[    myNamingService = SALOME_NamingServicePy_i(orb) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSession = myNamingService.Resolve('/Kernel/Session') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudyId = aSession.GetActiveStudyId() ]]></PyFunc>
+      <PyFunc><![CDATA[    myStudyManager = myNamingService.Resolve('/myStudyManager') ]]></PyFunc>
+      <PyFunc><![CDATA[    aStudy = myStudyManager.GetStudyByID(aStudyId) ]]></PyFunc>
+      <PyFunc><![CDATA[    aSObject = geom.AddInStudy(aStudy, shape, "shape", None) ]]></PyFunc>
+      <PyFunc><![CDATA[    return shape ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>29/10/2004 - 15:17:44</creation-date>
+    <lastmodification-date>29/10/2004 - 15:17:44</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>618</x-position>
+    <y-position>64</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>gag</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeCopy_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeCopy_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeSphere_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>shape1</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>MakeTranslation_1</fromnode-name>
+    <fromserviceparameter-name>shape</fromserviceparameter-name>
+    <tonode-name>MakeFuse_1</tonode-name>
+    <toserviceparameter-name>shape2</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeSphere_1__radius</fromserviceparameter-name>
+    <tonode-name>MakeSphere_1</tonode-name>
+    <toserviceparameter-name>radius</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>50</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__x1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>x1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>80</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__y1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>y1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>aNewDataFlow_1_4_2_1</fromnode-name>
+    <fromserviceparameter-name>MakeTranslation_1__z1</fromserviceparameter-name>
+    <tonode-name>MakeTranslation_1</tonode-name>
+    <toserviceparameter-name>z1</toserviceparameter-name>
+    <data-value>
+<value-type>7</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/SupervRheolefGraph.py b/examples/SupervRheolefGraph.py
deleted file mode 100755 (executable)
index 65c720f..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-
-# Generated python file of Graph aNewDataFlow
-
-from SuperV import *
-# Graph creation 
-aNewDataFlow = Graph( 'aNewDataFlow' )
-aNewDataFlow.SetName( 'aNewDataFlow' )
-aNewDataFlow.SetAuthor( '' )
-aNewDataFlow.SetComment( '' )
-aNewDataFlow.Coords( 0 , 0 )
-
-# Creation of Factory Nodes
-
-InitCL = aNewDataFlow.FNode( 'CLRheolef' , 'CLRheolef' , 'InitCL' )
-InitCL.SetName( 'InitCL' )
-InitCL.SetAuthor( '' )
-InitCL.SetContainer( 'localhost/FactoryServer' )
-InitCL.SetComment( 'InitCL from CLRheolef' )
-InitCL.Coords( 414 , 334 )
-
-MakeBox = aNewDataFlow.FNode( 'Geometry' , 'Geometry' , 'MakeBox' )
-MakeBox.SetName( 'MakeBox' )
-MakeBox.SetAuthor( '' )
-MakeBox.SetContainer( 'localhost/FactoryServer' )
-MakeBox.SetComment( 'MakeBox from Geometry' )
-MakeBox.Coords( 7 , 29 )
-
-MeshGeomShapeSup = aNewDataFlow.FNode( 'QMG' , 'QMG' , 'MeshGeomShapeSup' )
-MeshGeomShapeSup.SetName( 'MeshGeomShapeSup' )
-MeshGeomShapeSup.SetAuthor( '' )
-MeshGeomShapeSup.SetContainer( 'localhost/FactoryServer' )
-MeshGeomShapeSup.SetComment( 'MeshGeomShapeSup from QMG' )
-MeshGeomShapeSup.Coords( 372 , 0 )
-
-SolveSup = aNewDataFlow.FNode( 'Rheolef' , 'Rheolef' , 'SolveSup' )
-SolveSup.SetName( 'SolveSup' )
-SolveSup.SetAuthor( '' )
-SolveSup.SetContainer( 'localhost/FactoryServer' )
-SolveSup.SetComment( 'SolveSup from Rheolef' )
-SolveSup.Coords( 1030 , 304 )
-
-ModifyCL = aNewDataFlow.FNode( 'CLRheolef' , 'CLRheolef' , 'ModifyCL' )
-ModifyCL.SetName( 'ModifyCL' )
-ModifyCL.SetAuthor( '' )
-ModifyCL.SetContainer( 'localhost/FactoryServer' )
-ModifyCL.SetComment( 'ModifyCL from CLRheolef' )
-ModifyCL.Coords( 602 , 335 )
-
-MakeBoolean = aNewDataFlow.FNode( 'Geometry' , 'Geometry' , 'MakeBoolean' )
-MakeBoolean.SetName( 'MakeBoolean' )
-MakeBoolean.SetAuthor( '' )
-MakeBoolean.SetContainer( 'localhost/FactoryServer' )
-MakeBoolean.SetComment( 'MakeBoolean from Geometry' )
-MakeBoolean.Coords( 188 , 30 )
-
-MakeBox_1 = aNewDataFlow.FNode( 'Geometry' , 'Geometry' , 'MakeBox' )
-MakeBox_1.SetName( 'MakeBox_1' )
-MakeBox_1.SetAuthor( '' )
-MakeBox_1.SetContainer( 'localhost/FactoryServer' )
-MakeBox_1.SetComment( 'MakeBox from Geometry' )
-MakeBox_1.Coords( 0 , 325 )
-
-MakeTranslation = aNewDataFlow.FNode( 'Geometry' , 'Geometry' , 'MakeTranslation' )
-MakeTranslation.SetName( 'MakeTranslation' )
-MakeTranslation.SetAuthor( '' )
-MakeTranslation.SetContainer( 'localhost/FactoryServer' )
-MakeTranslation.SetComment( 'MakeTranslation from Geometry' )
-MakeTranslation.Coords( 190 , 325 )
-
-FindNode = aNewDataFlow.FNode( 'QMG' , 'QMG' , 'FindNode' )
-FindNode.SetName( 'FindNode' )
-FindNode.SetAuthor( '' )
-FindNode.SetContainer( 'localhost/FactoryServer' )
-FindNode.SetComment( 'FindNode from QMG' )
-FindNode.Coords( 621 , 0 )
-
-ValueOf = aNewDataFlow.FNode( 'Rheolef' , 'Rheolef' , 'ValueOf' )
-ValueOf.SetName( 'ValueOf' )
-ValueOf.SetAuthor( '' )
-ValueOf.SetContainer( 'localhost/FactoryServer' )
-ValueOf.SetComment( 'ValueOf from Rheolef' )
-ValueOf.Coords( 832 , 42 )
-
-ModifyCL_1 = aNewDataFlow.FNode( 'CLRheolef' , 'CLRheolef' , 'ModifyCL' )
-ModifyCL_1.SetName( 'ModifyCL_1' )
-ModifyCL_1.SetAuthor( '' )
-ModifyCL_1.SetContainer( 'localhost/FactoryServer' )
-ModifyCL_1.SetComment( 'ModifyCL from CLRheolef' )
-ModifyCL_1.Coords( 800 , 334 )
-
-Plot = aNewDataFlow.FNode( 'Rheolef' , 'Rheolef' , 'Plot' )
-Plot.SetName( 'Plot' )
-Plot.SetAuthor( '' )
-Plot.SetContainer( 'localhost/FactoryServer' )
-Plot.SetComment( 'Plot from Rheolef' )
-Plot.Coords( 1029 , 41 )
-
-Add = aNewDataFlow.FNode( 'AddComponent' , 'AddComponent' , 'Add' )
-Add.SetName( 'Add' )
-Add.SetAuthor( '' )
-Add.SetContainer( 'localhost/FactoryServer' )
-Add.SetComment( 'Add from AddComponent' )
-Add.Coords( 0 , 610 )
-
-# Creation of Links
-InitCLreturn = InitCL.Port( 'return' )
-ModifyCLmyRheolefData = aNewDataFlow.Link( InitCLreturn , ModifyCL.Port( 'myRheolefData' ) )
-
-MakeBoxshape = MakeBox.Port( 'shape' )
-MakeBooleanshape1 = aNewDataFlow.Link( MakeBoxshape , MakeBoolean.Port( 'shape1' ) )
-
-MeshGeomShapeSupreturn = MeshGeomShapeSup.Port( 'return' )
-SolveSupmyMesh = aNewDataFlow.Link( MeshGeomShapeSupreturn , SolveSup.Port( 'myMesh' ) )
-SolveSupmyMesh.AddCoord( 1 , 985 , 442 )
-SolveSupmyMesh.AddCoord( 2 , 984 , 301 )
-SolveSupmyMesh.AddCoord( 3 , 561 , 300 )
-SolveSupmyMesh.AddCoord( 4 , 561 , 83 )
-
-InitCLmyMesh = aNewDataFlow.Link( MeshGeomShapeSupreturn , InitCL.Port( 'myMesh' ) )
-InitCLmyMesh.AddCoord( 1 , 385 , 502 )
-InitCLmyMesh.AddCoord( 2 , 384 , 301 )
-InitCLmyMesh.AddCoord( 3 , 561 , 300 )
-InitCLmyMesh.AddCoord( 4 , 561 , 81 )
-
-FindNodeaMesh = aNewDataFlow.Link( MeshGeomShapeSupreturn , FindNode.Port( 'aMesh' ) )
-
-SolveSupreturn = SolveSup.Port( 'return' )
-ValueOfaField = aNewDataFlow.Link( SolveSupreturn , ValueOf.Port( 'aField' ) )
-ValueOfaField.AddCoord( 1 , 818 , 122 )
-ValueOfaField.AddCoord( 2 , 817 , 26 )
-ValueOfaField.AddCoord( 3 , 1216 , 26 )
-ValueOfaField.AddCoord( 4 , 1218 , 385 )
-
-ModifyCLreturn = ModifyCL.Port( 'return' )
-ModifyCL_1myRheolefData = aNewDataFlow.Link( ModifyCLreturn , ModifyCL_1.Port( 'myRheolefData' ) )
-
-MakeBooleanshape = MakeBoolean.Port( 'shape' )
-MeshGeomShapeSupshape = aNewDataFlow.Link( MakeBooleanshape , MeshGeomShapeSup.Port( 'shape' ) )
-
-MakeBox_1shape = MakeBox_1.Port( 'shape' )
-MakeTranslationshape1 = aNewDataFlow.Link( MakeBox_1shape , MakeTranslation.Port( 'shape1' ) )
-
-MakeTranslationshape = MakeTranslation.Port( 'shape' )
-MakeBooleanshape2 = aNewDataFlow.Link( MakeTranslationshape , MakeBoolean.Port( 'shape2' ) )
-MakeBooleanshape2.AddCoord( 1 , 182 , 140 )
-MakeBooleanshape2.AddCoord( 2 , 181 , 261 )
-MakeBooleanshape2.AddCoord( 3 , 363 , 260 )
-MakeBooleanshape2.AddCoord( 4 , 363 , 411 )
-MakeBooleanshape2.AddCoord( 5 , 327 , 408 )
-
-FindNodereturn = FindNode.Port( 'return' )
-ValueOfnumberOfNode = aNewDataFlow.Link( FindNodereturn , ValueOf.Port( 'numberOfNode' ) )
-ValueOfnumberOfNode.AddCoord( 1 , 799 , 152 )
-ValueOfnumberOfNode.AddCoord( 2 , 798 , 81 )
-
-ValueOfreturn = ValueOf.Port( 'return' )
-PlotValue = aNewDataFlow.Link( ValueOfreturn , Plot.Port( 'Value' ) )
-
-ModifyCL_1return = ModifyCL_1.Port( 'return' )
-SolveSupmyRheolefData = aNewDataFlow.Link( ModifyCL_1return , SolveSup.Port( 'myRheolefData' ) )
-
-Addz = Add.Port( 'z' )
-MakeTranslationy1 = aNewDataFlow.Link( Addz , MakeTranslation.Port( 'y1' ) )
-MakeTranslationy1.AddCoord( 1 , 181 , 464 )
-MakeTranslationy1.AddCoord( 2 , 182 , 720 )
-
-FindNodey = aNewDataFlow.Link( Addz , FindNode.Port( 'y' ) )
-FindNodey.AddCoord( 1 , 592 , 139 )
-FindNodey.AddCoord( 2 , 593 , 720 )
-
-PlotPosition = aNewDataFlow.Link( Addz , Plot.Port( 'Position' ) )
-PlotPosition.AddCoord( 1 , 1010 , 150 )
-PlotPosition.AddCoord( 2 , 1011 , 720 )
-
-# Creation of Input datas
-InitCLstudyId = InitCL.Input( 'studyId' , 1)
-InitCLdataName = InitCL.Input( 'dataName' , 'BoxData')
-InitCLsource = InitCL.Input( 'source' , 0)
-MakeBoxx1 = MakeBox.Input( 'x1' , 0)
-MakeBoxy1 = MakeBox.Input( 'y1' , 0)
-MakeBoxz1 = MakeBox.Input( 'z1' , 0)
-MakeBoxx2 = MakeBox.Input( 'x2' , 100)
-MakeBoxy2 = MakeBox.Input( 'y2' , 500)
-MakeBoxz2 = MakeBox.Input( 'z2' , 50)
-MeshGeomShapeSupstudyId = MeshGeomShapeSup.Input( 'studyId' , 1)
-MeshGeomShapeSupsizeControl = MeshGeomShapeSup.Input( 'sizeControl' , 999999)
-MeshGeomShapeSupcurveControl = MeshGeomShapeSup.Input( 'curveControl' , 0.5)
-MeshGeomShapeSuptolmesh = MeshGeomShapeSup.Input( 'tolmesh' , 1e-05)
-MeshGeomShapeSuptolskin = MeshGeomShapeSup.Input( 'tolskin' , 0)
-SolveSupstudyId = SolveSup.Input( 'studyId' , 1)
-ModifyCLfaceToModify = ModifyCL.Input( 'faceToModify' , 3)
-ModifyCLnewFaceCLtype = ModifyCL.Input( 'newFaceCLtype' , 1)
-ModifyCLnewFaceValue = ModifyCL.Input( 'newFaceValue' , 0)
-MakeBooleanoperation = MakeBoolean.Input( 'operation' , 2)
-MakeBox_1x1 = MakeBox_1.Input( 'x1' , 0)
-MakeBox_1y1 = MakeBox_1.Input( 'y1' , 0)
-MakeBox_1z1 = MakeBox_1.Input( 'z1' , 0)
-MakeBox_1x2 = MakeBox_1.Input( 'x2' , 40)
-MakeBox_1y2 = MakeBox_1.Input( 'y2' , 40)
-MakeBox_1z2 = MakeBox_1.Input( 'z2' , 70)
-MakeTranslationx1 = MakeTranslation.Input( 'x1' , 30)
-MakeTranslationz1 = MakeTranslation.Input( 'z1' , -10)
-FindNodex = FindNode.Input( 'x' , 50)
-FindNodez = FindNode.Input( 'z' , 25)
-ModifyCL_1faceToModify = ModifyCL_1.Input( 'faceToModify' , 5)
-ModifyCL_1newFaceCLtype = ModifyCL_1.Input( 'newFaceCLtype' , 1)
-ModifyCL_1newFaceValue = ModifyCL_1.Input( 'newFaceValue' , 1)
-PlotFilename = Plot.Input( 'Filename' , 'Result.plt')
-Addx = Add.Input( 'x' , 0)
-Addy = Add.Input( 'y' , 10)
-
-# Creation of Output variables
-AddFuncValue = Add.Port( 'FuncValue' )
diff --git a/examples/SupervRheolefGraph.xml b/examples/SupervRheolefGraph.xml
deleted file mode 100755 (executable)
index 0203403..0000000
+++ /dev/null
@@ -1,1072 +0,0 @@
-<!DOCTYPE Dataflow>
-<dataflow>
-<info-list>
-<node>
-<component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>aNewDataFlow</node-name>
-   <kind>1</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>aNewDataFlow</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>InitCL\studyId</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>string</inParameter-type>
-      <inParameter-name>InitCL\dataName</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>InitCL\source</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox\x1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox\y1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox\z1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox\x2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox\y2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox\z2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>MeshGeomShapeSup\studyId</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MeshGeomShapeSup\sizeControl</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MeshGeomShapeSup\curveControl</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MeshGeomShapeSup\tolmesh</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MeshGeomShapeSup\tolskin</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>SolveSup\studyId</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>ModifyCL\faceToModify</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>ModifyCL\newFaceCLtype</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>ModifyCL\newFaceValue</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>MakeBoolean\operation</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox_1\x1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox_1\y1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox_1\z1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox_1\x2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox_1\y2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeBox_1\z2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeTranslation\x1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>MakeTranslation\z1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>FindNode\x</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>FindNode\z</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>ModifyCL_1\faceToModify</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>ModifyCL_1\newFaceCLtype</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>ModifyCL_1\newFaceValue</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>string</inParameter-type>
-      <inParameter-name>Plot\Filename</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>Add\x</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>Add\y</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>double</outParameter-type>
-      <outParameter-name>Add\FuncValue</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>14/7/2002 - 21:1:52</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>0</x-position>
-   <y-position>0</y-position>  </node> </info-list>
- <node-list>
-<node>
-<component-name>CLRheolef</component-name>
-   <interface-name>CLRheolef</interface-name>
-   <node-name>InitCL</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>InitCL</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>studyId</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>string</inParameter-type>
-      <inParameter-name>dataName</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>source</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>QMG_Mesh</inParameter-type>
-      <inParameter-name>myMesh</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>Rheolef_Data</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>InitCL from CLRheolef</comment>
-   <x-position>414</x-position>
-   <y-position>334</y-position>  </node>
-  <node>
-<component-name>Geometry</component-name>
-   <interface-name>Geometry</interface-name>
-   <node-name>MakeBox</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>MakeBox</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>z1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>z2</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>GEOM_Shape</outParameter-type>
-      <outParameter-name>shape</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>MakeBox from Geometry</comment>
-   <x-position>7</x-position>
-   <y-position>29</y-position>  </node>
-  <node>
-<component-name>QMG</component-name>
-   <interface-name>QMG</interface-name>
-   <node-name>MeshGeomShapeSup</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>MeshGeomShapeSup</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>studyId</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>GEOM_Shape</inParameter-type>
-      <inParameter-name>shape</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>sizeControl</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>curveControl</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>tolmesh</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>tolskin</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>QMG_Mesh</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>MeshGeomShapeSup from QMG</comment>
-   <x-position>372</x-position>
-   <y-position>0</y-position>  </node>
-  <node>
-<component-name>Rheolef</component-name>
-   <interface-name>Rheolef</interface-name>
-   <node-name>SolveSup</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>SolveSup</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>studyId</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>Rheolef_Data</inParameter-type>
-      <inParameter-name>myRheolefData</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>QMG_Mesh</inParameter-type>
-      <inParameter-name>myMesh</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>Rheolef_Field</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>SolveSup from Rheolef</comment>
-   <x-position>1030</x-position>
-   <y-position>304</y-position>  </node>
-  <node>
-<component-name>CLRheolef</component-name>
-   <interface-name>CLRheolef</interface-name>
-   <node-name>ModifyCL</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>ModifyCL</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>Rheolef_Data</inParameter-type>
-      <inParameter-name>myRheolefData</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>faceToModify</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>newFaceCLtype</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>newFaceValue</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>Rheolef_Data</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>ModifyCL from CLRheolef</comment>
-   <x-position>602</x-position>
-   <y-position>335</y-position>  </node>
-  <node>
-<component-name>Geometry</component-name>
-   <interface-name>Geometry</interface-name>
-   <node-name>MakeBoolean</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>MakeBoolean</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>GEOM_Shape</inParameter-type>
-      <inParameter-name>shape1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>GEOM_Shape</inParameter-type>
-      <inParameter-name>shape2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>operation</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>GEOM_Shape</outParameter-type>
-      <outParameter-name>shape</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>MakeBoolean from Geometry</comment>
-   <x-position>188</x-position>
-   <y-position>30</y-position>  </node>
-  <node>
-<component-name>Geometry</component-name>
-   <interface-name>Geometry</interface-name>
-   <node-name>MakeBox_1</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>MakeBox</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>z1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y2</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>z2</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>GEOM_Shape</outParameter-type>
-      <outParameter-name>shape</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>MakeBox from Geometry</comment>
-   <x-position>0</x-position>
-   <y-position>325</y-position>  </node>
-  <node>
-<component-name>Geometry</component-name>
-   <interface-name>Geometry</interface-name>
-   <node-name>MakeTranslation</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>MakeTranslation</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>GEOM_Shape</inParameter-type>
-      <inParameter-name>shape1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y1</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>z1</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>GEOM_Shape</outParameter-type>
-      <outParameter-name>shape</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>MakeTranslation from Geometry</comment>
-   <x-position>190</x-position>
-   <y-position>325</y-position>  </node>
-  <node>
-<component-name>QMG</component-name>
-   <interface-name>QMG</interface-name>
-   <node-name>FindNode</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>FindNode</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>QMG_Mesh</inParameter-type>
-      <inParameter-name>aMesh</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>z</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>long</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>FindNode from QMG</comment>
-   <x-position>621</x-position>
-   <y-position>0</y-position>  </node>
-  <node>
-<component-name>Rheolef</component-name>
-   <interface-name>Rheolef</interface-name>
-   <node-name>ValueOf</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>ValueOf</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>Rheolef_Field</inParameter-type>
-      <inParameter-name>aField</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>numberOfNode</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>double</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>ValueOf from Rheolef</comment>
-   <x-position>832</x-position>
-   <y-position>42</y-position>  </node>
-  <node>
-<component-name>CLRheolef</component-name>
-   <interface-name>CLRheolef</interface-name>
-   <node-name>ModifyCL_1</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>ModifyCL</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>Rheolef_Data</inParameter-type>
-      <inParameter-name>myRheolefData</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>faceToModify</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>long</inParameter-type>
-      <inParameter-name>newFaceCLtype</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>newFaceValue</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>Rheolef_Data</outParameter-type>
-      <outParameter-name>return</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>ModifyCL from CLRheolef</comment>
-   <x-position>800</x-position>
-   <y-position>334</y-position>  </node>
-  <node>
-<component-name>Rheolef</component-name>
-   <interface-name>Rheolef</interface-name>
-   <node-name>Plot</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>Plot</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>Value</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>Position</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>string</inParameter-type>
-      <inParameter-name>Filename</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list/>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>Plot from Rheolef</comment>
-   <x-position>1029</x-position>
-   <y-position>41</y-position>  </node>
-  <node>
-<component-name>AddComponent</component-name>
-   <interface-name>AddComponent</interface-name>
-   <node-name>Add</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>Add</service-name>
-    <inParameter-list>
-<inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>x</inParameter-name>     </inParameter>
-     <inParameter>
-<inParameter-type>double</inParameter-type>
-      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
-<outParameter>
-<outParameter-type>double</outParameter-type>
-      <outParameter-name>FuncValue</outParameter-name>     </outParameter>
-     <outParameter>
-<outParameter-type>double</outParameter-type>
-      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>19/9/2003 - 15:24:7</creation-date>
-   <lastmodification-date>19/9/2003 - 15:24:7</lastmodification-date>
-   <editor-release>1.03</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>Add from AddComponent</comment>
-   <x-position>0</x-position>
-   <y-position>610</y-position>  </node> </node-list>
- <link-list>
-<link>
-<fromnode-name>InitCL</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>ModifyCL</tonode-name>
-   <toserviceparameter-name>myRheolefData</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>MakeBox</fromnode-name>
-   <fromserviceparameter-name>shape</fromserviceparameter-name>
-   <tonode-name>MakeBoolean</tonode-name>
-   <toserviceparameter-name>shape1</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>MeshGeomShapeSup</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>SolveSup</tonode-name>
-   <toserviceparameter-name>myMesh</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>985</x>
-     <y>442</y>    </coord>
-    <coord>
-<x>984</x>
-     <y>301</y>    </coord>
-    <coord>
-<x>561</x>
-     <y>300</y>    </coord>
-    <coord>
-<x>561</x>
-     <y>83</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>MeshGeomShapeSup</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>InitCL</tonode-name>
-   <toserviceparameter-name>myMesh</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>385</x>
-     <y>502</y>    </coord>
-    <coord>
-<x>384</x>
-     <y>301</y>    </coord>
-    <coord>
-<x>561</x>
-     <y>300</y>    </coord>
-    <coord>
-<x>561</x>
-     <y>81</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>MeshGeomShapeSup</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>FindNode</tonode-name>
-   <toserviceparameter-name>aMesh</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>SolveSup</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>ValueOf</tonode-name>
-   <toserviceparameter-name>aField</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>818</x>
-     <y>122</y>    </coord>
-    <coord>
-<x>817</x>
-     <y>26</y>    </coord>
-    <coord>
-<x>1216</x>
-     <y>26</y>    </coord>
-    <coord>
-<x>1218</x>
-     <y>385</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>ModifyCL</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>ModifyCL_1</tonode-name>
-   <toserviceparameter-name>myRheolefData</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>MakeBoolean</fromnode-name>
-   <fromserviceparameter-name>shape</fromserviceparameter-name>
-   <tonode-name>MeshGeomShapeSup</tonode-name>
-   <toserviceparameter-name>shape</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>MakeBox_1</fromnode-name>
-   <fromserviceparameter-name>shape</fromserviceparameter-name>
-   <tonode-name>MakeTranslation</tonode-name>
-   <toserviceparameter-name>shape1</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>MakeTranslation</fromnode-name>
-   <fromserviceparameter-name>shape</fromserviceparameter-name>
-   <tonode-name>MakeBoolean</tonode-name>
-   <toserviceparameter-name>shape2</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>182</x>
-     <y>140</y>    </coord>
-    <coord>
-<x>181</x>
-     <y>261</y>    </coord>
-    <coord>
-<x>363</x>
-     <y>260</y>    </coord>
-    <coord>
-<x>363</x>
-     <y>411</y>    </coord>
-    <coord>
-<x>327</x>
-     <y>408</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>FindNode</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>ValueOf</tonode-name>
-   <toserviceparameter-name>numberOfNode</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>799</x>
-     <y>152</y>    </coord>
-    <coord>
-<x>798</x>
-     <y>81</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>ValueOf</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>Plot</tonode-name>
-   <toserviceparameter-name>Value</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>ModifyCL_1</fromnode-name>
-   <fromserviceparameter-name>return</fromserviceparameter-name>
-   <tonode-name>SolveSup</tonode-name>
-   <toserviceparameter-name>myRheolefData</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
-<fromnode-name>Add</fromnode-name>
-   <fromserviceparameter-name>z</fromserviceparameter-name>
-   <tonode-name>MakeTranslation</tonode-name>
-   <toserviceparameter-name>y1</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>181</x>
-     <y>464</y>    </coord>
-    <coord>
-<x>182</x>
-     <y>720</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>Add</fromnode-name>
-   <fromserviceparameter-name>z</fromserviceparameter-name>
-   <tonode-name>FindNode</tonode-name>
-   <toserviceparameter-name>y</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>592</x>
-     <y>139</y>    </coord>
-    <coord>
-<x>593</x>
-     <y>720</y>    </coord>   </coord-list>  </link>
-  <link>
-<fromnode-name>Add</fromnode-name>
-   <fromserviceparameter-name>z</fromserviceparameter-name>
-   <tonode-name>Plot</tonode-name>
-   <toserviceparameter-name>Position</toserviceparameter-name>
-   <coord-list>
-<coord>
-<x>1010</x>
-     <y>150</y>    </coord>
-    <coord>
-<x>1011</x>
-     <y>720</y>    </coord>   </coord-list>  </link> </link-list>
- <data-list>
-<data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>InitCL\studyId</fromserviceparameter-name>
-   <tonode-name>InitCL</tonode-name>
-   <toserviceparameter-name>studyId</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>InitCL\dataName</fromserviceparameter-name>
-   <tonode-name>InitCL</tonode-name>
-   <toserviceparameter-name>dataName</toserviceparameter-name>
-   <data-value>
-<value-type>18</value-type>
-    <value>BoxData</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>InitCL\source</fromserviceparameter-name>
-   <tonode-name>InitCL</tonode-name>
-   <toserviceparameter-name>source</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox\x1</fromserviceparameter-name>
-   <tonode-name>MakeBox</tonode-name>
-   <toserviceparameter-name>x1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox\y1</fromserviceparameter-name>
-   <tonode-name>MakeBox</tonode-name>
-   <toserviceparameter-name>y1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox\z1</fromserviceparameter-name>
-   <tonode-name>MakeBox</tonode-name>
-   <toserviceparameter-name>z1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox\x2</fromserviceparameter-name>
-   <tonode-name>MakeBox</tonode-name>
-   <toserviceparameter-name>x2</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>100</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox\y2</fromserviceparameter-name>
-   <tonode-name>MakeBox</tonode-name>
-   <toserviceparameter-name>y2</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>500</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox\z2</fromserviceparameter-name>
-   <tonode-name>MakeBox</tonode-name>
-   <toserviceparameter-name>z2</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>50</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MeshGeomShapeSup\studyId</fromserviceparameter-name>
-   <tonode-name>MeshGeomShapeSup</tonode-name>
-   <toserviceparameter-name>studyId</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MeshGeomShapeSup\sizeControl</fromserviceparameter-name>
-   <tonode-name>MeshGeomShapeSup</tonode-name>
-   <toserviceparameter-name>sizeControl</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>999999</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MeshGeomShapeSup\curveControl</fromserviceparameter-name>
-   <tonode-name>MeshGeomShapeSup</tonode-name>
-   <toserviceparameter-name>curveControl</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0.5</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MeshGeomShapeSup\tolmesh</fromserviceparameter-name>
-   <tonode-name>MeshGeomShapeSup</tonode-name>
-   <toserviceparameter-name>tolmesh</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>1e-05</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MeshGeomShapeSup\tolskin</fromserviceparameter-name>
-   <tonode-name>MeshGeomShapeSup</tonode-name>
-   <toserviceparameter-name>tolskin</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>SolveSup\studyId</fromserviceparameter-name>
-   <tonode-name>SolveSup</tonode-name>
-   <toserviceparameter-name>studyId</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>ModifyCL\faceToModify</fromserviceparameter-name>
-   <tonode-name>ModifyCL</tonode-name>
-   <toserviceparameter-name>faceToModify</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>3</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>ModifyCL\newFaceCLtype</fromserviceparameter-name>
-   <tonode-name>ModifyCL</tonode-name>
-   <toserviceparameter-name>newFaceCLtype</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>ModifyCL\newFaceValue</fromserviceparameter-name>
-   <tonode-name>ModifyCL</tonode-name>
-   <toserviceparameter-name>newFaceValue</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBoolean\operation</fromserviceparameter-name>
-   <tonode-name>MakeBoolean</tonode-name>
-   <toserviceparameter-name>operation</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>2</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox_1\x1</fromserviceparameter-name>
-   <tonode-name>MakeBox_1</tonode-name>
-   <toserviceparameter-name>x1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox_1\y1</fromserviceparameter-name>
-   <tonode-name>MakeBox_1</tonode-name>
-   <toserviceparameter-name>y1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox_1\z1</fromserviceparameter-name>
-   <tonode-name>MakeBox_1</tonode-name>
-   <toserviceparameter-name>z1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox_1\x2</fromserviceparameter-name>
-   <tonode-name>MakeBox_1</tonode-name>
-   <toserviceparameter-name>x2</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>40</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox_1\y2</fromserviceparameter-name>
-   <tonode-name>MakeBox_1</tonode-name>
-   <toserviceparameter-name>y2</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>40</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeBox_1\z2</fromserviceparameter-name>
-   <tonode-name>MakeBox_1</tonode-name>
-   <toserviceparameter-name>z2</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>70</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeTranslation\x1</fromserviceparameter-name>
-   <tonode-name>MakeTranslation</tonode-name>
-   <toserviceparameter-name>x1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>30</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>MakeTranslation\z1</fromserviceparameter-name>
-   <tonode-name>MakeTranslation</tonode-name>
-   <toserviceparameter-name>z1</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>-10</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>FindNode\x</fromserviceparameter-name>
-   <tonode-name>FindNode</tonode-name>
-   <toserviceparameter-name>x</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>50</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>FindNode\z</fromserviceparameter-name>
-   <tonode-name>FindNode</tonode-name>
-   <toserviceparameter-name>z</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>25</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>ModifyCL_1\faceToModify</fromserviceparameter-name>
-   <tonode-name>ModifyCL_1</tonode-name>
-   <toserviceparameter-name>faceToModify</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>5</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>ModifyCL_1\newFaceCLtype</fromserviceparameter-name>
-   <tonode-name>ModifyCL_1</tonode-name>
-   <toserviceparameter-name>newFaceCLtype</toserviceparameter-name>
-   <data-value>
-<value-type>3</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>ModifyCL_1\newFaceValue</fromserviceparameter-name>
-   <tonode-name>ModifyCL_1</tonode-name>
-   <toserviceparameter-name>newFaceValue</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>Plot\Filename</fromserviceparameter-name>
-   <tonode-name>Plot</tonode-name>
-   <toserviceparameter-name>Filename</toserviceparameter-name>
-   <data-value>
-<value-type>18</value-type>
-    <value>Result.plt</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>Add\x</fromserviceparameter-name>
-   <tonode-name>Add</tonode-name>
-   <toserviceparameter-name>x</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>aNewDataFlow</fromnode-name>
-   <fromserviceparameter-name>Add\y</fromserviceparameter-name>
-   <tonode-name>Add</tonode-name>
-   <toserviceparameter-name>y</toserviceparameter-name>
-   <data-value>
-<value-type>7</value-type>
-    <value>10</value>   </data-value>
-   <coord-list/>  </data> </data-list></dataflow>
index 1c57f136146899b1507e8915cc304d1d679beedb..67f8e2af2fa7bba5916491d3c1ed32f9dfe02cd4 100644 (file)
@@ -20,6 +20,6 @@ myPy.Run( 3 )
 
 myPy.DoneW()
 
-myPy.State()
+print myPy.State()
 
 myPy.PrintPorts()
index 7e8c0367f3f5a9d29768679b96323ef16334492d..03a70178525769c696c2e1803369f729a5625fe9 100644 (file)
@@ -16,7 +16,7 @@
                <component-username>Supervisor</component-username>
                <component-type>SUPERV</component-type>
                <component-author>ARS</component-author>
-               <component-version> 1.0</component-version>
+               <component-version>2.1.0</component-version>
                <component-comment>Supervision control GUI</component-comment>
                <component-multistudy>1</component-multistudy>
                <component-icone>ModuleSupervision.png</component-icone>
index c26850984744d7d86d9fca07d9d4f78d9a8c7906..e65d8b9aafdeffe3ca114a52bec65ecd49be25f2 100755 (executable)
@@ -23,9 +23,9 @@
                                <popup-item item-id="304" pos-id="9" label-id="Modify Dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
                        </menu-item>
 
-                       <menu-item label-id="Supervision" item-id="300" pos-id="3">
+                       <menu-item label-id="Supervisor" item-id="300" pos-id="3">
                                <popup-item item-id="305" pos-id="1" label-id="Reload"         icon-id="reload.png" tooltip-id="Reload Dataflow" accel-id="" toggle-id="" execute-action=""/>
-                               <popup-item item-id="309" pos-id="2" label-id="Components"     icon-id="components.png"     tooltip-id="Components"        accel-id="" toggle-id="" execute-action=""/>
+                               <popup-item item-id="309" pos-id="2" label-id="Add Node to Dataflow"     icon-id="components.png"     tooltip-id="Add Node to Dataflow"        accel-id="" toggle-id="" execute-action=""/>
                                <separator pos-id="3"/>
                                 <popup-item item-id="306" pos-id="4" label-id="Run"            icon-id="run.png"    tooltip-id="Run Dataflow"    accel-id="" toggle-id="" execute-action=""/>
                                <popup-item item-id="310" pos-id="5" label-id="Step by Step"   icon-id="steps.png"  tooltip-id="Step by Step execution" accel-id="" toggle-id="" execute-action=""/>
                </menubar>
 
                <toolbar label-id="Supervisor">
-                       <toolbutton-item item-id="301" label-id="Import"         icon-id="import.gif"         tooltip-id="Import Dataflow"   accel-id="" toggle-id="" execute-action=""/>
-                       <toolbutton-item item-id="302" label-id="Export"         icon-id="export.gif"         tooltip-id="Export Dataflow"   accel-id="" toggle-id="" execute-action=""/>
-                       <toolbutton-item item-id="303" label-id="New"            icon-id="edit.png"           tooltip-id="New Dataflow"      accel-id="" toggle-id="" execute-action=""/>
-                       <toolbutton-item item-id="304" label-id="Modify"         icon-id="modify.png"         tooltip-id="Modify Dataflow"   accel-id="" toggle-id="" execute-action=""/>
-                       <toolbutton-item item-id="305" label-id="Reload"         icon-id="reload.png"         tooltip-id="Reload Dataflow"   accel-id="" toggle-id="" execute-action=""/>
-                       <toolbutton-item item-id="309" label-id="Components"     icon-id="components.png"     tooltip-id="Components"        accel-id="" toggle-id="" execute-action=""/>
+                       <toolbutton-item item-id="301" label-id="Import"                   icon-id="import.gif"         tooltip-id="Import Dataflow"   accel-id="" toggle-id="" execute-action=""/>
+                       <toolbutton-item item-id="302" label-id="Export"                   icon-id="export.gif"         tooltip-id="Export Dataflow"   accel-id="" toggle-id="" execute-action=""/>
+                       <toolbutton-item item-id="303" label-id="New"                      icon-id="edit.png"           tooltip-id="New Dataflow"      accel-id="" toggle-id="" execute-action=""/>
+                       <toolbutton-item item-id="304" label-id="Modify"                   icon-id="modify.png"         tooltip-id="Modify Dataflow"   accel-id="" toggle-id="" execute-action=""/>
+                       <toolbutton-item item-id="305" label-id="Reload"                   icon-id="reload.png"         tooltip-id="Reload Dataflow"   accel-id="" toggle-id="" execute-action=""/>
+                       <toolbutton-item item-id="309" label-id="Add Node to Dataflow"     icon-id="components.png"     tooltip-id="Add Node to Dataflow"        accel-id="" toggle-id="" execute-action=""/>
                </toolbar>
 
                <toolbar label-id="Execution">
index 71ffd0057c0ccc2a0ca0ea0ada79ef2a4d819337..46c44076bf2dad79edb4decd3d0d3faf3e94669b 100644 (file)
@@ -352,9 +352,6 @@ bool GraphBase::ComputingNode::HasInput(const char * ToServiceParameterName ) {
   bool RetVal = false ;
   const GraphBase::InPort * theInPort = GetInPort( ToServiceParameterName ) ;
   if ( theInPort ) {
-//    cout << "GraphBase::ComputingNode::HasInput theInPort " << theInPort << " " << theInPort->PortName() << " of "
-//         << theInPort->NodeName() << " IsDataConnected " << theInPort->IsDataConnected() << " OutPort "
-//         << theInPort->GetOutPort() << endl ;
     RetVal = theInPort->IsDataConnected() ;
   }
   else {
@@ -1146,7 +1143,7 @@ bool GraphBase::ComputingNode::SavePY( ostream &f , const char * aGraphName ,
   if ( IsDataFlowNode() || ( IsDataStreamNode() && HasDataStream() == 0 ) ) {
     f << "    " << Name() << " = Graph( '" << Name() << "' )" << endl ;
      if ( GraphMacroLevel() ) {
-      f << "    " << Name() << ".SetCoupledName( '"
+      f << "    " << Name() << ".SetCoupled( '"
         << ((GraphBase::GOTONode * ) this)->CoupledNodeName() << "' )" << endl ;
     }
  }
@@ -1238,7 +1235,7 @@ bool GraphBase::ComputingNode::SavePY( ostream &f , const char * aGraphName ,
       else {
         f << "    " << Name() << " = " << aGraphName << ".GraphMNode( ? )" << endl ;
       }
-      f << "    " << Name() << ".SetCoupledName( '" << aCoupledNode->Name() << "' )" << endl ;
+      f << "    " << Name() << ".SetCoupled( '" << aCoupledNode->Name() << "' )" << endl ;
     }
     else {
 //      char * EndName = NULL ;
index 2ffb9ba63a261d1463297f33a927831f40f1959a..fa2e10f1bbffdb44dc41d09b54954bc9e3739281 100644 (file)
@@ -119,8 +119,6 @@ int GraphBase::DataNode::CheckDataServerNodes() const {
     else {
       cdebug << "InPort " << anOutPort->PortName() << " " << anOutPort->PortType() << " "
              << anOutPort->PortStatus() << " of DataFlow " << Name()  << " has Data : "
-//           << _DataFlowDataPorts->GetNodeOutPort(i)->Value() << " kind "
-//           << _DataFlowDataPorts->GetNodeOutPort(i)->Kind()
              << endl ;
     }
   }
index 3f444507cd2808895bb45bdef1951ba0743e0045..d13d2d7f5a86989602bfdd87a7872e5e66caa29d 100644 (file)
@@ -167,7 +167,7 @@ bool GraphBase::FactoryNode::Computer(const char *c) {
   if ( _Computer != FACTORYSERVER )
     delete [] _Computer ;
   _Computer = my_strdup(c);
-  cdebug_in << "GraphBase::FactoryNode::Computer('" << _Computer << "')" << endl;
+  cdebug << "GraphBase::FactoryNode::Computer('" << _Computer << "')" << endl;
   cdebug_out << "GraphBase::FactoryNode::Computer" << endl;
   return true ;
 }
index 0c6d41a80e393629c1db37379137bc4916cc5ca0..1d057a0af16d08ce242f8ae7a7ff5a39d0c5d50e 100644 (file)
@@ -599,7 +599,7 @@ bool GraphBase::Graph::ReNameNode( const char* OldNodeName ,
       RetVal = true ;
     }
     else {
-      cdebug << "Node not found" << endl ;
+      cdebug << "ERROR Node not found" << endl ;
     }
   }
   else {
@@ -640,7 +640,8 @@ bool GraphBase::Graph::RemoveNode( const char* aNodeName ) {
          }
           else {
             GraphBase::ComputingNode * FromNode = GetChangeGraphNode( anOutPort->NodeName() ) ;
-            if ( !FromNode->IsGOTONode() ) {
+           // asv : 04.11.04 : IsGOTO -> IsOneOfGOTO, I believe that it fixes the bug 7120.
+           if ( !FromNode->IsOneOfGOTONodes() ) {
               if ( anInPort->IsDataStream() ) {
                 RetVal = FromNode->RemoveStreamLinkedNode( aNode ) ;
              }
@@ -751,22 +752,22 @@ bool GraphBase::Graph::AddLink( const char* FromNodeName ,
   if ( fromNode ) {
     fromPort = fromNode->GetChangeOutPort( FromServiceParameterName ) ;
     if ( !fromPort ) {
-      cdebug << "AddLink fromPort " << FromServiceParameterName << " FromNode("
+      cdebug << "ERROR AddLink fromPort " << FromServiceParameterName << " FromNode("
            << FromNodeName << ") not found." << endl ;
     }
   }
   else {
-    cdebug << "AddLink FromNode " << FromNodeName << " not found." << endl ;
+    cdebug << "ERROR AddLink FromNode " << FromNodeName << " not found." << endl ;
   }
   if ( toNode ) {
     toPort = toNode->GetChangeInPort( ToServiceParameterName ) ;
     if ( !toPort ) {
-      cdebug << "AddLink toPort " << ToServiceParameterName << " ToNode("
+      cdebug << "ERROR AddLink toPort " << ToServiceParameterName << " ToNode("
              << ToNodeName << ") not found." << endl ;
     }
   }
   else {
-    cdebug << "AddLink toNode " << ToNodeName << " not found." << endl ;
+    cdebug << "ERROR AddLink toNode " << ToNodeName << " not found." << endl ;
   }
 
   RetVal = AddLink( fromNode , fromPort , toNode , toPort ) ;
@@ -795,20 +796,20 @@ bool GraphBase::Graph::AddLink( GraphBase::ComputingNode *fromNode ,
 //  bool RetVal ;
 
   if ( !fromNode ) {
-    cdebug << "AddLink fromNode not found." << endl ;
+    cdebug << "ERROR AddLink fromNode not found." << endl ;
     return false ;
   }
   if ( !fromPort ) {
-    cdebug << "AddLink fromPort not found." << endl ;
+    cdebug << "ERROR AddLink fromPort not found." << endl ;
     return false ;
   }
 
   if ( !toNode ) {
-    cdebug << "AddLink toNode not found." << endl ;
+    cdebug << "ERROR AddLink toNode not found." << endl ;
     return false ;
   }
   if ( !toPort ) {
-    cdebug << "AddLink toPort not found." << endl ;
+    cdebug << "ERROR AddLink toPort not found." << endl ;
     return false ;
   }
   if ( ( fromPort->IsDataStream() && !toPort->IsDataStream() ) ||
@@ -1156,7 +1157,7 @@ bool GraphBase::Graph::AddInputData( const char* ToNodeName ,
     }
   }
   else {
-    cdebug << "Node and/or Port not found : " << aNodeName << " " << aPortName << endl ;
+    cdebug << "ERROR Node and/or Port not found : " << aNodeName << " " << aPortName << endl ;
   }
   delete aNodeName ;
   delete aPortName ;
@@ -1215,15 +1216,15 @@ bool GraphBase::Graph::ChangeInputData( const char * ToNodeName ,
         toPort->State( SUPERV::ReadyState ) ;
       }
       else {
-        cdebug << "ChangeInputData fromPort not found" << endl ;
+        cdebug << "ERROR ChangeInputData fromPort not found" << endl ;
       }
     }
     else {
-      cdebug << "ChangeInputData toPort not found" << endl ;
+      cdebug << "ERROR ChangeInputData toPort not found" << endl ;
     }
   }
   else {
-    cdebug << "ChangeInputData Node not found : " << ToNodeName << endl ;
+    cdebug << "ERROR ChangeInputData Node not found : " << ToNodeName << endl ;
   }
 
   cdebug_out << "GraphBase::Graph::ChangeInputData" << endl;
@@ -1280,7 +1281,7 @@ bool GraphBase::Graph::AddInputData( const char* ToNodeName ,
     }
   }
   else {
-    cdebug << "Node not found " << ToNodeName << " ERROR. Known nodes :" << endl ;
+    cdebug << "ERROR Node not found " << ToNodeName << " ERROR. Known nodes :" << endl ;
     map< string , int >::iterator aMapOfGraphNodesIterator ;
     int i = 0 ;
     for ( aMapOfGraphNodesIterator = _MapOfGraphNodes.begin() ;
@@ -1319,7 +1320,7 @@ bool GraphBase::Graph::AddOutputData( const char* FromNodeName ,
     cdebug << endl ;
   }
   else {
-    cdebug << "Node not found" << endl ;
+    cdebug << "ERROR Node not found" << endl ;
     RetVal = false ;
   }
   cdebug_out << "GraphBase::Graph::AddOutputData " << RetVal << endl;
@@ -2008,10 +2009,10 @@ bool GraphBase::Graph::Sort( int & SubStreamGraphsNumber ) {
         (_SortedNodes[ i ])[ j ]->SubGraph( 0 ) ;
         if ( (_SortedNodes[ i ])[ j ]->HasDataStream() ) {
           (_SortedNodes[ i ])[ j ]->SubStreamGraph( 0 ) ;
-       }
+        }
         else {
           (_SortedNodes[ i ])[ j ]->SubStreamGraph( -1 ) ;
-       }
+        }
       }
     }
 
@@ -2020,50 +2021,58 @@ bool GraphBase::Graph::Sort( int & SubStreamGraphsNumber ) {
     bool Graphs = true ;
     while ( Graphs ) {
       for ( i = 0 ; i <= _LevelsNumber ; i++ ) {
+        cdebug << endl << "LevelsNumber " << _LevelsNumber << " " << _NodesNumber[ i ]
+               << " Nodes :" << endl ;
         for ( j = 0 ; j <= _NodesNumber[ i ] ; j++ ) {
           GraphBase::ComputingNode * aNode = (_SortedNodes[ i ])[ j ] ;
-//       cdebug << "SubGraph " << aNode->SubGraph() << " " << aNode->Name()
-//                 << endl ;
+          cdebug << "    " << aNode->Name() << " SubGraph " << aNode->SubGraph() << endl ;
           int k ;
           for ( k = 0 ; k < aNode->LinkedNodesSize() ; k++ ) {
-           if ( aNode->LinkedNodes( k )->SubGraph() ) {
-              if ( aNode->LinkedNodes( k )->SubGraph() != aNode->SubGraph() &&
-                   aNode->LinkedNodes( k )->Level() == aNode->Level()+1 ) {
-               aNode->SubGraph( aNode->LinkedNodes( k )->SubGraph() ) ;
-//             cdebug << "   Linked " << aNode->LinkedNodes( k )->Name()
-//                       << " SubGraph(" << aNode->LinkedNodes( k )->SubGraph()
-//                       << ") ==>" << endl ;
-//                cdebug << "   SubGraph " << aNode->SubGraph() << " for "
-//                       << aNode->Name() << " ==> again" << endl ;
+         if ( aNode->LinkedNodes( k )->SubGraph() ) {
+              if ( aNode->LinkedNodes( k )->SubGraph() != aNode->SubGraph() ) {
+//                   && aNode->LinkedNodes( k )->Level() == aNode->Level()+1 ) {
+//           aNode->SubGraph( aNode->LinkedNodes( k )->SubGraph() ) ;
+                int OldSub = aNode->SubGraph() ;
+                int NewSub = aNode->LinkedNodes( k )->SubGraph() ;
+             cdebug << "        " << aNode->Name() << " changed SubGraph "
+                       << aNode->LinkedNodes( k )->SubGraph() << endl ;
                 int l ;
-                for ( l = 0 ; l < aNode->LinkedNodesSize() ; l++ ) {
-                  aNode->LinkedNodes( l )->SubGraph( aNode->SubGraph() ) ;
+                for ( l = 0 ; l <= _LevelsNumber ; l++ ) {
+                  int m ;
+                  for ( m = 0 ; m <= _NodesNumber[ l ] ; m++ ) {
+                    if ( (_SortedNodes[ l ])[ m ]->SubGraph() == OldSub ) {
+                      GraphBase::ComputingNode * aSubNode = (_SortedNodes[ l ])[ m ] ;
+                      aSubNode->SubGraph( NewSub ) ;
                }
+               }
+             }
                 Graphs = false ;
                 break ;
-             }
+           }
               else {
-//                cdebug << "   Linked " << aNode->LinkedNodes( k )->Name()
-//                       << " SubGraph(" << aNode->LinkedNodes( k )->SubGraph()
-//                       << ") distance > 1 ignored" << endl ;
-             }
+                cdebug << "        Linked " << aNode->LinkedNodes( k )->Name()
+                       << " same SubGraph " << aNode->LinkedNodes( k )->SubGraph() << endl ;
            }
+         }
             else {
-//              cdebug << "   Linked " << aNode->LinkedNodes( k )->Name()
-//                     << " GraphInit to " << aNode->SubGraph() << " from "
-//                     << aNode->Name() << endl ;
+              cdebug << "        LinkedNode " << aNode->LinkedNodes( k )->Name()
+                     << " initial SubGraph " << aNode->SubGraph() << endl ;
               aNode->LinkedNodes( k )->SubGraph( aNode->SubGraph() ) ;
-           }
          }
        }
-        if ( !Graphs )
+          if ( !Graphs ) {
+            break ;
+          }
+        }
+        if ( !Graphs ) {
           break ;
+        }
       }
       if ( Graphs ) {
-//        cdebug << endl << "SubGraphs result : " << endl ;
+        cdebug << endl << "SubGraphs result : " << endl ;
         break ;
       }
-//      cdebug << endl << "One more time" << endl ;
+      cdebug << endl << "One more time" << endl ;
       Graphs = true ;
     }
 // Make a sequential renumbering of SubGraphs :
@@ -2078,12 +2087,12 @@ bool GraphBase::Graph::Sort( int & SubStreamGraphsNumber ) {
           for ( j = 0 ; j <= _NodesNumber[ i ] ; j++ ) {
             if ( (_SortedNodes[ i ])[ j ]->SubGraph() == CurrGraphsNumber ) {
               (_SortedNodes[ i ])[ j ]->SubGraph( _SubGraphsNumber ) ;
-//              cdebug << "SubGraphsNumber " << _SubGraphsNumber << " " << " Level "
-//                     << i << " : " << (_SortedNodes[ i ])[ j ]->Name()
-//                     << endl ;
+              cdebug << "SubGraphsNumber " << _SubGraphsNumber << " " << " Level "
+                     << i << " : " << (_SortedNodes[ i ])[ j ]->Name()
+                     << endl ;
            }
           }
-       }
+        }
       }
     }
 
@@ -2304,15 +2313,15 @@ bool GraphBase::Graph::LinkLoopNodes(bool & NewLink ) {
       GraphBase::GOTONode * aGOTONode = (GraphBase::GOTONode * ) aNode ;
       GraphBase::OutPort *anOutGate = aGOTONode->GetChangeNodeOutGate() ;
       if ( anOutGate->IsNotConnected() ) {
-        if ( !AddLink( aGOTONode , anOutGate ,
-                       aGOTONode->CoupledNode() , aGOTONode->CoupledNode()->GetChangeNodeInGate() ) ) {
-//          cdebug << "GraphBase::Graph::CreateService AddLink ERROR " << aGOTONode->Name() << "( "
-//                 << anOutGate->PortName() << " ) --> " << aGOTONode->CoupledNode()->Name() << "( "
-//                 << aGOTONode->CoupledNode()->GetChangeNodeInGate()->PortName() << " )" << endl ;
-          RetVal = false ;
-       }
-        else {
-          NewLink = true ;
+       RetVal = aGOTONode->CoupledNode() != NULL;
+       if ( RetVal ) {
+         RetVal = AddLink( aGOTONode , anOutGate ,
+                       aGOTONode->CoupledNode() , aGOTONode->CoupledNode()->GetChangeNodeInGate() );
+       // cdebug << "GraphBase::Graph::CreateService AddLink ERROR " << aGOTONode->Name() << "( "
+       //        << anOutGate->PortName() << " ) --> " << aGOTONode->CoupledNode()->Name() << "( "
+       //        << aGOTONode->CoupledNode()->GetChangeNodeInGate()->PortName() << " )" << endl ;
+         if ( !RetVal )
+           NewLink = true;
        }
       }
     }
@@ -2456,7 +2465,7 @@ SUPERV::GraphState GraphBase::Graph::PortState(
       if ( anInPort )
         anOutPort = anInPort->GetOutPort() ;
       else {
-        cdebug << "GraphBase::Graph::PortState OutPort/InPort not found --> "
+        cdebug << "ERROR GraphBase::Graph::PortState OutPort/InPort not found --> "
                << aRet << endl ;
       }
     }
@@ -2466,7 +2475,7 @@ SUPERV::GraphState GraphBase::Graph::PortState(
     }
   }
   else {
-    cdebug << "GraphBase::Graph::PortState Node not found --> " << aRet
+    cdebug << "ERROR GraphBase::Graph::PortState Node not found --> " << aRet
            << endl ;
   }
   delete theNode ;
@@ -2492,9 +2501,9 @@ const CORBA::Any * GraphBase::Graph::PortInData( const char* ToNodeName ,
       anOutPort = anInPort->GetOutPort() ;
       if ( anOutPort ) {
         aRet = anOutPort->Value() ;
-//        cdebug << "OutPort value " << anOutPort->NodeName() << "("
-//               << anOutPort->PortName() << ") --> InPort " << anInPort->NodeName()
-//               << "(" << anInPort->PortName() << ")" << endl ;
+        cdebug << "OutPort value " << anOutPort->NodeName() << "("
+               << anOutPort->PortName() << ") --> InPort " << anInPort->NodeName()
+               << "(" << anInPort->PortName() << ") " << anInPort->PortStatus() << endl ;
       }
       else {
         cdebug << "GraphBase::Graph::PortInData " << ToNodeName << " "
@@ -2592,4 +2601,3 @@ bool GraphBase::Graph::StartComponent(const int aThread ,
   cdebug_out << aThread << " GraphBase::Graph::StartComponent" << endl;
   return RetVal ;
 }
-
index 8cfa68d934f80af8ee330effefddde6335a7fc78..795fb6b7da0b480a7b8551e39d1521cafa300d20 100644 (file)
@@ -84,7 +84,6 @@ bool GraphBase::Graph::LoadXml( CORBA::ORB_ptr _Orb ,
     cdebug << "Graph::LoadXml " << ListOfDataFlows.size() << " Graphs" << endl ;
   }
   else {
-    delete myXmlHandler ;
     cdebug << "Graph::LoadXml Graph status " << status << endl ;
     RetVal = false ;
   }
index f708c27ee1bee1f66248925a4c2baa720c469da3..ecc9e2a73cdf5f001a19a3d6fa4575c5b27e8412 100644 (file)
@@ -75,7 +75,10 @@ namespace GraphBase {
 // Even if an OutPort may be connected to several ports the PortStatus is unique
       const StatusOfPort PortStatus() const {
             return _Connected; } ;
-      void PortStatus(StatusOfPort c) { _Connected = c; } ;
+      void PortStatus( StatusOfPort PortSts ) {
+//           cdebug << "OutPort::PortStatus " << NodeName() << " " << PortName() << " "
+//                  << _Connected << " --> " << PortSts << endl ;
+           _Connected = PortSts ; } ;
       const bool IsNotConnected() const {
             return ( _Connected == NotConnected ) ; } ;
 //      const bool IsConnected() const {
index ea8212a17ff72a9a654081147bb787cc0295ca2d..336a9e342df4dce253db68be11a4d9f8edc79497 100644 (file)
@@ -217,6 +217,7 @@ namespace GraphEditor {
       bool IsExecuting() ;
       void Editing() ;
       bool IsEditing() ;
+      bool UnValid() ;
       void EditedAfterExecution(bool EditedAfterExecution ) ;
       bool EditedAfterExecution() ;
 
index e4ae58c39d0144685e0cfeff6c05da240abef29e..e09bb9f6ec2d8769b22f27650afa8c15d19950ad 100644 (file)
@@ -466,6 +466,12 @@ inline bool GraphEditor::DataFlow::EditedAfterExecution() {
   return _EditedAfterExecution ;
 }
 
+inline bool GraphEditor::DataFlow::UnValid() {
+  Editing() ;
+  EditedAfterExecution( true ) ;
+  return GraphEditor::OutNode::UnValid() ;
+}
+
 inline bool GraphEditor::DataFlow::IsReadOnly() {
   return _ReadOnly ;
 }
index 8d11d63a142e9ed72cc6374d1301b0a0be7ee86e..0b4f09df7b7e0ff481479679482c6f6bf1211c8e 100644 (file)
@@ -32,8 +32,28 @@ using namespace std;
 #include "DataFlowBase_EndOfLoopNode.hxx"
 #include "DataFlowBase_EndOfSwitchNode.hxx"
 
-map< string , GraphBase::Graph * > GraphEditor::OutNode::_MapOfGraphs;
-map< string , int > GraphEditor::OutNode::_MapOfGraphNames;
+//map< string , GraphBase::Graph * > GraphEditor::OutNode::_MapOfGraphs;
+map< string , int > _MapOfGraphNames;
+
+string GraphInstanceName( const char * aGraphName ) {
+  int GraphInstanceNumber = _MapOfGraphNames[ aGraphName ] ;
+  if ( GraphInstanceNumber ) {
+    _MapOfGraphNames[ aGraphName ] = GraphInstanceNumber + 1 ;
+  }
+  else {
+    GraphInstanceNumber = 0 ;
+    _MapOfGraphNames[ aGraphName ] = GraphInstanceNumber + 1 ;
+  }
+  string theGraphInstanceName = string( aGraphName ) ;
+  if ( GraphInstanceNumber ) {
+    theGraphInstanceName += "_" ;
+    ostringstream astr ;
+    astr << GraphInstanceNumber ;
+    theGraphInstanceName += astr.str() ;
+  }
+  return theGraphInstanceName ;
+}
+
 
 // Implementation de la classe GraphEditor::Graph
 
@@ -67,13 +87,13 @@ GraphEditor::OutNode::OutNode( CORBA::ORB_ptr ORB ,
     _StreamGraph = NULL ;
     _Graph = new GraphBase::Graph( ORB , ptrNamingService , DataFlowName , aKindOfNode ,
                                    _prof_debug , _fdebug ) ; 
-    MapGraph( _Graph , _Graph->Name() ) ;
+//    MapGraph( _Graph , _Graph->Name() ) ;
   }
   else if ( aKindOfNode == SUPERV::DataStreamGraph ) {
     _StreamGraph = new GraphBase::StreamGraph( ORB , ptrNamingService , DataFlowName , aKindOfNode ,
                                                _prof_debug , _fdebug ) ;
     _Graph = _StreamGraph ;
-    MapGraph( _Graph , _Graph->Name() ) ;
+//    MapGraph( _Graph , _Graph->Name() ) ;
   }
   _Orb = CORBA::ORB::_duplicate( ORB ) ;
   _Imported = false ;
@@ -109,7 +129,7 @@ GraphEditor::OutNode::OutNode(
                                    DataFlowEditorRelease , DataFlowAuthor ,
                                    DataFlowComputer , DataFlowComment ,
                                    _prof_debug , _fdebug ) ;
-    MapGraph( _Graph , _Graph->Name() ) ;
+//    MapGraph( _Graph , _Graph->Name() ) ;
   }
   else if ( DataFlowkind == SUPERV::DataStreamGraph ) {
     _StreamGraph = new GraphBase::StreamGraph( ORB , ptrNamingService , DataFlowService , DataFlowComponentName ,
@@ -119,7 +139,7 @@ GraphEditor::OutNode::OutNode(
                                                DataFlowComputer , DataFlowComment ,
                                                _prof_debug , _fdebug ) ;
     _Graph = _StreamGraph ;
-    MapGraph( _Graph , _Graph->Name() ) ;
+//    MapGraph( _Graph , _Graph->Name() ) ;
   }
   _Orb = CORBA::ORB::_duplicate( ORB ) ;
   _Imported = false ;
@@ -137,14 +157,14 @@ GraphEditor::OutNode::~OutNode() {
 
 bool GraphEditor::OutNode::Name( const char * aName ) {
   bool RetVal = false ;
-  if ( !GraphName( aName ) ) {
-    char * aGraphName = Graph()->Name() ;
+//  if ( !GraphName( aName ) ) {
+//    char * aGraphName = Graph()->Name() ;
     RetVal = Graph()->Name( aName ) ;
-    if ( RetVal ) {
-      EraseGraph( aGraphName ) ;
-      MapGraph( Graph() , aName ) ;
-    }
-  }
+//    if ( RetVal ) {
+//      EraseGraph( aGraphName ) ;
+//      MapGraph( Graph() , aName ) ;
+//    }
+//  }
   return RetVal ;
 }
 
@@ -197,8 +217,9 @@ bool GraphEditor::OutNode::LoadXml( const char* myFileName , GraphBase::ListOfSG
     cdebug << "GraphEditor::OutNode::LoadXml() No file" << endl;
     _Imported = true ;
     char * aDataFlowName = Graph()->Name() ;
+//  Name( Graph()->Name() ) ;
     Name( GraphInstanceName( Graph()->Name() ).c_str() ) ;
-    MapGraph( Graph() , Graph()->Name() ) ;
+//    MapGraph( Graph() , Graph()->Name() ) ;
     cdebug << "GraphEditor::OutNode::LoadXml() " << aDataFlowName << " --> " << Graph()->Name() << endl;
     RetVal = true ;
   }
@@ -239,8 +260,9 @@ bool GraphEditor::OutNode::LoadInfo(const GraphBase::SNode &aDataFlowInfo ) {
 //  InterfaceName( aDataFlowInfo.theInterfaceName.c_str() ) ;
   if ( Graph()->IsDataStreamNode() || aDataFlowInfo.theKind == SUPERV::DataFlowGraph ) {
     char * aDataFlowName = Graph()->Name() ;
+//    Graph()->Name( aDataFlowInfo.theName.c_str() ) ;
     Graph()->Name( GraphInstanceName( aDataFlowInfo.theName.c_str() ).c_str() ) ;
-    MapGraph( Graph() , Graph()->Name() ) ;
+//    MapGraph( Graph() , Graph()->Name() ) ;
     cdebug << "GraphEditor::OutNode::LoadInfo " << aDataFlowName << " --> " << Graph()->Name()
            << " aDataFlowInfo.Kind " << aDataFlowInfo.theKind << " Kind() " << Graph()->Kind() << endl ;
     if ( Graph()->IsDataStreamNode() ) {
@@ -383,21 +405,36 @@ bool GraphEditor::OutNode::LoadNodes(map< string , int > & aMapOfNodes ,
       return false ;
     }
   }
+
+  // setting coupled pairs of nodes: Loop-EndLoop, Switch-EndSwitch, InLine-GOTO, MacroNode-Graph
   for ( i = 0 ; i < (int ) aListOfNodes.size() ; i++ ) {
     GraphBase::SNode aNode = aListOfNodes[ i ] ;
     cdebug << "GraphEditor::OutNode::LoadNodes " << aNode.theName.c_str() << " Coupled to "
            << aNode.theCoupledNode.c_str() << endl ;
-    anInNode = (GraphEditor::InNode * ) Graph()->GetChangeGraphNode( aNode.theName.c_str() )->GetInNode() ;
+    anInNode = (GraphEditor::InNode * ) Graph()->GetChangeGraphNode( aMapOfNodes[ aNode.theName.c_str() ] )->GetInNode() ;
+
     if ( anInNode->IsOneOfGOTONodes() && strlen( aNode.theCoupledNode.c_str() ) ) {
-      GraphBase::GOTONode * aCoupledNode ;
-      aCoupledNode = (GraphBase::GOTONode * ) Graph()->GetGraphNode( aNode.theName.c_str() ) ;
-      GraphBase::GOTONode * aCoupledCoupledNode ;
-      aCoupledCoupledNode = (GraphBase::GOTONode * ) Graph()->GetChangeGraphNode( aNode.theCoupledNode.c_str() ) ;
-      if ( aCoupledCoupledNode != NULL ) {
-        aCoupledNode->CoupledNode( aCoupledCoupledNode ) ;
+      GraphBase::GOTONode * aGOTONode;
+      aGOTONode = (GraphBase::GOTONode * ) anInNode->ComputingNode() ;
+
+      // asv : 25.10.04 : if aNode is a MacroNode, then its coupled node (another Graph) is NOT in aMapOfNodes 
+      //                  and we must couple MacroNode only with name to its subgraph
+      if ( aGOTONode->IsMacroNode() ) {
+        cdebug << "GraphEditor::OutNode::LoadNodes MacroNode " << aNode.theName.c_str()
+              << " is Coupled ONLY WITH NAME to its subgraph " << aNode.theCoupledNode.c_str() << endl;
+        aGOTONode->CoupledNodeName( aNode.theCoupledNode.c_str() ) ;
       }
-      else {
-        aCoupledNode->CoupledNodeName( aNode.theCoupledNode.c_str() ) ;
+      else { // coupling Loop-EndLoop, Switch-EndSwitch, InLine-GOTO
+       // asv : fix for 6822 : using map because if aNode's name is the same as some existing node's name
+       // aMap will give the correct index any way (aMap has already a different name for aNode, SNode still has old name)
+       int aCoupledNodeIndex = aMapOfNodes[ aNode.theCoupledNode.c_str() ] ;
+       cdebug << "GraphEditor::OutNode::LoadNodes " << aNode.theCoupledNode.c_str()
+              << " index " << aCoupledNodeIndex << endl ;
+        GraphBase::GOTONode * aCoupledNode ;
+        aCoupledNode = (GraphBase::GOTONode * ) Graph()->GetChangeGraphNode( aCoupledNodeIndex ) ;
+        cdebug << "GraphEditor::OutNode::LoadNodes " << aNode.theName.c_str()
+               << " is now Coupled to " << aNode.theCoupledNode.c_str() << endl ;
+        aGOTONode->CoupledNode( aCoupledNode ) ;
       }
     }
   }
@@ -537,9 +574,11 @@ GraphBase::ListOfSGraphs * GraphEditor::OutNode::GetDataFlows( GraphBase::ListOf
   }
   int i ;
   for ( i = 0 ; i < (int ) (*aListOfDataFlows)[ index ].Nodes.size() ; i++ ) {
-    if ( Graph()->GetGraphNode( (*aListOfDataFlows)[ index ].Nodes[i].theName.c_str() )->IsMacroNode() ) {
-      string aCoupledNode = (*aListOfDataFlows)[ index ].Nodes[i].theCoupledNode ;
-      GraphBase::Graph * aGraph = MapGraph( aCoupledNode.c_str() ) ;
+    const GraphBase::ComputingNode * aNode = Graph()->GetGraphNode( (*aListOfDataFlows)[ index ].Nodes[i].theName.c_str() ) ;
+    if ( aNode->IsMacroNode() ) {
+//      string aCoupledNodeName = (*aListOfDataFlows)[ index ].Nodes[i].theCoupledNode ;
+      GraphBase::Graph * aGraph = (GraphBase::Graph * ) ((GraphBase::GOTONode * ) aNode )->CoupledNode() ;
+//      GraphBase::Graph * aGraph = MapGraph( aCoupledNodeName.c_str() ) ;
       aGraph->GraphEditor()->GraphEditor::OutNode::GetDataFlows( aListOfDataFlows ) ;
     }
   }
@@ -1686,6 +1725,7 @@ ostream & operator<< (ostream &fOut,const SUPERV::SDate &D)
   return fOut;
 }
 
+/*
 GraphBase::Graph * GraphEditor::OutNode::MapGraph( const char * aGraphName ) {
   GraphBase::Graph * aGraph = _MapOfGraphs[ aGraphName ] ;
   return aGraph ;
@@ -1706,29 +1746,6 @@ void GraphEditor::OutNode::EraseGraph( const char * aGraphName ) {
 bool GraphEditor::OutNode::GraphName( const char * aGraphName ) {
   return  _MapOfGraphNames[ aGraphName ] ;
 }
-
-string GraphEditor::OutNode::GraphInstanceName( const char * aGraphName ) {
-  int GraphInstanceNumber = _MapOfGraphNames[ aGraphName ] ;
-  if ( GraphInstanceNumber ) {
-    _MapOfGraphNames[ aGraphName ] = GraphInstanceNumber + 1 ;
-  }
-  else {
-    GraphInstanceNumber = 0 ;
-    _MapOfGraphNames[ aGraphName ] = GraphInstanceNumber + 1 ;
-  }
-  string theGraphInstanceName = string( aGraphName ) ;
-  if ( GraphInstanceNumber ) {
-    theGraphInstanceName += "_" ;
-    ostringstream astr ;
-    astr << GraphInstanceNumber ;
-    theGraphInstanceName += astr.str() ;
-  }
-  return theGraphInstanceName ;
-}
-
-
-
-
-
+*/
 
 
index ec96d7f400293fa1844424e7bc9726e3e0eb50f2..d5da3be4174a732b4b2b6abb643bf6e78f271422 100644 (file)
@@ -79,14 +79,14 @@ namespace GraphEditor {
       void DateModification() ;
 
       // asv 20.09.04 added from GraphExecutor::FiniteStateMachine class (removed from there)
-      static map< string , GraphBase::Graph * > _MapOfGraphs ;
-      static map< string , int >                _MapOfGraphNames ;
-
-      GraphBase::Graph * MapGraph( const char * aGraphName ) ;
-      bool MapGraph( GraphBase::Graph * aGraph , const char * aGraphName ) ;
-      void EraseGraph( const char * aGraphName ) ;
-      bool GraphName( const char * aGraphName ) ;
-      string GraphInstanceName( const char * aGraphName ) ;
+//      static map< string , GraphBase::Graph * > _MapOfGraphs ;
+//      static map< string , int >                _MapOfGraphNames ;
+    
+//      GraphBase::Graph * MapGraph( const char * aGraphName ) ;
+//      bool MapGraph( GraphBase::Graph * aGraph , const char * aGraphName ) ;
+//      void EraseGraph( const char * aGraphName ) ;
+//      bool GraphName( const char * aGraphName ) ;
+//      string GraphInstanceName( const char * aGraphName ) ;
       // end added from FiniteStateMachine
 
 
index f7c89e2f1ff528c48ee4d6d7fdd1a1b501e4594a..a1da842bc21d9ca7bbbabe357dd0d7f6b71beb7a 100644 (file)
@@ -157,7 +157,7 @@ bool GraphExecutor::DataFlow::InputOfAny( const char * ToServiceParameterName ,
         anInNode->ThreadNo( 0 ) ;
         anInNode->CreateNewThread( true ) ;
         anInNode->SendEvent( GraphExecutor::ExecuteEvent ) ;
-        State( GraphExecutor::ExecutingState ) ;
+//        State( GraphExecutor::ExecutingState ) ;
       }
     }
   }
@@ -233,7 +233,7 @@ bool GraphExecutor::DataFlow::OutputOfAny( const char * aNodeName ,
 bool GraphExecutor::DataFlow::Kill() {
   cdebug_in << "GraphExecutor::DataFlow::Kill()" << endl;
   bool RetVal = GraphExecutor::OutNode::Kill() ;
-  cdebug_out << "GraphExecutor::DataFlow::Kill()" << endl;
+  cdebug_out << "GraphExecutor::DataFlow::Kill() " << RetVal << endl;
   return RetVal ;
 }
 
index af0e086683289008b871d64c86cbda7da7c35d7b..e044c34bc0b21591a4c36c1ce45ba8f77803c301 100644 (file)
@@ -636,29 +636,33 @@ string GraphExecutor::FiniteStateMachine::GraphInstanceName( const char * aGraph
 
 void GraphExecutor::FiniteStateMachine::JoinThread() {
   if ( pthread_mutex_lock( &_MutexJoinWait ) ) {
-    perror("Join pthread_mutex_lock ") ;
+    perror("FiniteStateMachine:JoinThread pthread_mutex_lock ") ;
     exit( 0 ) ;
   }
   while ( _JoinThread ) {
     while ( _ThreadList.size() == 0) {
-//      MESSAGE( pthread_self() << " Join pthread_cond_wait" );
+//      MESSAGE( pthread_self() << " FiniteStateMachine:Join pthread_cond_wait" );
       if ( pthread_cond_wait( &_JoinWait , &_MutexJoinWait ) ) {
-        perror("Join pthread_cond_wait ") ;
+        perror("FiniteStateMachine:JoinThread pthread_cond_wait ") ;
       }
     }
     pthread_t _Thread = _ThreadList.front() ;
-//    MESSAGE( pthread_self() << " Join pthread_cond_waited : " << _Thread )
-    _ThreadList.pop_front() ;
-//    MESSAGE( pthread_self() << " Join pthread_join : " << _Thread );
+//    MESSAGE( pthread_self() << " FiniteStateMachine:JoinThread pthread_cond_waited : " << _Thread )
+//    MESSAGE( pthread_self() << " FiniteStateMachine:JoinThread pthread_join : " << _Thread );
     int joinsts = pthread_join( _Thread , NULL ) ;
-//    MESSAGE( pthread_self() << " Join pthread_joined : " << _Thread );
     if ( joinsts ) {
-      perror("Join pthread_join ") ;
-//      exit( 0 ) ;
+      perror("FiniteStateMachine:JoinThread pthread_join ") ;
+      MESSAGE( pthread_self() << " FiniteStateMachine:JoinThread pthread_join : " << _Thread
+               << " Error" );
+      exit( 0 ) ;
+    }
+    else {
+      MESSAGE( pthread_self() << " FiniteStateMachine:JoinThread pthread_joined : " << _Thread );
+      _ThreadList.pop_front() ;
     }
   }
   if ( pthread_mutex_unlock( &_MutexJoinWait ) ) {
-    perror("Join pthread_mutex_unlock ") ;
+    perror("FiniteStateMachine:JoinThread pthread_mutex_unlock ") ;
     exit( 0 ) ;
   }
 }
index 87f1960c1359ef1c43f0c78a07f85f92b5d54880..485e76d7ecfe2ca7f876ef95fcdc7a7d01add652 100644 (file)
@@ -459,13 +459,15 @@ void GraphExecutor::InNode::ExitThread() {
 bool GraphExecutor::InNode::Suspend() {
   cdebug_in << "GraphExecutor::InNode::Suspend " << Name() << " " << ThreadNo()
             << endl;
-  bool RetVal ;
+  bool RetVal = false ;
   if ( IsDone() ) {
-    ControlState( SUPERV::VoidState ) ;
+//If loop we need to suspend also    ControlState( SUPERV::VoidState ) ;
+    ControlState( SUPERV::ToSuspendState ) ;
+    RetVal = true ;
     if ( _OutNode->IsDone() ) {
       ControlState( SUPERV::VoidState ) ;
+      RetVal = false ;
     }
-    RetVal = false ;
   }
   else if ( IsWaiting() || IsReady() ) {
     ControlState( SUPERV::ToSuspendState ) ;
@@ -536,7 +538,8 @@ bool GraphExecutor::InNode::ContainerKill() {
 
 bool GraphExecutor::InNode::Kill() {
   cdebug_in << "GraphExecutor::InNode::Kill " << Name() << " " << ThreadNo() << " " 
-            << Automaton()->StateName( State() ) << endl;
+            << Automaton()->StateName( State() ) << " Threads " << _OutNode->Threads()
+            << " SuspendedThreads " << _OutNode->SuspendedThreads() << endl;
   bool RetVal ;
   if ( IsDone() ) {
     ControlState( SUPERV::ToKillState ) ; // if loop
@@ -599,14 +602,19 @@ bool GraphExecutor::InNode::Kill() {
       else if ( IsWaiting() ) {
         RetVal = true ;
       }
+      else if ( IsReady() ) {
+        RetVal = true ;
+      }
       else {
-        cdebug << "Kill and !IsDone and !IsRunning and !IsWaiting ?"
+        cdebug << "Kill and !IsDone and !IsRunning and !IsWaiting and !IsReady ?"
                << endl ;
         RetVal = false ;
       }
     }
   }
-  cdebug_out << "GraphExecutor::InNode::Kill" << endl ;
+  cdebug_out << "GraphExecutor::InNode::Kill" << Name() << " " << ThreadNo() << " " 
+             << Automaton()->StateName( State() ) << " Threads " << _OutNode->Threads()
+             << " SuspendedThreads " << _OutNode->SuspendedThreads()  << endl ;
   return RetVal ;
 }
 
@@ -1154,19 +1162,31 @@ void GraphExecutor::InNode::InitialState( GraphExecutor::OutNode * theOutNode )
     }
     if ( anInPort->IsGate() && anOutPort == NULL ) {
       Pc-- ;
+      cdebug << "InPort" << i << " " << anInPort->PortName() << " Not connected Pc " << Pc << endl ;
     }
     else if ( anOutPort ) {
       if ( anOutPort->IsDataConnected() || anOutPort->IsDataStream() ) {
         Pc-- ;
-      }
-      if ( anOutPort->IsDataConnected() || anOutPort->IsDataStream() ) {
         anOutPort->State( SUPERV::ReadyState ) ;
         anOutPort->Done( true ) ;
+        cdebug << "InPort" << i << " " << anInPort->PortName() << " " << anInPort->PortStatus()
+               << " " << theAutomaton->StateName( anOutPort->State() ) << " Pc " << Pc << endl ;
       }
       else if ( anOutPort->IsPortConnected() ) {
         anOutPort->State( SUPERV::WaitingState ) ;
         anOutPort->Done( false ) ;
+        cdebug << "InPort" << i << " " << anInPort->PortName() << " " << " " << anInPort->PortStatus()
+               << " " << theAutomaton->StateName( anOutPort->State() ) << " Pc " << Pc << endl ;
       }
+      else {
+        cdebug << "InPort" << i << " " << anInPort->PortName() << " " << anInPort->PortStatus()
+               << " OutPort " << anOutPort->NodeName() << " " << anOutPort->PortName() << " "
+               << theAutomaton->StateName( anOutPort->State() ) << " Pc " << Pc << endl ;
+      }
+    }
+    else {
+      cdebug << "InPort" << i << " " << anInPort->PortName() << " " << " " << anInPort->PortStatus()
+             << " no corresponding OutPort Pc " << Pc << endl ;
     }
     if ( anOutPort ) {
       if ( !anOutPort->IsDataStream() || anInPort->IsDataStream() ) {
index 9745f94a8c7c8753b7f5423fd5d011d0952d26b6..01007014b839f7c50bcab9c025221b2a81335013 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "DataFlowExecutor_FiniteStateMachine.hxx"
 
-#define MAXSTACKTHREADSIZE 8191
+#define MAXSTACKTHREADSIZE 127
 
 void * run_function(void *p);
 
@@ -464,6 +464,8 @@ namespace GraphExecutor {
       long PyCpuUsed( bool tot = false ) ;
       void SetPyCpuUsed() ;
       long PyCpu() ;
+
+      bool PyRunSimpleString( char* thePyString );
     } ;
 
 } ;
index 83d4c53f4d5745b9889cc82cb6093eff237fe24a..18b6ade4da530c69c54d7af8fa4ac4f1ab510146 100644 (file)
@@ -1521,7 +1521,8 @@ int GraphExecutor::InNode::DataReady_ExecuteAction() {
   }
   else {
     GraphExecutor::DataFlow * aMacroGraph = GraphMacroNode()->CoupledNode()->GraphEditor()->Executor() ;
-    cdebug << ThreadNo() << " DataReady_ExecuteAction " << aMacroGraph->Graph()->Name() << " ->DoneWait()"
+    cdebug << ThreadNo() << " DataReady_ExecuteAction " << aMacroGraph << " "
+           << aMacroGraph->Graph()->Name() << " ->DoneWait()"
            << " State " << aMacroGraph->State() << endl;
     aMacroGraph->DoneWait() ;
     cdebug << ThreadNo() << " DataReady_ExecuteAction " << Name() << " State " << aMacroGraph->State() << endl;
@@ -1577,7 +1578,7 @@ int GraphExecutor::InNode::SuspendedExecuting_ResumeAction() {
 }
 
 int GraphExecutor::InNode::Executing_KillAction() {
-  cdebug << ThreadNo() << " Executing_KillAction " << Name() << endl;
+  cdebug << ThreadNo() << " Executing_KillAction " << Name() << " Thread " << ThreadNo()<< endl;
   int RetVal = 0 ;
   if ( pthread_self() == ThreadNo() ) {
     cdebug << "Executing_KillAction would pthread_canceled itself" << endl ;
@@ -1590,10 +1591,10 @@ int GraphExecutor::InNode::Executing_KillAction() {
     perror("Executing_KillAction pthread_cancel error") ;
   }
   else {
-    cdebug << "Executing_KillAction : ThreadId " << ThreadNo()
+    cdebug << pthread_self() << " Executing_KillAction : ThreadId " << ThreadNo()
            << " pthread_canceled" << endl ;
     KillAction() ;
-    _OutNode->ExitThread() ;
+    _OutNode->ExitThread( ThreadNo() ) ;
     _OutNode->PushEvent( this , GraphExecutor::KilledExecutingEvent ,
                          GraphExecutor::KilledExecutingState ) ; 
   }
@@ -1601,16 +1602,16 @@ int GraphExecutor::InNode::Executing_KillAction() {
 }
 
 int GraphExecutor::InNode::Executing_StopAction() {
-  cdebug << ThreadNo() << " Executing_StopAction " << Name() << endl;
+  cdebug << ThreadNo() << " Executing_StopAction " << Name() << " Thread " << ThreadNo() << endl;
   int RetVal = 0 ;
   if ( pthread_cancel( ThreadNo() ) ) {
     perror("Executing_KillAction pthread_cancel error") ;
   }
   else {
-    cdebug << "Executing_KillAction : ThreadId " << ThreadNo()
+    cdebug << pthread_self() << " Executing_KillAction : ThreadId " << ThreadNo()
            << " pthread_canceled" << endl ;
     StopAction() ;
-    _OutNode->ExitThread() ;
+    _OutNode->ExitThread( ThreadNo() ) ;
     _OutNode->PushEvent( this , GraphExecutor::StoppedExecutingEvent ,
                          GraphExecutor::StoppedExecutingState ) ; 
   }
@@ -1738,11 +1739,22 @@ void GraphExecutor::InNode::SetWaitingStates(GraphExecutor::InNode * EndNode ) {
            !anOutPort->ChangeInPorts( j )->IsDataStream() &&
            !anOutPort->ChangeInPorts( j )->IsExternConnected() ) {
         cdebug << ThreadNo()
-               << " GraphExecutor::InNodeThreads::SetWaitingStates "
-               << Name() << "( " << anOutPort->PortName() << " " << anOutPort->PortStatus() << " ) --> InPort "
+               << " InNodeThreads::SetWaitingStates OutPort "
+               << Name() << "/" << anOutPort->ChangeInPorts( j )->NodeName() << "( "
+               << anOutPort->PortName() << " " << anOutPort->PortStatus() << " ) --> InPort "
+               << anOutPort->ChangeInPorts( j )->NodeName() << "( "
                << anOutPort->ChangeInPorts( j )->PortName() << " "
-               << anOutPort->ChangeInPorts( j )->PortStatus() << " from Node "
-               << anOutPort->ChangeInPorts( j )->NodeName() << endl;
+               << anOutPort->ChangeInPorts( j )->PortStatus() << " )" << endl;
+        if ( strcmp( anOutPort->ChangeInPorts( j )->GetOutPort()->NodeName() , Name() ) ) {
+// After EndLoopNode or GOTONode the Input Ports of LoopNode or LabelNode have their values from
+// EndLoopNode or GOTONode. But if there is several nested loops we should re-establish.
+          cdebug << ThreadNo()
+                 << " InNodeThreads::SetWaitingStates OutPort->ChangeInPorts( j )->OutPort()->NodeName "
+                 << anOutPort->ChangeInPorts( j )->GetOutPort()->NodeName() << " != "
+                 << Name() << " : Restored to " << anOutPort->NodeName() << "( "
+                 << anOutPort->PortName() << " )" << endl ;
+          anOutPort->ChangeInPorts( j )->ChangeOutPort( anOutPort ) ;
+        }
         GraphExecutor::InNode * aNode = (GraphExecutor::InNode * ) _OutNode->Graph()->GetChangeGraphNode( anOutPort->ChangeInPorts( j )->NodeName() )->GetInNode() ;
         if ( aNode != EndNode ) {
           aNode->SetWaitingStates( EndNode ) ;
index 090d9a8a0bb38ad8bd2769367618eea6198ae478..810a7c58309db9654020baee6c2a4e492263edb6 100644 (file)
@@ -30,7 +30,7 @@ using namespace std;
 
 #include "DataFlowExecutor_OutNode.hxx"
 
-// Implementation de la classe GraphEditor::GraphControl
+#include "DataFlowEditor_DataFlow.hxx"
 
 extern GraphExecutor::FiniteStateMachine * theAutomaton ;
 
@@ -67,7 +67,7 @@ GraphExecutor::OutNode::OutNode( CORBA::ORB_ptr ORB,
                                  const SUPERV::KindOfNode aKindOfNode ) {
 //               Graph( ORB , ptrNamingService , DataFlowName , DebugFileName ) {
   Set_prof_debug( ORB , DebugFileName ) ;
-  cdebug_in << "GraphEditor::OutNode::OutNode(" << DataFlowName << " , " << aKindOfNode << ")" << endl;
+  cdebug_in << "GraphExecutor::OutNode::OutNode(" << DataFlowName << " , " << aKindOfNode << ")" << endl;
   if ( aKindOfNode == SUPERV::DataFlowGraph ) {
     _StreamGraph = NULL ;
 //    _Graph = new GraphBase::Graph( ORB , ptrNamingService , DataFlowName , DebugFileName ) ;
@@ -80,7 +80,6 @@ GraphExecutor::OutNode::OutNode( CORBA::ORB_ptr ORB,
                                                _prof_debug , _fdebug ) ;
     _Graph = _StreamGraph ;
   }
-//_Graph->GraphEditor()->Executor( (GraphExecutor::DataFlow * ) this ) ;
   _Valid = false ;
   _Executable = false ;
   _Done = false ;
@@ -99,7 +98,7 @@ GraphExecutor::OutNode::OutNode( CORBA::ORB_ptr ORB,
     perror("pthread_cond_init( &_JoinWait , NULL )") ;
     exit( 0 ) ;
   }
-  cdebug_out << "GraphEditor::OutNode::OutNode" << endl;
+  cdebug_out << "GraphExecutor::OutNode::OutNode" << endl;
 }
 
 GraphExecutor::OutNode::OutNode( CORBA::ORB_ptr ORB, 
@@ -123,7 +122,7 @@ GraphExecutor::OutNode::OutNode( CORBA::ORB_ptr ORB,
 //                                        DataFlowComputer , DataFlowComment , DebugFileName ) {
   Set_prof_debug( ORB , DebugFileName ) ;
 
-  cdebug_in << "GraphEditor::OutNode::OutNode(" << DataFlowName << " , " << DataFlowkind << ")" << endl;
+  cdebug_in << "GraphExecutor::OutNode::OutNode(" << DataFlowName << " , " << DataFlowkind << ")" << endl;
   if ( DataFlowkind == SUPERV::DataFlowGraph ) {
     _StreamGraph = NULL ;
     _Graph = new GraphBase::Graph( ORB , ptrNamingService , DataFlowService , DataFlowComponentName ,
@@ -344,7 +343,6 @@ bool GraphExecutor::OutNode::LoadNodes(const GraphBase::ListOfSNodes &aListOfNod
       aCoupledCoupledNode = (GraphBase::GOTONode * ) Graph()->GetChangeGraphNode( aNode.theCoupledNode.c_str() ) ;
       if ( aCoupledCoupledNode != NULL ) {
         aCoupledNode->CoupledNode( aCoupledCoupledNode ) ;
-//aCoupledNode->GraphEditor()->Executor( (GraphExecutor::DataFlow * ) this ) ;
       }
       else {
         aCoupledNode->CoupledNodeName( aNode.theCoupledNode.c_str() ) ;
@@ -428,7 +426,6 @@ GraphExecutor::InNode *GraphExecutor::OutNode::AddNode(
                                   NodeComputer , NodeComment , false , NodeX , NodeY ,
                                   _prof_debug , _fdebug ) ;
   Graph()->AddNode( Nd->ComputingNode() ) ;
-//Nd->ComputingNode()->GraphEditor()->Executor( (GraphExecutor::DataFlow * ) this ) ;
   cdebug_out << "GraphExecutor::OutNode::AddNode" << endl;
   return Nd ;
 }
@@ -525,7 +522,7 @@ bool GraphExecutor::OutNode::Run( const bool AndSuspend ) {
        }
       }
     }
-
+    /* asv : 29.09.04 : commented out because it does not do anything useful 
     for ( i = 0 ; i < Graph()->GraphNodesSize() ; i++ ) {
       GraphExecutor::InNode * anInNode = (GraphExecutor::InNode *) Graph()->GraphNodes( i )->GetInNode() ;
       if ( RetVal && anInNode->IsMacroNode() ) {
@@ -542,7 +539,7 @@ bool GraphExecutor::OutNode::Run( const bool AndSuspend ) {
        }
       }
     }
-
+    */
     if ( Graph()->GraphMacroLevel() != 0 ) {
       cdebug << "GraphExecutor::OutNode::Run Execution starting GraphExecutor::Action_DataOk_RunService Node "
              << Graph()->Name() << " GraphMacroLevel " << Graph()->GraphMacroLevel() << endl ;
@@ -712,6 +709,8 @@ void GraphExecutor::OutNode::CheckAllDone() {
         Done( true ) ;
         _JustStarted = false ;
       }
+      cdebug << Graph()->Name() << " alivenodes " << alivenodes << " OutNodeState " << OutNodeState
+             << endl ;
       PushEvent( NULL , GraphExecutor::EndExecuteEvent ,
                  OutNodeState ) ;
 //      Py_Finalize() ;
@@ -729,12 +728,14 @@ void GraphExecutor::OutNode::CheckAllDone() {
     cdebug << "================================================================================" << endl ;
 
     // asv : fix for 6798 and other bugs: "sift" the event queue after execution
-    //cout << "Before siftEvents() event count = " << _EventNodes.size();
     siftEvents();
-    //cout << ".  After event count = " << _EventNodes.size() << endl;
+
+    // asv : 25.10.04 : calling Editing() to indicate stop of execution
+    Graph()->GraphEditor()->Editing();
   }
-  cdebug_out << "GraphExecutor::OutNode::CheckAllDone " << IsDone()
-             << " GraphAutomatonState " << theAutomaton->StateName( AutomatonState() )
+  cdebug_out << "GraphExecutor::OutNode::CheckAllDone " << IsDone() << " this " << this << " "
+             << Graph()->Name() << " GraphAutomatonState "
+             << theAutomaton->StateName( AutomatonState() )
              << " State " << State() << " Threads " << _Threads << " SuspendedThreads "
              << _SuspendedThreads << " EventQSize " << EventQSize() << endl ;
 }
@@ -800,19 +801,22 @@ void GraphExecutor::OutNode::NewThread() {
   }
 }
 
-void GraphExecutor::OutNode::ExitThread() {
+void GraphExecutor::OutNode::ExitThread( pthread_t ThreadNumber ) {
   if ( pthread_mutex_lock( &_MutexWait ) ) {
     perror("pthread_mutex_lock _ExitThread") ;
     exit( 0 ) ;
   }
+  if ( ThreadNumber == 0 ) {
+    ThreadNumber = pthread_self() ;
+  }
   _Threads -= 1 ;
-  theAutomaton->JoinThread( pthread_self() ) ;
+  cdebug << pthread_self() << " ExitThread( " << ThreadNumber << " ) " << _Threads << " running threads "
+         << _SuspendedThreads << " suspended threads"
+         << endl ;
+  theAutomaton->JoinThread( ThreadNumber ) ;
   if ( pthread_cond_signal( &_JoinWait ) ) {
     perror("ExitThread pthread_cond_signal ") ;
   }
-  cdebug << "ExitThread : " << _Threads << " running threads "
-         << _SuspendedThreads << " suspended threads"
-         << endl ;
   if ( pthread_mutex_unlock( &_MutexWait ) ) {
     perror("pthread_mutex_unlock _ExitThread") ;
     exit( 0 ) ;
@@ -1228,6 +1232,13 @@ bool GraphExecutor::OutNode::Event( char ** aNodeName ,
                                     SUPERV::GraphEvent & anEvent ,
                                     SUPERV::GraphState & aState ,
                                     bool WithWait ) {
+  // asv : fixing problem of loops with large number of iterations (>5000)
+  // experimentally was found that number of non-handled by GUI events = (number_of_nodes x 7)
+  // or 7 events for each node - so what we want to do here is remove "old" events for nodes
+  // "on the fly".  Once again it is done in Stop(), Kill(), Done() functions.
+  if ( _EventNodes.size() > (unsigned int)Graph()->GraphNodesSize()*7 )
+    siftEvents();
+
   int ThreadsNumber ;
   int SuspendedThreadsNumber ;
   if ( _EventNodes.size() > 0 ) {
@@ -1603,7 +1614,7 @@ bool GraphExecutor::OutNode::IsDone() {
 bool GraphExecutor::OutNode::IsSuspended() {
 //  cdebug_in << "GraphExecutor::OutNode::IsSuspended" << endl;
   bool aret = false ;
-  if ( _SuspendedThreads == _Threads ) {
+  if ( _SuspendedThreads == _Threads && _Threads != 0 ) {
     aret = true ;
   }
 //  cdebug_out << "GraphExecutor::OutNode::IsSuspended" << endl ;
@@ -1856,7 +1867,15 @@ bool GraphExecutor::OutNode::Kill() {
     MESSAGE( Graph()->Name() << " IS NOT KILLED" ) ;
     MESSAGE("================================================================================") ;
   }
-  cdebug_out << "GraphExecutor::OutNode::Kill " << RetVal << endl ;
+  cdebug_out << "GraphExecutor::OutNode::Kill " << RetVal
+             << " Threads " << _Threads << " SuspendedThreads " << _SuspendedThreads  << endl ;
+
+  // remove "extra" events from the event queue
+  siftEvents();
+
+  // asv : 25.10.04 : calling Editing() to indicate stop of execution
+  Graph()->GraphEditor()->Editing();
+
   return RetVal ;
 }
 
index c5b7c9a49864decba38dc579d6ec60cc88613dae..a882cf32bcb8228736553f89453b4b747f828e18 100644 (file)
@@ -156,7 +156,7 @@ namespace GraphExecutor {
       void PyThreadUnLock() ;
 
       void NewThread() ;
-      void ExitThread() ;
+      void ExitThread( pthread_t ThreadNumber = 0 ) ;
       void SuspendThread() ;
       void ResumeThread() ;
       long Threads() { return _Threads ; } ;
index 22ac4d0be1f10593360f6fe9bc285f7f146b1002..0d39581f47f86f582c4985afb5fa38b7add7986d 100644 (file)
@@ -15,6 +15,9 @@ using namespace std;
 #include <map>
 
 #include "DataFlowExecutor_InNode.hxx"
+#include "DataFlowExecutor_OutNode.hxx"
+
+#include "CASCatch_SignalsHandler.h" // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
 
 using namespace CORBA ;
 
@@ -128,8 +131,8 @@ PyObject * GraphExecutor::InNode::InitPyDynInvoke( char * PyFuncName ,
         aPyFunc += PyFuncName ;
         aPyFunc += " )\n" ;
         /*cdebug *///cout<< "InitPyDynInvoke PyRun_SimpleString " << endl << aPyFunc << endl ;
-        if ( PyRun_SimpleString( (char *) aPyFunc.c_str() ) ) {
-          cdebug << ThreadNo() << " " << Name() << " PyRun_SimpleString ERROR " << endl << aPyFunc << endl ;
+        if ( PyRunSimpleString( (char *) aPyFunc.c_str() ) ) {
+          cdebug << ThreadNo() << " " << Name() << " PyRunSimpleString ERROR " << endl << aPyFunc << endl ;
           RetVal = false ;
           Err = true ;
         }
@@ -138,7 +141,7 @@ PyObject * GraphExecutor::InNode::InitPyDynInvoke( char * PyFuncName ,
           thePyRunMethod = MyPyRunMethod ;
          
           Automaton()->PyFunction( PyFuncName , thePyRunMethod ) ;
-          cdebug << ThreadNo() << "PyRun_SimpleString( " << (*aPythonFunction)[ 0 ] << " ) " << endl ;
+          cdebug << ThreadNo() << "PyRunSimpleString( " << (*aPythonFunction)[ 0 ] << " ) " << endl ;
         }
       }
       if ( RetVal ) {
@@ -552,3 +555,31 @@ bool GraphExecutor::InNode::PyDynInvoke( PyObject * MyPyRunMethod ,
   return RetVal ;
 
 }
+
+// This method was created in order to wrap PyRun_SimpleString() with exception handling wrapper.
+// Python does not throw usual C++ style exceptions, so try-catch construct does not work for this
+// purpose.  Instead Python raises signals.  If these signals are not caught by the application
+// it will be caught by the OS and the application will be terminated : BUG PAL6869
+// Declaring CASCatch_SignalsHandler object redefines (!) standard C++ reserved words "try" and "catch".
+// Standard_Failure "exception" is a signal in fact, and it will be caught in the catch section.
+// Why do we finalize and re-initialize Python after catching the signal?  Because the Python stack
+// is corrupted after that.
+// Declaration of CASCatch_SignalsHandler forces us to add linkage with CASCADE libraries.. See Makefile.in.
+bool GraphExecutor::InNode::PyRunSimpleString( char* thePyString )
+{
+  CASCatch_SignalsHandler aSignalsHandler;
+  const bool ErrorValue = true;
+  bool aRet;
+  try {
+    aRet = PyRun_SimpleString( thePyString );
+  } catch( Standard_Failure ) {
+    MESSAGE( "ERROR: Exception caught running Python method." );
+    MESSAGE( "       Python was reinitialized.  Previous Python definitions are lost" );
+    Py_Finalize();
+    Py_Initialize();
+    Py_InitModule( "InitPyRunMethod" , MethodPyRunMethod );
+    _OutNode->PyInitialized( false );
+    aRet = ErrorValue;
+  }
+  return aRet;
+}
index 9438f6d15b5a8aa74bdeb25a75f5de117db1d362..10707c953561b62b7c75c442b4622248adb8f57f 100644 (file)
@@ -45,11 +45,11 @@ LIB_CLIENT_IDL = SALOME_ModuleCatalog.idl \
 BIN_SRC = 
 BIN_SERVER_IDL = 
 
-CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) \
+CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) \
        -I${KERNEL_ROOT_DIR}/include/salome
 CXXFLAGS+= -g -D__x86__ -D__linux__ -ftemplate-depth-42 -Wall \
        -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS+= -export-dynamic -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lSalomeSuperVisionEditor -lOpUtil -lSALOMELocalTrace \
+LDFLAGS+= -export-dynamic -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lSalomeSuperVisionEditor -lOpUtil -lSALOMELocalTrace -lCASCatch\
        -lc $(QT_MT_LIBS) $(OGL_LIBS) \
        -L${KERNEL_ROOT_DIR}/lib/salome
 #LIBS += -Xlinker -export-dynamic $(PYTHON_LIBS)
index 83498b57cead6a1e8b8c392a14f90d7e9edd5fbb..e4c6bf35945c240f6361288c63da5275e45b132e 100644 (file)
@@ -108,10 +108,10 @@ QAD_StudyFrame* SUPERVGUI::createGraph() {
   QAD_StudyFrame* aStudyFrame = study->newWindow3d(study->getNextStudyFrameName(),
                                                   VIEW_GRAPHSUPERV, false);
   if (aStudyFrame) {
-    connect(aStudyFrame
-           SIGNAL(sfStudyFrameClosing(QAD_StudyFrame*)), 
+    connect(study
+           SIGNAL(supervStudyFrameClosing(QAD_ViewFrame*)), 
            &Supervision, 
-           SLOT(onGraphClosed(QAD_StudyFrame*)));
+           SLOT(onGraphClosed(QAD_ViewFrame*)));
   }
   return aStudyFrame;
 }
@@ -199,14 +199,50 @@ bool SUPERVGUI::isContains(QAD_Study* theStudy, const QString theKey) {
 }
 
 
-void SUPERVGUI::onGraphClosed(QAD_StudyFrame* theStudyFrame) {
-  QAD_ViewFrame* viewFrame = theStudyFrame->getRightFrame()->getViewFrame();
-  if(SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(viewFrame)){
-    disconnect(theStudyFrame, 0 , this, 0);
+void SUPERVGUI::onGraphClosed(QAD_ViewFrame* theViewFrame) {
+  if(SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(theViewFrame)){
+    disconnect(study, 0 , this, 0);
     SUPERVGraph_View* view = supervFrame->getViewWidget();
     SUPERVGUI_Main* aGraph = dynamic_cast<SUPERVGUI_Main*>(view);
     if (aGraph) {
       unregisterGraph(aGraph);
+      SUPERV_Graph aDataFlow = aGraph->getDataflow();
+      if ( !SUPERV_isNull( aDataFlow ) ) {
+       if ( aDataFlow->IsExecuting() ) {
+         const int aMsgResult = QMessageBox::warning(QAD_Application::getDesktop(),
+                                                     tr("WARNING"), 
+                                                     tr("MSG_DF_RUNNING"), 
+                                                     tr("MSG_DF_EXECUTION"), 
+                                                     tr("MSG_DF_KILL"));
+         if ( aMsgResult == 1 ) {
+           // KILL EXECUTION
+           if ( aDataFlow->Kill() ) {
+             // Kill() sends KillEvent and KillState to SUPERVGUI_Thread
+             // while sets myIsActive flag to false when it receives such event/state
+             // after myIsActive is false it calls QThread::exit() to terminate.
+
+             // why while() { qApp->processEvents() } ?
+             // because: SUPERVGUI_Thread::run() receives events, and calls myMain->execute()
+             // method using SALOME_Event paradigm, ProcessVoidEvent() function - 
+             // it puts this event to the main application event loop, in which we are being now.
+             // So if we block main GUI application thread (by calling aGraph->getMyThread()->wait() here)
+             // then we will have a deadlock of 2 threads waiting for one another 
+             while (aGraph->getMyThread()->running()) 
+               qApp->processEvents();
+           }
+         }
+         else { // BACKGROUND EXECUTION
+           emit KillMainThread(true); // set SUPERVGUI_Thread::myIsActive to false
+           while ( aGraph->getMyThread()->running() )
+             qApp->processEvents();
+         }
+       }
+       else { // EXECUTION IS FINISHED, JUST DESTROY THE SUPERVGUI_Thread object and return.
+         emit KillMainThread(true);
+         while ( aGraph->getMyThread()->running() ) 
+           qApp->processEvents();
+       }
+      }
     }
   }
 }
@@ -222,8 +258,10 @@ void SUPERVGUI::setMain(QWidget* w) {
   QAD_ViewFrame* viewFrame = aStudyFrame->getRightFrame()->getViewFrame();
   if(SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(viewFrame)){
     SUPERVGraph_View* view = supervFrame->getViewWidget();
-    if (view)
+    if (view) {
       main = dynamic_cast<SUPERVGUI_Main*>(view);
+      connect(&Supervision, SIGNAL(KillMainThread(bool)), main->getMyThread(), SLOT(KillThread(bool)));
+    }
   }
   Trace("SUPERVGUI::setMain - main: "<<main);
 }
@@ -289,6 +327,7 @@ void SUPERVGUI::displayDataflow() {
        QMessageBox::warning(0, tr("ERROR"), tr("MSG_ACCESS_BAD_IOR"));
        return;
       }
+      /* ASV: 20.10.04: fix for 6896
       if (aDataFlow->IsStreamGraph()) {
        SUPERV_StreamGraph aDataFlowStream = aDataFlow->ToStreamGraph();
        if (SUPERV_isNull(aDataFlowStream)) {
@@ -297,6 +336,7 @@ void SUPERVGUI::displayDataflow() {
        }
        aDataFlow = aDataFlowStream;
       }
+      */
     }
     QAD_StudyFrame* aStudyFrame = createGraph();
     SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>
@@ -324,7 +364,6 @@ void SUPERVGUI::renameDataflow() {
       if (obj->FindAttribute(anAttr, "AttributeName")) {
        aName = SALOMEDS::AttributeName::_narrow(anAttr);
        QString nm = QString( aName->Value() );
-       bool ok = FALSE;
        nm = SALOMEGUI_NameDlg::getName( QAD_Application::getDesktop(), nm );
        if ( !nm.isEmpty() ) {
          QApplication::setOverrideCursor( Qt::waitCursor );
@@ -358,11 +397,22 @@ void SUPERVGUI::exportDataflow() {
 
 void SUPERVGUI::newDataflow() {
     Trace("SUPERVGUI::editDataflow");
+
+    //asv 20.10.04: removed 2 SUPERVGUI_Main constructors.  there is only ONE way 
+    //to create a Main object now: with a non-null DataFlow as a 3d parameter
+    //1. create a Graph object
+    SUPERV_Graph aNewDataFlow = engine->StreamGraph( MAIN_NEW );
+    if (SUPERV_isNull( aNewDataFlow )) {
+      QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CANT_CREATE_DF"));
+      return;
+    }
+    //2. create a ViewFrame object
     QAD_StudyFrame* aStudyFrame = createGraph();
     SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>
       (aStudyFrame->getRightFrame()->getViewFrame());
     if(aViewFrame){
-      main = new SUPERVGUI_Main(aViewFrame, desktop, false);
+      //3. bind Graph and ViewFrame -> create Main
+      main = new SUPERVGUI_Main(aViewFrame, desktop, aNewDataFlow );
       main->addNode();
       study->showFrame(aStudyFrame);
     }
index 977e71950a4604695d7cc88621c06eea5ec9faba..06c87a561bcb2680feb93d1acaff5bcf1c1ff318 100644 (file)
@@ -100,12 +100,15 @@ class SUPERVGUI: public SALOMEGUI {
     */
     void whatIsSelected(const Handle(SALOME_InteractiveObject)& theObj, bool& theIsOwner, bool& theIsDataflow);
 
+  signals:
+    void KillMainThread(bool theValue);
+
   private slots:
     void setMain(QWidget* w);
     void displayDataflow();
     void renameDataflow();
     void deleteObject();
-    void onGraphClosed(QAD_StudyFrame* );
+    void onGraphClosed(QAD_ViewFrame* );
 
   private:
     void loadEngine(SALOME_NamingService* namingService);
index 21991ae60dd263c14737acc85bf496d8c17adec6..400fa1e6a4167969c5ebcf643585974dc90eadc6 100644 (file)
@@ -185,8 +185,10 @@ void SUPERVGUI_CanvasGotoNode::linkToNode() {
   SUPERVGUI_SelectInlineDlg* aDlg = new SUPERVGUI_SelectInlineDlg(getMain());
   if (aDlg->exec()) {
     QString aNodeName = aDlg->getName();
-    getGotoNode()->SetCoupled(aNodeName.latin1());
-    getMain()->getCanvas()->sync();
+    if (!aNodeName.isEmpty()) { //implement additional check from GUI side for bug PAL7007
+      getGotoNode()->SetCoupled(aNodeName.latin1());
+      getMain()->getCanvas()->sync();
+    }
   }
   delete aDlg;
 }
index 4ed27d15d741bcbf2d62166426ce14cf7768a114..74b6b762b769fd65dfb1bf8a7d8466a76c5a820c 100644 (file)
@@ -522,6 +522,12 @@ void SUPERVGUI_CanvasPointPrs::moveBy(double dx, double dy)
   QCanvasEllipse::moveBy(dx, dy);
   if (myInEdge) myInEdge->setFromPoint((int)x(), (int)y());
   if (myOutEdge) myOutEdge->setToPoint((int)x(), (int)y());
+  //resize canvas view if mouse is outside
+  int w = (int)(x()+dx) + width() + GRAPH_MARGIN;
+  int h = (int)(y()+dy) + height() + GRAPH_MARGIN;
+  if (canvas()->width() > w) w = canvas()->width();
+  if (canvas()->height() > h) h = canvas()->height();
+  if (canvas()->width() < w || canvas()->height() < h) canvas()->resize(w, h);
   if (myIndex > 0 && isMoving()) {
     myLink->getEngine()->ChangeCoord(myIndex, (int)x(), (int)y());
   }
index 3277349c46d40f842fc3067de7a6d472cf1055df..273f161e23e90f68ea200e91d5eaa7545b930e42 100644 (file)
@@ -484,26 +484,31 @@ bool SUPERVGUI_CanvasNode::eventFilter( QObject* o, QEvent* e )
   return QObject::eventFilter(o, e);
 }
 
-SUPERV_Port SUPERVGUI_CanvasNode::createInPort() 
+QStringList SUPERVGUI_CanvasNode::getPortsNamesIN(SUPERV_INode theNode, bool theInputPorts)
 {
-  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg();
-  if (aDlg->exec()) {
-    if (aDlg->getName().isEmpty() || aDlg->getType().isEmpty()) {
-      QMessageBox::warning( QAD_Application::getDesktop(), tr( "ERROR" ), tr( "MSG_CANT_CREATE_PORT" ) );
-      return NULL;
-    }
-    SUPERV_INode aNode = getInlineNode();
-    if (SUPERV_isNull(aNode)) {
-      MESSAGE("SUPERVGUI_CanvasNode::createInPort: Node is wrong type");
-      return NULL;
-    }
-    SUPERV_Ports aPorts = aNode->Ports();
+  QStringList aPNList;
+  if (!SUPERV_isNull(theNode)) {
+    SUPERV_Ports aPorts = theNode->Ports();
     for (int i=0; i<aPorts->length(); i++) {
-      if (aPorts[i]->IsInput() && aDlg->getName() == QString(aPorts[i]->Name())){
-       QMessageBox::warning(0, tr("ERROR"), tr("MSG_PORT_EXIST"));
-       return NULL;
+      if (theInputPorts) {
+       if (aPorts[i]->IsInput()) aPNList.append(QString(aPorts[i]->Name()));
       }
+      else 
+       if (!aPorts[i]->IsInput()) aPNList.append(QString(aPorts[i]->Name()));
     }
+  }
+  return aPNList;
+}
+
+SUPERV_Port SUPERVGUI_CanvasNode::createInPort() 
+{
+  SUPERV_INode aNode = getInlineNode();
+  if (SUPERV_isNull(aNode)) {
+    MESSAGE("SUPERVGUI_CanvasNode::createInPort: Node is wrong type");
+    return NULL;
+  }
+  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg(getPortsNamesIN(aNode,true));
+  if (aDlg->exec()) {
     SUPERV_Port aPort = aNode->InPort(aDlg->getName().latin1(),
                                      aDlg->getType().latin1());    
     delete aDlg;
@@ -515,20 +520,14 @@ SUPERV_Port SUPERVGUI_CanvasNode::createInPort()
 
 SUPERV_Port SUPERVGUI_CanvasNode::createOutPort() 
 {
-  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg();
+  SUPERV_INode aNode = getInlineNode();
+  if (SUPERV_isNull(aNode)) {
+    MESSAGE("SUPERVGUI_CanvasNode::createOutPort: Node is wrong type");
+    return NULL;
+  }
+  
+  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg(getPortsNamesIN(aNode,false));
   if (aDlg->exec()) {
-    SUPERV_INode aNode = getInlineNode();
-    if (SUPERV_isNull(aNode)) {
-      MESSAGE("SUPERVGUI_CanvasNode::createOutPort: Node is wrong type");
-      return NULL;
-    }
-    SUPERV_Ports aPorts = aNode->Ports();
-    for (int i=0; i<aPorts->length(); i++) {
-      if (!aPorts[i]->IsInput() && aDlg->getName() == QString(aPorts[i]->Name())){
-       QMessageBox::warning(0, tr("ERROR"), tr("MSG_PORT_EXIST"));
-       return NULL;
-      }
-    }
     SUPERV_Port aPort = aNode->OutPort(aDlg->getName().latin1(),
                                       aDlg->getType().latin1());
     delete aDlg;
index 9cf391c4bbdf662b56165edeff2a96730b20014c..f33d6cee9300df4333b4123599d6297ceaf5b77d 100644 (file)
@@ -12,6 +12,7 @@
 using namespace std;
 #include "SUPERVGUI_Def.h"
 #include "SUPERVGUI_BrowseNodeDlg.h"
+#include <qstringlist.h>
 
 class SUPERVGUI_Main;
 class SUPERVGUI_CanvasNodePrs;
@@ -61,6 +62,7 @@ class SUPERVGUI_CanvasNode : public QObject {
 
     SUPERV_Port createInPort();
     SUPERV_Port createOutPort();
+    QStringList getPortsNamesIN(SUPERV_INode theNode, bool theInputPorts);
 
     virtual QPopupMenu* getPopupMenu(QWidget* theParent);
 
index 5e9ffd3e725389b6f57ec83c08be16dbff3e7866..dd0e9814c77cc45d3e45b26980a556ee707a1526 100644 (file)
@@ -77,6 +77,7 @@ SUPERVGUI_CanvasView::SUPERVGUI_CanvasView(SUPERVGUI_Canvas* theCanvas, SUPERVGU
 {
   setName("CanvasView");
 
+  myIsPanBtnClicked = false;
   myIsPanActivated = false;
   myIsZoomActivated = false;
   myIsLinkCreating = false;
@@ -153,7 +154,7 @@ void SUPERVGUI_CanvasView::contentsMousePressEvent(QMouseEvent* theEvent)
 
   if (((theEvent->button() == Qt::MidButton) &&
        (theEvent->state() == Qt::ControlButton)) || 
-      myIsPanActivated) {
+      myIsPanBtnClicked) {
     myIsPanActivated = true;
     myCursor = cursor();
     setCursor(pan2Cursor);
@@ -381,6 +382,7 @@ void SUPERVGUI_CanvasView::contentsMouseReleaseEvent(QMouseEvent* theEvent)
 
   if (myIsPanActivated) {
     myIsPanActivated = false;
+    myIsPanBtnClicked = false;
     setCursor(myCursor);
   }
 
@@ -461,7 +463,7 @@ void SUPERVGUI_CanvasView::changeBackground()
 
 void SUPERVGUI_CanvasView::ActivatePanning()
 {
-  myIsPanActivated = true;
+  myIsPanBtnClicked = true;
 }
 
 void SUPERVGUI_CanvasView::ResetView()
index 7e1964080db2ed25d81275df0d7cd3f0aa09936c..564e28aa9141706bdcfb4b064a42a5297ad9275b 100644 (file)
@@ -70,6 +70,7 @@ class SUPERVGUI_CanvasView: public QCanvasView {
     int             myDelPntItem;
     int             myOrtoItem;
 
+    bool         myIsPanBtnClicked;
     bool         myIsPanActivated;
     bool         myIsZoomActivated;
     bool         myIsLinkCreating;
index a97a43e9ddb5b416a56c75deb8aee828a41f940a..0d40243d0fe07d4fe3052871a00543fe85236bd3 100644 (file)
@@ -397,6 +397,7 @@ SUPERVGUI_SelectInlineDlg::SUPERVGUI_SelectInlineDlg(SUPERVGUI_Main* theMain)
   aMainLayout->addWidget(aLabel, 0, 0);
 
   myCombo = new QComboBox(this);
+  myCombo->clear(); //for the additional check from GUI side for bug PAL7007
   SUPERV_Nodes aNodesList = theMain->getDataflow()->Nodes();  
   int i;
   for (i = 0; i < aNodesList->INodes.length(); i++) {
index f4009e7f1a180ea97140135bb54ac1f5120fc3f9..59344f1d5f8cd103a3c0b06ac24a108d3b4b8535 100644 (file)
@@ -51,6 +51,9 @@ using namespace std;
 #include "SUPERVGUI_CanvasControlNode.h"
 #include <qvalidator.h>
 
+/*
+asv 20.10.04: removed 2 SUPERVGUI_Main constructors.  there is only ONE way 
+to create a Main object now: with a non-null DataFlow as a 3d parameter
 SUPERVGUI_Main::SUPERVGUI_Main(SUPERVGraph_ViewFrame* theParent, QAD_Desktop* theDesktop, bool fromIOR)
      : SUPERVGraph_View(theParent), 
        myLogged( false ),
@@ -125,8 +128,9 @@ SUPERVGUI_Main::SUPERVGUI_Main(SUPERVGraph_ViewFrame* theParent, QAD_Desktop* th
     init(theDesktop);
   }
 }
+*/
 
-SUPERVGUI_Main::SUPERVGUI_Main(SUPERVGraph_ViewFrame* theParent, QAD_Desktop* theDesktop, SUPERV_Graph cp)
+SUPERVGUI_Main::SUPERVGUI_Main(SUPERVGraph_ViewFrame* theParent, QAD_Desktop* theDesktop, SUPERV_Graph theDataFlow )
      : SUPERVGraph_View(theParent),
        myLogged( false ),
        myFiltered( false ),
@@ -139,8 +143,7 @@ SUPERVGUI_Main::SUPERVGUI_Main(SUPERVGraph_ViewFrame* theParent, QAD_Desktop* th
 {
   Trace("SUPERVGUI_Main::SUPERVGUI_Main (copy)");
   theParent->setViewWidget(this);  
-  //  dataflow = cp->Copy();
-  dataflow = cp;
+  dataflow = theDataFlow;
   if (SUPERV_isNull(dataflow)) {
     QMessageBox::warning(0, tr("ERROR"), tr("MSG_CANT_COPY"));
     close();
@@ -159,12 +162,9 @@ void SUPERVGUI_Main::init(QAD_Desktop* theDesktop) {
 
   myThread = new SUPERVGUI_Thread();
   myThread->setMain(this);
-  connect(this, SIGNAL(KillMyThread(bool)), myThread, SLOT(KillThread(bool)));
 
   myIsKilled = false;
-  //myIsRunned = false;
   myCurrentView = CANVAS;
-  //  myCurrentView = GRAPH;
   myIsFromStudy = false;
   myLastGraph = 0;
   study     = theDesktop->getActiveStudy();
@@ -183,7 +183,6 @@ void SUPERVGUI_Main::init(QAD_Desktop* theDesktop) {
     father = builder->NewComponent(STUDY_SUPERVISION);
     anAttr = builder->FindOrCreateAttribute(father, "AttributeName");
     aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    //aName->SetValue("Supervision");
     aName->SetValue(QAD_Application::getDesktop()->getComponentUserName( "SUPERV" ) );
     
     anAttr = builder->FindOrCreateAttribute(father, "AttributePixMap");
@@ -256,33 +255,11 @@ SUPERVGUI_Main::~SUPERVGUI_Main() {
     fclose( myLogFile );
   }
   graph->removeLinks();
-  delete myCanvas;
+  //delete myCanvas;
   //  delete notification; // kloss : nota bene : quand un datalow est detruit : verifier que les canaux de notification sont aussi detruit
   notification->_remove_ref();  // kloss : nota bene : quand un datalow est detruit : verifier que les canaux de notification sont aussi detruit
-  if (!SUPERV_isNull(dataflow)) {
-    if (dataflow->IsExecuting()) {
-      if (QMessageBox::warning(QAD_Application::getDesktop(),
-                              tr("WARNING"), 
-                              tr("MSG_DF_RUNNING"), 
-                              tr("MSG_DF_EXECUTION"), 
-                              tr("MSG_DF_KILL")) == 1) {
-       if (dataflow->Kill()) {
-         if (myThread->running()) 
-           myThread->wait();
-       }
-      }
-      else {
-       emit KillMyThread(true);
-       if (myThread->running()) 
-         myThread->wait();
-      }
-    }
-    else {
-      emit KillMyThread(true);
-      if (myThread->running()) 
-       myThread->wait();
-    }
-  }
+
+  delete myCanvas;
 }
 
 void SUPERVGUI_Main::filterNotification() {
@@ -352,7 +329,6 @@ void SUPERVGUI_Main::execute(char *  theNodeName, SUPERV::GraphState theNodeStat
       aGraphNodePrs->sync();
     }
     else if (aNodePrs) {
-      //aNodePrs->sync();
       aNodePrs->syncOnEvent(theNodeState);
     }
   }
@@ -510,7 +486,7 @@ void SUPERVGUI_Main::copy() {
     QString aNewName(tr("MSG_COPY_PREFIX").arg(++myCopyNum));
     aNewName += dataflow->Name();
     aNewGraph->SetName(aNewName);
-    SUPERVGUI_Main* m = new SUPERVGUI_Main(aViewFrame, 
+    /*SUPERVGUI_Main* m = */new SUPERVGUI_Main(aViewFrame, 
                                           Supervision.getDesktop(), 
                                           aNewGraph);
     study->showFrame(aStudyFrame);
@@ -547,7 +523,7 @@ void SUPERVGUI_Main::openSubGraph(SUPERV_CNode theNode, bool correct)
          SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>
            (aStudyFrame->getRightFrame()->getViewFrame());
          if(aViewFrame) {
-           SUPERVGUI_Main* m = new SUPERVGUI_Main(aViewFrame, 
+           /*SUPERVGUI_Main* m = */new SUPERVGUI_Main(aViewFrame, 
                                                   Supervision.getDesktop(), 
                                                   aGraph);
            //    connect(aStudyFrame, SIGNAL(sfStudyFrameClosing(QAD_StudyFrame*)), 
@@ -1334,9 +1310,13 @@ bool SUPERVGUI_Main::isFiltered(char* graph,  char* node,   char* type, char* me
   return( b );
 }
 
+void SUPERVGUI_Main::closeEvent(QCloseEvent* e) {
+  e->accept();
+}
 
 
 void SUPERVGUI_Main::setPaletteBackgroundColor(const QColor& color) { 
+
   array->setPaletteBackgroundColor(color);
   graph->setPaletteBackgroundColor(color);
   myCanvas->setBackgroundColor(color);
@@ -1406,7 +1386,8 @@ void SUPERVGUI_Thread::startThread(const char* m)
 {
   if (!myIsActive) {
     myIsActive = true;
-    QThread::start();
+    //QThread::start();
+    this->start();
     myMain->getMessage()->setMessage(m); 
     myMain->sync();
   }
@@ -1450,21 +1431,22 @@ void SUPERVGUI_Thread::run()
   myMain->startTimer();
   while(myIsActive) {
     myMain->getDataflow()->Event(aNode, aEvent, aState);
-      
+    
     if (aEvent == SUPERV::UndefinedEvent && aState == SUPERV::UndefinedState
        ||
        aEvent == SUPERV::NoEvent && aState == SUPERV::NoState
        ||
        aEvent == SUPERV::KillEvent && aState == SUPERV::KillState) {
+
       if (myMain->getEventNodes().count()) {
        myMain->removeEventNodes();
-      }
+      }    
       if (myMain->getStates().count()) {
        myMain->removeStates();
-      }
+      }    
       myIsActive = false;
     }
-    else {
+    else {    
       if ( aNode != NULL && !CORBA::is_nil( aNode ) ) {
        aName = aNode->Name();
       }
@@ -1502,10 +1484,10 @@ void SUPERVGUI_Thread::run()
          myMain->setStates(aStates);
        }
       }
-    }
+    }      
     if (!myIsActive) {
       switch (myMain->getDataflow()->State()) {
-      case SUPERV_Editing : 
+      case SUPERV_Editing :     
        stopThread(myMain->getDataflow()->IsReadOnly()? tr("MSG_GRAPH_READONLY"): tr("MSG_GRAPH_EDITING"));
        break;
        
@@ -1528,29 +1510,26 @@ void SUPERVGUI_Thread::run()
 
       break;
     }
-
-    if (myMain->getEventNodes().count()) {
+    if ( myMain->getEventNodes().count() ) {    
       //if list not empty call execute() -> sync()
       char * aNodeName = *(myMain->getEventNodes().getFirst());
       SUPERV::GraphState aNodeState = *(myMain->getStates().getFirst());
 
       // It is PROHIBITED to deal with widgets in a secondary thread, so event posting is used here
       ProcessVoidEvent( new TNodeSyncEvent( myMain, &SUPERVGUI_Main::execute, aNodeName, aNodeState ) );
-            
+
       myMain->removeFirstEN();
       myMain->removeFirstS();
-
     }
 
     aPrevNode = aNode;
     aPrevEvent = aEvent;
     aPrevState = aState;
-    if ( aPrevNode == NULL || CORBA::is_nil( aPrevNode ) ) {
+
+    if ( aPrevNode == NULL || CORBA::is_nil( aPrevNode ) ) 
       aPrevName = "";
-    }
-    else {
+    else 
       aPrevName = aPrevNode->Name();
-    }
     
     //usleep(10);
     //msleep(5);
@@ -1559,7 +1538,8 @@ void SUPERVGUI_Thread::run()
 //   qApp->lock();
 //   myMain->getStudy()->updateObjBrowser();
 //   qApp->unlock();
-  // VSR: 04/12/03 <---
+  // VSR: 04/12/03 <---    
+
   QThread::exit();
 }
 
index b8140ecf5b5e07d81544d710d7efb3cbcfb3e7d3..043a915f59dc48d03ae876e5e305025c67bde654 100644 (file)
@@ -51,8 +51,8 @@ class SUPERVGUI_Main: public SUPERVGraph_View {
   Q_OBJECT
 
   public:
-    SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, bool fromIOR);
-    SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, bool isModify, const char* filename);
+    //SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, bool fromIOR);
+    //SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, bool isModify, const char* filename);
     SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, SUPERV_Graph);
     virtual ~SUPERVGUI_Main();
 
@@ -156,6 +156,7 @@ class SUPERVGUI_Main: public SUPERVGraph_View {
     void init(QAD_Desktop* parent);
     void syncNotification();
     bool isFiltered(char* graph, char* node, char* type, char* message, char* sender, long counter, char* date, long stamp);
+    void closeEvent(QCloseEvent*);
 
     SUPERV_Graph            dataflow;
 
index 563dcabc4799f4e109f73c418741ec1cee00d8ca..74cf9ea58d6a67384d0abfac32b3f30d84d8a49d 100644 (file)
@@ -417,26 +417,31 @@ void SUPERVGUI_Node::setNodeName(QString aName) {
     QMessageBox::warning( QAD_Application::getDesktop(), tr( "ERROR" ), tr( "MSG_CANT_RENAMENODE" ) );
 }
 
-
-SUPERV_Port SUPERVGUI_Node::createInPort() {
-  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg();
-  if (aDlg->exec()) {
-    if (aDlg->getName().isEmpty() || aDlg->getType().isEmpty()) {
-      QMessageBox::warning( QAD_Application::getDesktop(), tr( "ERROR" ), tr( "MSG_CANT_CREATE_PORT" ) );
-      return NULL;
-    }
-    SUPERV_INode aNode = getInlineNode();
-    if (SUPERV_isNull(aNode)) {
-      MESSAGE("SUPERVGUI_Node::createInPort: Node is wrong type");
-      return NULL;
-    }
-    SUPERV_Ports aPorts = aNode->Ports();
+QStringList SUPERVGUI_Node::getPortsNamesIN(SUPERV_INode theNode, bool theInputPorts)
+{
+  QStringList aPNList;
+  if (!SUPERV_isNull(theNode)) {
+    SUPERV_Ports aPorts = theNode->Ports();
     for (int i=0; i<aPorts->length(); i++) {
-      if (aDlg->getName() == QString(aPorts[i]->Name())){
-       QMessageBox::warning(0, tr("ERROR"), tr("MSG_PORT_EXIST"));
-       return NULL;
+      if (theInputPorts) {
+       if (aPorts[i]->IsInput()) aPNList.append(QString(aPorts[i]->Name()));
       }
+      else 
+       if (!aPorts[i]->IsInput()) aPNList.append(QString(aPorts[i]->Name()));
     }
+  }
+  return aPNList;
+}
+
+SUPERV_Port SUPERVGUI_Node::createInPort() {
+  SUPERV_INode aNode = getInlineNode();
+  if (SUPERV_isNull(aNode)) {
+    MESSAGE("SUPERVGUI_Node::createInPort: Node is wrong type");
+    return NULL;
+  }
+  
+  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg(getPortsNamesIN(aNode,true));
+  if (aDlg->exec()) {
     SUPERV_Port aPort = aNode->InPort(aDlg->getName().latin1(),
                                      aDlg->getType().latin1());    
     delete aDlg;
@@ -448,20 +453,14 @@ SUPERV_Port SUPERVGUI_Node::createInPort() {
 
 
 SUPERV_Port SUPERVGUI_Node::createOutPort() {
-  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg();
+  SUPERV_INode aNode = getInlineNode();
+  if (SUPERV_isNull(aNode)) {
+    MESSAGE("SUPERVGUI_Node::createInPort: Node is wrong type");
+    return NULL;
+  }
+  
+  SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg(getPortsNamesIN(aNode,false));
   if (aDlg->exec()) {
-    SUPERV_INode aNode = getInlineNode();
-    if (SUPERV_isNull(aNode)) {
-      MESSAGE("SUPERVGUI_Node::createInPort: Node is wrong type");
-      return NULL;
-    }
-    SUPERV_Ports aPorts = aNode->Ports();
-    for (int i=0; i<aPorts->length(); i++) {
-      if (aDlg->getName() == QString(aPorts[i]->Name())){
-       QMessageBox::warning(0, tr("ERROR"), tr("MSG_PORT_EXIST"));
-       return NULL;
-      }
-    }
     SUPERV_Port aPort = aNode->OutPort(aDlg->getName().latin1(),
                                       aDlg->getType().latin1());
     delete aDlg;
@@ -519,8 +518,9 @@ void SUPERVGUI_Node::editFunction() {
 static const char* MyTypeStrings[] = 
   {"string", "boolean", "char", "short", "int", "long", "float", "double", "objref"};
 
-SUPERVGUI_PortParamsDlg::SUPERVGUI_PortParamsDlg()
-  : QDialog(QAD_Application::getDesktop(), 0, true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu  )
+SUPERVGUI_PortParamsDlg::SUPERVGUI_PortParamsDlg(const QStringList& thePortsNames)
+  : QDialog(QAD_Application::getDesktop(), 0, true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu  ),
+    myPortsNames(thePortsNames)
 {
   setSizeGripEnabled( true );
   setCaption("Port parameters");
@@ -553,7 +553,7 @@ SUPERVGUI_PortParamsDlg::SUPERVGUI_PortParamsDlg()
   aBaseLayout->addMultiCellWidget( aBtnBox, 2, 2, 0, 1 );
 
   QPushButton* aOKBtn = new QPushButton( tr( "BUT_OK" ), aBtnBox );
-  connect( aOKBtn, SIGNAL( clicked() ), this, SLOT( accept() ) );
+  connect( aOKBtn, SIGNAL( clicked() ), this, SLOT( clickOnOk() ) );
   aBtnLayout->addWidget( aOKBtn );
 
   aBtnLayout->addStretch();
@@ -562,3 +562,13 @@ SUPERVGUI_PortParamsDlg::SUPERVGUI_PortParamsDlg()
   connect( aCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
   aBtnLayout->addWidget( aCancelBtn );
 }
+
+void SUPERVGUI_PortParamsDlg::clickOnOk()
+{
+  if (getName().isEmpty() || getType().isEmpty())
+    QMessageBox::warning( QAD_Application::getDesktop(), tr( "ERROR" ), tr( "MSG_CANT_CREATE_PORT" ) );
+  else if (myPortsNames.contains(getName()))
+    QMessageBox::warning( QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_PORT_EXIST") );
+  else  
+    accept();
+}
index 4acd05c138ed236f51557dec9e47290b862d8f75..05ca410201e23c926f6ab74ebb048a2e2dfd4b4f 100644 (file)
@@ -35,6 +35,7 @@ using namespace std;
 #include "SUPERVGUI_BrowseNodeDlg.h"
 #include <qcombobox.h>
 #include "SUPERVGUI_Port.h"
+#include <qstringlist.h>
 
 class SUPERVGUI_Main;
 
@@ -95,6 +96,7 @@ class SUPERVGUI_Node: public QFrame {
 
     SUPERV_Port createInPort();
     SUPERV_Port createOutPort();
+    QStringList getPortsNamesIN(SUPERV_INode theNode, bool theInputPorts);
 
  protected:
     void mousePressEvent(QMouseEvent* e);
@@ -160,15 +162,20 @@ class SUPERVGUI_PortParamsDlg: public QDialog {
   Q_OBJECT
     
  public:
-  SUPERVGUI_PortParamsDlg();
+  SUPERVGUI_PortParamsDlg(const QStringList& thePortsNames);
   ~SUPERVGUI_PortParamsDlg() {};
 
   QString getName() { return myNameTxt->text(); }
   QString getType() { return myTypeTxt->currentText(); }
 
+ public slots:
+  void clickOnOk();
+    
+   
  private:
   QLineEdit* myNameTxt;
   QComboBox* myTypeTxt;
+  QStringList myPortsNames;
 };
 
 
index 4345b0d4ee48ac2bd638ab38f855e3761ebceb7f..026c1ae9de37b37ca62386cb6f71af4769610ca0 100644 (file)
@@ -395,7 +395,10 @@ void SUPERVGUI_Service::addComputeNode() {
              QMessageBox::warning(aDesktop, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));    
              return;
            }
-           node->Coords(myX, myY);
+           //to appear a new node in the top-left corner of the current viewport
+           int cx, cy;
+           aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+           node->Coords(cx, cy);
            myX += NODE_DX;
            myY += NODE_DY;
            aMain->addComputeNode(SUPERV::CNode::_narrow(node));
@@ -441,13 +444,16 @@ void SUPERVGUI_Service::addFactoryNode() {
            
            MESSAGE ( " myService->TypeOfNode == " << myService->TypeOfNode ) 
 
+           int cx, cy;
            if ( myService->TypeOfNode == 0 ) { // ComputeNode
              SUPERV_CNode node = aMain->getDataflow()->CNode(*myService);
              if (CORBA::is_nil(node)) {
                QMessageBox::warning(aDesktop, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));          
                return;
              }
-             node->Coords(myX, myY);
+             //to appear a new node in the top-left corner of the current viewport
+             aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+             node->Coords(cx, cy);
              myX += NODE_DX;
              myY += NODE_DY;
              aMain->addComputeNode(SUPERV::CNode::_narrow(node));
@@ -457,7 +463,9 @@ void SUPERVGUI_Service::addFactoryNode() {
                QMessageBox::warning(aDesktop, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));          
                return;
              }
-             node->Coords(myX, myY);
+             //to appear a new node in the top-left corner of the current viewport
+             aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+             node->Coords(cx, cy);
              myX += NODE_DX;
              myY += NODE_DY;
              aMain->addComputeNode(SUPERV::CNode::_narrow(node));
@@ -492,6 +500,7 @@ void SUPERVGUI_Service::addInlineNode() {
     QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));        
   } else {
     int aSel = myTypeCombo->currentItem();
+    int cx, cy;
     switch (aSel) {
     case 0: // Computation
       if (myScriptPane->isDefined()) { 
@@ -501,7 +510,9 @@ void SUPERVGUI_Service::addInlineNode() {
          QMessageBox::warning(0, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));       
          return;
        }
-       aNode->Coords(myX, myY);
+       //to appear a new node in the top-left corner of the current viewport
+       aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+       aNode->Coords(cx, cy);
        myX += NODE_DX;
        myY += NODE_DY;
        aMain->addComputeNode(SUPERV::CNode::_narrow(aNode));
@@ -518,8 +529,10 @@ void SUPERVGUI_Service::addInlineNode() {
          QMessageBox::warning(0, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));       
          return;
        }
-       aStartNode->Coords(myX, myY);
-       aEndNode->Coords(myX + LABEL_WIDTH*2, myY);
+       //to appear a new node in the top-left corner of the current viewport
+       aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+       aStartNode->Coords(cx, cy);
+       aEndNode->Coords(cx + LABEL_WIDTH*2, cy);
        myX += NODE_DX;
        myY += NODE_DY;
        aMain->addControlNode(SUPERV::CNode::_narrow(aStartNode), SUPERV::CNode::_narrow(aEndNode), true);
@@ -537,8 +550,10 @@ void SUPERVGUI_Service::addInlineNode() {
          QMessageBox::warning(0, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));       
          return;
        }
-       aStartNode->Coords(myX, myY);
-       aEndNode->Coords(myX + LABEL_WIDTH*2, myY);
+       //to appear a new node in the top-left corner of the current viewport
+       aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+       aStartNode->Coords(cx, cy);
+       aEndNode->Coords(cx + LABEL_WIDTH*2, cy);
        myX += NODE_DX;
        myY += NODE_DY;
        aMain->addControlNode(SUPERV::CNode::_narrow(aStartNode), SUPERV::CNode::_narrow(aEndNode), true);
@@ -557,7 +572,9 @@ void SUPERVGUI_Service::addInlineNode() {
          QMessageBox::warning(0, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));       
          return;
        }
-       aGotoNode->Coords(myX, myY);
+       //to appear a new node in the top-left corner of the current viewport
+       aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+       aGotoNode->Coords(cx, cy);
        myX += NODE_DX;
        myY += NODE_DY;
        aMain->addGOTONode(SUPERV::GNode::_narrow(aGotoNode));
@@ -591,7 +608,10 @@ void SUPERVGUI_Service::addMacroNode() {
        QMessageBox::warning(0, tr("ERROR"), tr("MSG_CANT_CREATE_NODE"));         
        return;
       }
-      aNode->Coords(myX, myY);
+      //to appear a new node in the top-left corner of the current viewport
+      int cx, cy;
+      aMain->getCanvasView()->viewportToContents(myX, myY, cx, cy);
+      aNode->Coords(cx, cy);
       myX += NODE_DX;
       myY += NODE_DY;
       aMain->addMacroNode(SUPERV::CNode::_narrow(aNode));
@@ -807,7 +827,10 @@ SUPERV_Strings SUPERVGUI_PythonEditPane::getFunction() {
   SUPERV_Strings aStrings = new SUPERV::ListOfStrings();
   aStrings->length(myText->paragraphs());
   for (int i=0; i < myText->paragraphs(); i++) {
-    aStrings[i] = CORBA::string_dup(myText->text(i).latin1());
+    QString aLine = myText->text(i);
+    if (!aLine.right(1).compare(" "))
+      aLine = aLine.remove(aLine.length()-1,1);
+    aStrings[i] = CORBA::string_dup(aLine.latin1());
   }
   return aStrings._retn();
 }
index d22a5b494fbb1ca4e1b2d1bcc15f9716b06a1d16..72c0451849164f3b8847387ecbe7658797bc53bf 100644 (file)
@@ -85,7 +85,7 @@ msgstr "Ortho Mode"
 
 #:SUPERVGUI_Main.cxx:146
 msgid "WARNING"
-msgstr "Supervision Warning"
+msgstr "Supervisor Warning"
 
 #:SUPERVGUI_Main.cxx:147
 msgid "MSG_DF_RUNNING"
index 9457225f2f31a7ab9fd97ae75cac516952c594fd..1175c0051b039d634e73ff3735306d1a3f52baff 100644 (file)
@@ -1728,10 +1728,11 @@ bool CNode_Impl::Kill() {
   if ( aDataFlowExecutor ) {
     if ( _IsNode ) {
       RetVal = aDataFlowExecutor->Kill( Name() ) ;
+      MESSAGE( "Node "  << Name() << " execution was killed : " << RetVal ) ;
     }
     else {
       RetVal = aDataFlowExecutor->Kill() ;
-      MESSAGE( "Graph execution was killed " << RetVal ) ;
+      MESSAGE( "Graph execution was killed " << RetVal ) ;
     }
   }
   endService( "CNode_Impl::Kill" );
@@ -1805,6 +1806,8 @@ bool CNode_Impl::Resume() {
   return RetVal ;
 }
 
+// Old method used in the past for initial study about GOTO and Loop
+// Should not be used
 bool CNode_Impl::Run() {
   beginService( "CNode_Impl::Run" );
   bool RetVal = false ;
@@ -1832,6 +1835,8 @@ bool CNode_Impl::ReRun() {
     if ( _IsNode ) {
       RetVal = aDataFlowExecutor->Run( Name() , Name() , false ) ;
     }
+// The GUI calls directly that method instead of calling Graph_Impl::Run() :
+// I redirect the call to Graph_Impl::Run()
     else if ( DataFlowEditor()->IsEditing() ) {
       RetVal = ((Graph_Impl::Graph_Impl *) this)->Graph_Impl::Run() ;
     }
@@ -1843,6 +1848,8 @@ bool CNode_Impl::ReRun() {
   return RetVal ;
 }
 
+// Old method used in the past for initial study about GOTO and Loop
+// Should not be used
 bool CNode_Impl::ReRunAt( const char * aNodeName ) {
   beginService( "CNode_Impl::ReRunAt" );
   bool RetVal = false ;
@@ -1865,6 +1872,11 @@ bool CNode_Impl::ReStart() {
     if ( _IsNode ) {
       RetVal = aDataFlowExecutor->Run( Name() , Name() , true ) ;
     }
+// The GUI calls directly that method instead of calling Graph_Impl::Start() :
+// I redirect the call to Graph_Impl::Start()
+    else if ( DataFlowEditor()->IsEditing() ) {
+      RetVal = ((Graph_Impl::Graph_Impl *) this)->Graph_Impl::Start() ;
+    }
     else {
       RetVal = aDataFlowExecutor->Run( true ) ;
     }
@@ -1873,6 +1885,8 @@ bool CNode_Impl::ReStart() {
   return RetVal ;
 }
 
+// Old method used in the past for initial study about GOTO and Loop
+// Should not be used
 bool CNode_Impl::ReStartAt( const char * aNodeName ) {
   beginService( "CNode_Impl::ReStartAt" );
   bool RetVal = false ;
index e5913bda3e064fe430836bdcc7cc37b7e7f36934..04bc8da801b3c7d7c40bba7383c76532332984f0 100644 (file)
@@ -72,13 +72,10 @@ ELNode_Impl::~ELNode_Impl() {
 }
 
 void ELNode_Impl::destroy() {
-//  MESSAGE("-------->  ELNode_Impl::destroy()  BEGIN");
-//  beginService( "ELNode_Impl::Destroy" );
+  beginService( "ELNode_Impl::Destroy" );
   if ( DataFlowEditor()->IsEditing() ) {
-    MESSAGE("-------->  Editing dataflow");
     SUPERV::GNode_ptr aCoupled = SUPERV::GNode::_narrow( Coupled() ) ;
     if ( Delete() ) {
-      MESSAGE("-------->  Delete return true");
       _poa->deactivate_object(*_id) ;
       CORBA::release(_poa) ;
       delete(_id) ;
@@ -89,26 +86,19 @@ void ELNode_Impl::destroy() {
       aCoupled->destroy() ;
     }
   }
-//  endService( "ELNode_Impl::Destroy" );
-//  MESSAGE("-------->  ELNode_Impl::destroy()  END");
+  endService( "ELNode_Impl::Destroy" );
 }
 
 bool ELNode_Impl::Delete() {
-//  beginService( "ELNode_Impl::Delete" );
-  MESSAGE("-------->  ELNode_Impl::Delete()  BEGIN");
+  beginService( "ELNode_Impl::Delete" );
   bool RetVal = false ;
   if ( DataFlowEditor()->IsEditing() ) {
     DeletePorts() ;
-    MESSAGE("-------->  In Delete: Editing dataflow");
     RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
-    MESSAGE("-------->  RetVal = "<<RetVal);
     if ( RetVal ) {
-      MESSAGE("-------->  Before IsValid");
       RetVal = DataFlowEditor()->IsValid() ;
-      MESSAGE("-------->  After IsValid");
     }
   }
-//  endService( "ELNode_Impl::Delete" );
-  MESSAGE("-------->  ELNode_Impl::Delete()  END");
+  endService( "ELNode_Impl::Delete" );
   return RetVal ;
 }
index 290df45fe3efda515812ade547a334e7d447c2d7..9fbd6d4be6a81ad9cc1b4ac1f2a6ab4a0b11eebd 100644 (file)
@@ -111,9 +111,7 @@ char * FNode_Impl::GetComponentName() {
 bool FNode_Impl::SetComponentName( const char * aComponentName ) {
 //  beginService( "FNode_Impl::SetComponentName" );
   bool RetVal = false ;
-  if ( DataFlowEditor()->IsEditing() ) {
-    RetVal = DataFlowNode()->ComponentName( aComponentName ) ;
-  }
+  RetVal = DataFlowNode()->ComponentName( aComponentName ) ;
 //  endService( "FNode_Impl::SetComponentName" );
   return RetVal ;
 }
@@ -126,9 +124,7 @@ char * FNode_Impl::GetInterfaceName() {
 bool FNode_Impl::SetInterfaceName( const char * anInterfaceName ) {
 //  beginService( "FNode_Impl::SetInterfaceName" );
   bool RetVal = false ;
-  if ( DataFlowEditor()->IsEditing() ) {
     RetVal = DataFlowNode()->InterfaceName( anInterfaceName ) ;
-  }
 //  endService( "FNode_Impl::SetInterfaceName" );
   return RetVal ;
 }
@@ -141,16 +137,17 @@ char * FNode_Impl::GetContainer() {
 bool FNode_Impl::SetContainer( const char * aDataFlowContainer ) {
 //  beginService( "FNode_Impl::SetContainer" );
   bool RetVal = false ;
-  GraphExecutor::DataFlow * _DataFlowExecutor = DataFlowEditor()->Executor() ;
-  if ( DataFlowEditor()->IsEditing() ) {
+//  GraphExecutor::DataFlow * _DataFlowExecutor = DataFlowEditor()->Executor() ;
+//  if ( DataFlowEditor()->IsEditing() ) {
     RetVal = DataFlowNode()->Computer( aDataFlowContainer ) ;
-  }
-  else if ( _DataFlowExecutor && ( _DataFlowExecutor->IsSuspended() ||
-            _DataFlowExecutor->IsSuspended( DataFlowNode()->Name() ) ) ) {
-    if ( _DataFlowExecutor->Graph()->GetChangeGraphNode( DataFlowNode()->Name() ) ) {
-      RetVal = ((GraphEditor::InNode * ) _DataFlowExecutor->Graph()->GetChangeGraphNode( DataFlowNode()->Name() )->GetInNode())->Computer( aDataFlowContainer ) ;
-    }
-  }
+//  }
+//  else if ( _DataFlowExecutor && ( _DataFlowExecutor->IsSuspended() ||
+//            _DataFlowExecutor->IsSuspended( DataFlowNode()->Name() ) ) ) {
+//    if ( _DataFlowExecutor->Graph()->GetChangeGraphNode( DataFlowNode()->Name() ) ) {
+//      RetVal = ((GraphEditor::InNode * ) _DataFlowExecutor->Graph()->GetChangeGraphNode( DataFlowNode()->Name() )->GetInNode())->Computer( aDataFlowContainer ) ;
+      DataFlowEditor()->UnValid() ;
+//    }
+//  }
 //  endService( "FNode_Impl::SetContainer" );
   return RetVal ;
 }
index fcad1e7b60fd6b2f8ff9c31fc86d0f88fdb2db63..9299a9763e49b342926cf5548af16da37a21712f 100644 (file)
@@ -214,3 +214,31 @@ SUPERV::INode_ptr GNode_Impl::Coupled() {
   return SUPERV::INode::_duplicate( iobject ) ;
 }
 
+bool GNode_Impl::SetCoupled( const char * anInLineNode )
+{
+  GraphBase::InLineNode * CoupledINode = (GraphBase::InLineNode * ) DataFlowEditor()->Graph()->GetGraphNode( anInLineNode ) ;
+  if ( !CoupledINode ) {
+    
+    // asv : 2.11.04 : nullify Coupled node if anInLineNode == "" (bug 7113)
+    if ( anInLineNode==NULL || !strlen( anInLineNode ) ) {
+      DataFlowNode()->CoupledNode( NULL );
+    }
+
+    return false;
+  } 
+  if ( ( IsGOTO() && ( CoupledINode->IsInLineNode() || CoupledINode->IsLoopNode() || CoupledINode->IsSwitchNode() ) ) ||
+       ( !IsGOTO() && ( IsLoop() || IsSwitch() || IsEndLoop() || IsEndSwitch() ) ) ) {
+    DataFlowNode()->CoupledNode( CoupledINode ) ;
+    if ( CoupledINode && IsSwitch() ) {
+      DataFlowEditor()->AddLink( Name() , "Default" ,CoupledINode->Name() , "Default" ) ;
+    }
+    else if ( CoupledINode && ( IsLoop() || IsEndLoop() ) ) {
+      DataFlowEditor()->AddLink( Name() , "DoLoop" , CoupledINode->Name() , "DoLoop" ) ;
+    }
+    else if ( CoupledINode && IsGOTO() ) {
+      DataFlowEditor()->AddLink( Name() , "OutGate" ,CoupledINode->Name() , "InGate" ) ;
+    }
+    return  true ;
+  }
+  return false ; 
+}
index ea87b67467fb88db239565ab8aaece6491844f3f..b5f87bbfe09c0833e3c4994c994956a8db6d9fce 100644 (file)
@@ -72,38 +72,8 @@ class GNode_Impl : public INode_Impl ,
     virtual void destroy() ;
     virtual bool Delete() ;
 
-    virtual bool SetCoupled( const char * anInLineNode ) {
-            GraphBase::InLineNode * CoupledINode = (GraphBase::InLineNode * ) DataFlowEditor()->Graph()->GetGraphNode( anInLineNode ) ;
-//            cout << Name() << ".SetCoupled " << anInLineNode << endl ;
-//            if ( CoupledINode && ( IsGOTO() &&
-            if ( ( IsGOTO() &&
-                   ( CoupledINode->IsInLineNode() || CoupledINode->IsLoopNode() ||
-                     CoupledINode->IsSwitchNode() ) ) ||
-                 ( !IsGOTO() && ( IsLoop() || IsSwitch() ||
-                                  IsEndLoop() || IsEndSwitch() ) ) ) {
-              DataFlowNode()->CoupledNode( CoupledINode ) ;
-              if ( CoupledINode && IsSwitch() ) {
-                DataFlowEditor()->AddLink( Name() , "Default" ,
-                                           CoupledINode->Name() , "Default" ) ;
-             }
-              else if ( CoupledINode && ( IsLoop() || IsEndLoop() ) ) {
-                DataFlowEditor()->AddLink( Name() , "DoLoop" ,
-                                           CoupledINode->Name() , "DoLoop" ) ;
-             }
-              else if ( CoupledINode && IsGOTO() ) {
-                DataFlowEditor()->AddLink( Name() , "OutGate" ,
-                                           CoupledINode->Name() , "InGate" ) ;
-             }
-//              cout << "SetCoupled " << CoupledINode->Name() << endl ;
-              return  true ;
-           }
-//            cout << Name() << ".SetCoupled ERROR " << anInLineNode << " " << CoupledINode
-//                 << " of " << Kind() ;
-//            if ( CoupledINode ) {
-//              cout << " kinfOkCoupled " << CoupledINode->Kind() ;
-//         }
-//            cout << endl ;
-            return false ; } ;
+    virtual bool SetCoupled( const char * anInLineNode );
+
     virtual SUPERV::INode_ptr Coupled() ;
 
     virtual GraphBase::GOTONode * BaseNode() {
index 1a2350a0ebdeb45d3f8ae7639671e2f64a0e60c1..3af8ebd8201379064293c8b7cb6353d1bbb49ff1 100644 (file)
@@ -598,10 +598,17 @@ SUPERV::Graph_var Graph_Impl::LoadDataFlows( GraphEditor::DataFlow * aDataFlowEd
       if ( aGraph->GraphNodes( i )->IsMacroNode() ) {
         GraphBase::GOTONode * aMacroNode = (GraphBase::GOTONode * ) aGraph->GraphNodes( i ) ;
 
-// asv: set Editor for the graph itself and for all its macro nodes
+       // asv : 05.11.04 : fix of bug - "insert file" into existing graph with MacroNodes worked incorrectly!
+       // aMacroNode is an "old" node, and here we must analize only "new" nodes, that
+       // came from aListOfDataFlows and were loaded by aDataFlowEditor->LoadDataFlow( &(*aListOfDataFlows)[ index ] )
+       // so here we check if the node is "new" or "old"
+       if ( aMacroNode->GraphEditor() && aMacroNode->CoupledNode() )
+         continue;
+
+       // asv: set Editor for the graph itself and for all its macro nodes
        aMacroNode->GraphEditor( aDataFlowEditor );
 
-// Creation of a GraphMacroNode ObjRef in the current editor
+       // Creation of a GraphMacroNode ObjRef in the current editor
         SUPERV::Graph_var macroiobject = SUPERV::Graph::_nil() ;
         Graph_Impl * myMacroNode ;
         myMacroNode = new Graph_Impl( _Orb , _Poa, _ContId,
@@ -716,7 +723,7 @@ SUPERV::Graph_var Graph_Impl::LoadDataFlows( GraphExecutor::DataFlow * aDataFlow
   }
 
   // That graph is not a StreamGraph :
-  else if ( !aDataFlowExecutor->Graph()->HasDataStream() ) {
+  else {
     aDataFlowExecutor->Graph()->Kind( SUPERV::DataFlowGraph ) ;
     GraphEditor::DataFlow * aDataFlowEditor ;
     aDataFlowEditor = DataFlowEditor() ;
@@ -730,84 +737,76 @@ SUPERV::Graph_var Graph_Impl::LoadDataFlows( GraphExecutor::DataFlow * aDataFlow
     aDataFlowEditor->Executor( aDataFlowExecutor ) ;
     anExecutorGraph->GraphEditor( aDataFlowEditor ) ;
 
+    if ( !aDataFlowExecutor->Graph()->HasDataStream() ) {
     // For the supergraph or each graph of MacroNodes we search MacroNodes recursively :
-    int i;
-    for ( i = 0 ; i < anExecutorGraph->GraphNodesSize() ; i++ ) {
-      if ( anExecutorGraph->GraphNodes( i )->IsMacroNode() ) {
-        GraphBase::GOTONode * aMacroNode = (GraphBase::GOTONode * ) anExecutorGraph->GraphNodes( i ) ;
-        aMacroNode->GraphEditor( aDataFlowEditor ) ;
+      int i;
+      for ( i = 0 ; i < anExecutorGraph->GraphNodesSize() ; i++ ) {
+        if ( anExecutorGraph->GraphNodes( i )->IsMacroNode() ) {
+          GraphBase::GOTONode * aMacroNode = (GraphBase::GOTONode * ) anExecutorGraph->GraphNodes( i ) ;
+          aMacroNode->GraphEditor( aDataFlowEditor ) ;
 
        // get the macro node's editor object
-        char * aMacroGraphName = aMacroNode->CoupledNodeName() ;
-        GraphBase::Graph* aMacroGraph =  (GraphBase::Graph*)((GraphBase::GOTONode *)anEditorGraph->GetGraphNode( aMacroNode->Name() ))->CoupledNode() ;
+          char * aMacroGraphName = aMacroNode->CoupledNodeName() ;
+          GraphBase::Graph* aMacroGraph =  (GraphBase::Graph*)((GraphBase::GOTONode *)anEditorGraph->GetGraphNode( aMacroNode->Name() ))->CoupledNode() ;
        GraphEditor::DataFlow* aMacroGraphEditor = aMacroGraph->GraphEditor();
 
-        MESSAGE( "LoadDataFlows(Executor) MacroNode " << aMacroNode->Name() << " Coupled to " << aMacroGraphName
-                 << " to be searched among " << (*aListOfDataFlows).size() << " Graphs" << endl ) ;
-        int index;
-        bool found = false ;
-        for ( index = 0 ; index < (int ) (*aListOfDataFlows).size() && !found; index++ ) {
-          if ( !strcmp( aMacroGraphName , (*aListOfDataFlows)[index].Info.theName.c_str() ) )
-            found = true;
-       }
-       if ( !found ) {
-         MESSAGE("Graph_Impl::LoadDataFlows(Executor) failed, Macro node's coupled graph \"" << aMacroGraphName << "\" was not found" ) ;
-         return SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
-       }
-       index--; // it was incremented in "for ..." before last check ( !found ).
+          MESSAGE( "LoadDataFlows(Executor) MacroNode " << aMacroNode->Name() << " Coupled to " << aMacroGraphName
+                   << " to be searched among " << (*aListOfDataFlows).size() << " Graphs" << endl ) ;
+          int index;
+          bool found = false ;
+          for ( index = 0 ; index < (int ) (*aListOfDataFlows).size() && !found; index++ ) {
+            if ( !strcmp( aMacroGraphName , (*aListOfDataFlows)[index].Info.theName.c_str() ) )
+              found = true;
+         }
+         if ( !found ) {
+           MESSAGE("Graph_Impl::LoadDataFlows(Executor) failed, Macro node's coupled graph \"" << aMacroGraphName << "\" was not found" ) ;
+           return SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
+         }
+         index--; // it was incremented in "for ..." before last check ( !found ).
        
        // At first create the editor and a StreamGraph
-       string dbgfile ;
-       GraphExecutor::DataFlow * aMacroGraphExecutor ;
-       CreateExecutor( _Orb , instanceName() , aMacroGraphName , SUPERV::DataStreamGraph ,
+         string dbgfile ;
+         GraphExecutor::DataFlow * aMacroGraphExecutor ;
+         CreateExecutor( _Orb , instanceName() , aMacroGraphName , SUPERV::DataStreamGraph ,
                        dbgfile , &aMacroGraphExecutor );
 
        // set GraphMacroLevel for Executor's graph
-       GraphBase::Graph* aMacroGraphExe = aMacroGraphExecutor->Graph();
-        aMacroGraphExe->GraphMacroLevel( anExecutorGraph->GraphMacroLevel() + 1 );
+         GraphBase::Graph* aMacroGraphExe = aMacroGraphExecutor->Graph();
+            aMacroGraphExe->GraphMacroLevel( anExecutorGraph->GraphMacroLevel() + 1 );
 
        // load data flows in MacroGraph's executor
-       Graph_Impl* aMacroGraphImpl = (Graph_Impl*) aMacroGraphEditor->Graph()->ObjImpl();
-       MESSAGE( "RECURSIVE IMPORT OF GRAPHS OF MACRONODES : " << aMacroGraphName ) ;
-       if ( CORBA::is_nil( aMacroGraphImpl->LoadDataFlows( aMacroGraphExecutor, aListOfDataFlows , index ) ) ) {
-         MESSAGE("Graph_Impl::LoadDataFlows(Executor) failed,  could not LoadDataFlow( MacroNodeGraph \"" <<aMacroGraphName << "\" )" ) ;
-         return SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
-       }
+         Graph_Impl* aMacroGraphImpl = (Graph_Impl*) aMacroGraphEditor->Graph()->ObjImpl();
+         MESSAGE( "RECURSIVE IMPORT OF GRAPHS OF MACRONODES : " << aMacroGraphName ) ;
+         if ( CORBA::is_nil( aMacroGraphImpl->LoadDataFlows( aMacroGraphExecutor, aListOfDataFlows , index ) ) ) {
+           MESSAGE("Graph_Impl::LoadDataFlows(Executor) failed,  could not LoadDataFlow( MacroNodeGraph \"" <<aMacroGraphName << "\" )" ) ;
+           return SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
+         }
          
-       // set coupled pair MacroNode <--> MacroGraph
-        aMacroGraphExe->CoupledNode( aMacroNode ) ;
-        aMacroNode->CoupledNode( aMacroGraphExe ) ;
-
-       // set MacroObject pair ????
-       /*
-       PortableServer::ObjectId * id = aMacroNode->ObjImpl()->getId();
-       CORBA::Object_var obj = _poa->id_to_reference( *id );
-       SUPERV::Graph_var aMacroNodeImpl = SUPERV::Graph::_narrow( obj ) ;
-
-       aMacroGraphExe->MacroObject( SUPERV::Graph::_duplicate( aMacroNodeImpl ) ) ;
-        aMacroNode->MacroObject( SUPERV::Graph::_duplicate( SUPERV::Graph::_narrow( aMacroGraphExecutor->Graph()->ObjRef() ) ) ) ;
-       */
-       // initialize MacroNode's InPorts with corresponding "external" values
-       int q ;
-       for ( q = 0 ; q < aMacroNode->GetNodeInPortsSize() ; q++ ) {
-         const GraphBase::InPort * anInPort = aMacroNode->GetNodeInPort( q ) ;
-         if ( anInPort->IsDataConnected() ) {
-           if ( !aMacroGraphExecutor->InputOfAny( aMacroGraph->GetNodeInPort( q )->PortName() ,
-                                                 *anInPort->GetOutPort()->Value() ,
-                                                 false ) ) {
-             return SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
-           }
-           else {
-             MESSAGE( "LoadDataFlows(Executor) " << aMacroGraph->Name() << "->InputOfAny( "
-                     << aMacroGraph->GetNodeInPort( i )->PortName() << " , Value )" ) ;
+         // set coupled pair MacroNode <--> MacroGraph
+          aMacroGraphExe->CoupledNode( aMacroNode ) ;
+          aMacroNode->CoupledNode( aMacroGraphExe ) ;
+
+         // initialize MacroNode's InPorts with corresponding "external" values
+         int q ;
+         for ( q = 0 ; q < aMacroNode->GetNodeInPortsSize() ; q++ ) {
+           const GraphBase::InPort * anInPort = aMacroNode->GetNodeInPort( q ) ;
+           if ( anInPort->IsDataConnected() ) {
+             const char* aMacroGraphInPortName = aMacroGraph->GetNodeInPort( q )->PortName();
+             if ( !aMacroGraphExecutor->InputOfAny(  aMacroGraphInPortName, *anInPort->GetOutPort()->Value(),false ) ) {
+               return SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
+             }
+             else {
+               MESSAGE( "LoadDataFlows(Executor) " << aMacroGraph->Name() << "->InputOfAny( " 
+                         << aMacroGraphInPortName << " , Value )" ) ;
+             }
            }
-         }
-       } // end of init MacroNode's InPorts
+         } // end of init MacroNode's InPorts
 
-       aMacroGraphImpl->Run() ;
+         aMacroGraphImpl->Run() ;
 
-      }
-    } // end of for( get nodes of the graph...)
+        }
+      } // end of for( get nodes of the graph...)
+    }
   } // end of setting initial graph's structure..
 
   endService( "Graph_Impl::ExecutorLoadDataFlows" );
@@ -1733,9 +1732,9 @@ bool Graph_Impl::Begin() {
     }
     if ( DataFlowExecutor() ) {
       MESSAGE( "Graph_Impl::Begin " << DataFlowExecutor()->Threads() << " threads" )
-      if ( DataFlowExecutor()->Threads() ) {
-        DataFlowExecutor()->JoinedWait() ;
-      }
+//      if ( DataFlowExecutor()->Threads() ) {
+//        DataFlowExecutor()->JoinedWait() ;
+//      }
       delete DataFlowExecutor() ;
       DataFlowEditor()->Executor( NULL ) ;
     }
@@ -1766,7 +1765,7 @@ bool Graph_Impl::Begin() {
 bool Graph_Impl::Run() {
   beginService( "Graph_Impl::Run" );
   bool RetVal = false ;
-  if ( DataFlowEditor()->IsEditing() && !IsMacro() ) {
+  if ( ( DataFlowEditor()->IsEditing() || IsDone() ) && !IsMacro() ) {
     MESSAGE( "Graph_Impl::Run " << DataFlowEditor()->Graph()->Name() << " " << DataFlowEditor() << " IsEditing" );
     if ( DataFlowEditor()->Graph()->GraphMacroLevel() ) {
       MESSAGE( "Graph_Impl::Run " << DataFlowEditor()->Graph()->Name() << " GraphMacroLevel "
@@ -1784,12 +1783,14 @@ bool Graph_Impl::Run() {
       RetVal = CNode_Impl::Run() ;
     }
   }
-  else if ( !IsMacro() ) {
-    MESSAGE( "Graph_Impl::Run " << DataFlowEditor()->Graph()->Name() << " " << DataFlowEditor()
-             << " IsNOTEditing --> CNode_Impl::ReRun" );
-    DataFlowEditor()->Executing() ;
-    RetVal = CNode_Impl::ReRun() ;
-  }
+// It is necessary to reload the dataflow because of ports with input initial values changed
+// during execution to values of outport of EndLoopNode or GOTONode
+//  else if ( !IsMacro() && IsDone() ) {
+//    MESSAGE( "Graph_Impl::Run " << DataFlowEditor()->Graph()->Name() << " " << DataFlowEditor()
+//             << " IsNOTEditing --> CNode_Impl::ReRun" );
+//    DataFlowEditor()->Executing() ;
+//    RetVal = CNode_Impl::ReRun() ;
+//  }
   MESSAGE( "Graph_Impl::Run " << DataFlowEditor()->Graph()->Name() << " RetVal " << RetVal ) ;
   endService( "Graph_Impl::Run" );
   return RetVal ;
@@ -1797,22 +1798,35 @@ bool Graph_Impl::Run() {
 bool Graph_Impl::Start() {
   beginService( "Graph_Impl::Start" );
   bool RetVal = false ;
-  if ( !IsMacro() ) {
-    if ( DataFlowEditor()->IsEditing() ) {
-      MESSAGE( "Graph_Impl::Start IsEditing" );
-      RetVal = Begin() ;
+  if ( ( DataFlowEditor()->IsEditing() || IsDone() ) && !IsMacro() ) {
+    MESSAGE( "Graph_Impl::Start " << DataFlowEditor()->Graph()->Name() << " " << DataFlowEditor() << " IsEditing" );
+    if ( DataFlowEditor()->Graph()->GraphMacroLevel() ) {
+      MESSAGE( "Graph_Impl::Start " << DataFlowEditor()->Graph()->Name() << " GraphMacroLevel "
+               << DataFlowEditor()->Graph()->GraphMacroLevel() ) ;
+      RetVal = true ;
     }
     else {
-      RetVal = true ;
+      MESSAGE( "Graph_Impl::Start " << DataFlowEditor()->Graph()->Name() << " GraphMacroLevel "
+               << DataFlowEditor()->Graph()->GraphMacroLevel() << " --> Begin()" ) ;
+      RetVal = Begin() ;
     }
     if ( RetVal ) {
-      // Added by NKV to fix PAL6222 --> to be confirm by JR 
+      // Added by NKV to fix PAL6222 --> to be confirm by JR ; JR confirmed
       DataFlowEditor()->Executing() ;
       // End of NKV's correction
       MESSAGE( "Graph_Impl::(Re)Start " );
       RetVal = ReStart() ;
     }
   }
+// It is necessary to reload the dataflow because of ports with input initial values changed
+// during execution to values of outport of EndLoopNode or GOTONode
+//  else if ( !IsMacro() && IsDone() ) {
+//    MESSAGE( "Graph_Impl::Start " << DataFlowEditor()->Graph()->Name() << " " << DataFlowEditor()
+//             << " IsNOTEditing --> CNode_Impl::ReStart" );
+//    DataFlowEditor()->Executing() ;
+//    RetVal = CNode_Impl::ReStart() ;
+//  }
+  MESSAGE( "Graph_Impl::Start " << DataFlowEditor()->Graph()->Name() << " RetVal " << RetVal ) ;
   endService( "Graph_Impl::Start" );
   return RetVal ;
 }
index ce4f4677fee05eed871f55edd43c2b1657e1a743..d258747ee96bfcd54411c817827bd8e7782c9cd6 100644 (file)
@@ -91,12 +91,12 @@ void LNode_Impl::destroy() {
       aCoupled->destroy() ;
     }
   }
-//  endService( "LNode_Impl::Destroy" );
+  endService( "LNode_Impl::Destroy" );
 }
 
 bool LNode_Impl::Delete() {
   beginService( "LNode_Impl::Delete" );
-  bool RetVal = false ;
+  bool RetVal = false ;  
   if ( DataFlowEditor()->IsEditing() ) {
     DeletePorts() ;
     RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
index 315560d31748cd59010df5f8bf9068d97d70e927..6602d2c7fdc10d8db64bf54e941a1badf02e7bbd 100644 (file)
@@ -60,9 +60,9 @@ StreamGraph_Impl::StreamGraph_Impl( CORBA::ORB_ptr orb ,
                         GraphEditor::DataFlow * aDataFlowEditor ,
                         GraphEditor::InNode * aDataFlowNode ) :
   Graph_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , aDataFlowNode ) {
-  MESSAGE( aDataFlowNode->Name() << " " );
   beginService( "StreamGraph_Impl::StreamGraph_Impl" );
-  if ( aDataFlowNode->IsMacroNode() ) {
+  if ( aDataFlowEditor->Graph()->IsDataStreamNode() ||
+       ( aDataFlowNode && aDataFlowNode->IsMacroNode() ) ) {
     MESSAGE( "StreamGraph_Impl::StreamGraph_Impl _poa->activate_object" );
     _thisObj = this ;
     _id = _poa->activate_object(_thisObj);
index 7055d82d564e1f4bcc8983f51098d43494297456..613f6c6304ced8fb53af7e4f1f67f6ffb865999d 100644 (file)
@@ -37,6 +37,7 @@ except :
 import os
 import re
 from types import *
+import readline
 
 #try :
 #    SuperVision = SuperV_Swig( len(sys.argv) , sys.argv )
index e341afb5bd593346b2077efa82ea7fb7c6ceb86e..bdc6441acc5d954ef8bf0bdc3c34ef7bdc60eb6e 100644 (file)
@@ -15,12 +15,16 @@ try :
     from batchmode_salome import naming_service
     from batchmode_salome import CORBA
     from batchmode_salome import myStudy
+    import SALOME_ModuleCatalog
+    import SUPERV
+    import SUPERV_idl
 except :
     import curses
     from LifeCycleCORBA import *
     from SALOME_NamingServicePy import *
     import SUPERV
     import SUPERV_idl
+    import SALOME_ModuleCatalog
     from batchmode_salome import *
 #    try :
 #        from libSuperVision_Swig import SuperV_Swig
@@ -28,13 +32,15 @@ except :
 #    except :
 #        SuperV_Swig = None
     orb = CORBA.ORB_init([''], CORBA.ORB_ID)
+    #lcc = LifeCycleCORBA(orb)
     while lcc._catalog == None:
            lcc = LifeCycleCORBA(orb)
-    #lcc = LifeCycleCORBA(orb)
     naming_service = SALOME_NamingServicePy_i(orb)
 
+import os
 import re
 from types import *
+import readline
 import SALOMEDS
 import SALOMEDS_Attributes_idl
 #try :
@@ -47,7 +53,8 @@ import SALOMEDS_Attributes_idl
 #    print 'Supervision Component loaded'
                     
 SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
-SuperVision.Swig = 0
+#SuperVision.Swig = 0
+
 modulecatalog = None
 while modulecatalog == None:
        modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
@@ -244,6 +251,11 @@ class CNode:
         if self.N.IsFactory() :
             print "ComponentName ",self.N.GetComponentName()
             print "InterfaceName ",self.N.GetInterfaceName()
+        if self.N.IsStreamGraph() :
+            Timeout,DataStreamTrace,DeltaTime = self.G.StreamParams()
+            print "Timeout",Timeout
+            print "DataStreamTrace",DataStreamTrace
+            print "DeltaTime",DeltaTime
         aService = self.N.Service()
         print "Service Name  ",aService.ServiceName
         lenin = len( aService.ServiceinParameter )
@@ -304,6 +316,54 @@ class CNode:
 #        inp = Port( inp , self.N.Verbose )
 #        outp = Port( outp , self.N.Verbose )
 #        return sts,inp,outp
+    def InStreamPort( self , aParameterName , aParameterType , aDependency ):
+        aPort = self.N.InStreamPort( aParameterName , aParameterType , aDependency )
+        if aPort != None :
+            myPort = StreamPort( aPort , self.N.Verbose )
+            return myPort
+        if self.N.Verbose :
+            print "Error while creating the Port : ",aParameterName
+        return None
+    def OutStreamPort( self , aParameterName , aParameterType , aDependency ):
+        aPort = self.N.OutStreamPort( aParameterName , aParameterType , aDependency )
+        if aPort != None :
+            myPort = StreamPort( aPort , self.N.Verbose )
+            return myPort
+        if self.N.Verbose :
+            print "Error while creating the Port : ",aParameterName
+        return None
+    def GetInPort( self , aParameterName ):
+        aPort = self.N.GetInPort( aParameterName )
+        if aPort != None :
+            myPort = Port( aPort , self.N.Verbose )
+            return myPort
+        if self.N.Verbose :
+            print "Error while creating the Port : ",aParameterName
+        return None
+    def GetOutPort( self , aParameterName ):
+        aPort = self.N.GetOutPort( aParameterName )
+        if aPort != None :
+            myPort = Port( aPort , self.N.Verbose )
+            return myPort
+        if self.N.Verbose :
+            print "Error while creating the Port : ",aParameterName
+        return None
+    def GetInStreamPort( self , aParameterName ):
+        aPort = self.N.GetInStreamPort( aParameterName )
+        if aPort != None :
+            myPort = StreamPort( aPort , self.N.Verbose )
+            return myPort
+        if self.N.Verbose :
+            print "Error while creating the Port : ",aParameterName
+        return None
+    def GetOutStreamPort( self , aParameterName ):
+        aPort = self.N.GetOutStreamPort( aParameterName )
+        if aPort != None :
+            myPort = StreamPort( aPort , self.N.Verbose )
+            return myPort
+        if self.N.Verbose :
+            print "Error while creating the Port : ",aParameterName
+        return None
     def Ports( self ):
         ports = self.N.Ports()
         i = 0
@@ -311,13 +371,34 @@ class CNode:
             ports[ i ] = Port( ports[i] , self.N.Verbose )
             i = i + 1
         return ports
+    def StreamPorts( self ):
+        ports = self.N.StreamPorts()
+        i = 0
+        while i < len( ports ) :
+            ports[ i ] = StreamPort( ports[i] , self.N.Verbose )
+            i = i + 1
+        return ports
+    def AllPorts( self ):
+        allports = self.N.Ports()
+        lenports = len( allports )
+        i = 0
+        while i < lenports :
+            allports[ i ] = Port( allports[i] , self.N.Verbose )
+            i = i + 1
+        ports = self.N.StreamPorts()
+        i = 0
+        while i < len( ports ) :
+            allports.append( StreamPort( ports[i] , self.N.Verbose ) )
+            i = i + 1
+        return allports
     def ListPorts( self , *args ):
         if len( args ) == 0 :
             aName = self.N.Name()
         else :
             aName = args[ 0 ]
-        ports = self.N.Ports()
+        ports = self.AllPorts()
         listofports = ""
+        ilst = 0
         if len( ports ) :
             portsname = ports[ 0 ].Name()
             bs = portsname.find('\\')
@@ -325,9 +406,9 @@ class CNode:
                 portsname1,portsname2 = portsname.split('\\')
                 portsname = portsname1 + portsname2
             if ports[ 0 ].IsInput():
-                listofports = aName + 'In' + portsname
+                listofports = 'I' + aName + portsname
             else :
-                listofports = aName + 'Out' + portsname
+                listofports = 'O' + aName + portsname
             i = 1
             while i < len( ports ) :
                 portsname = ports[ i ].Name()
@@ -336,24 +417,32 @@ class CNode:
                     portsname1,portsname2 = portsname.split('\\')
                     portsname = portsname1 + portsname2
                 if ports[ i ].IsInput():
-                    listofports = listofports + ',' + aName + 'In' + portsname
+                    listofports = listofports + ',' + 'I' + aName + portsname
                 else :
-                    listofports = listofports + ',' + aName + 'Out' + portsname
+                    listofports = listofports + ',' + 'O' + aName + portsname
                 i = i + 1
         print listofports
         if len( ports ) == 1 :
-            listofports = "[" + listofports + "] = " + aName + ".Ports()"
+            listofports = "[" + listofports + "] = " + aName + ".AllPorts()"
         else :
-            listofports = listofports + " = " + aName + ".Ports()"
+            listofports = listofports + " = " + aName + ".AllPorts()"
         return listofports
     def PrintPorts( self ):
-        ports = self.N.Ports()
+        ports = self.AllPorts()
         i = 0
         while i < len( ports ) :
             Direction = "Out"
             if ports[ i ].IsInput() :
                 Direction = "In"
-            print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString()
+            if ( ports[ i ].IsDataStream() ) & ( self.N.IsStreamGraph() == 0 ) :
+                if ports[ i ].IsInput() :
+                    sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation = ports[ i ].Params()
+                    print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString(),ports[ i ].Dependency(),aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation
+                else :
+                    numberofvalues = ports[ i ].NumberOfValues()
+                    print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString(),ports[ i ].Dependency(),'NumberOfValues',numberofvalues
+            else :
+                print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString()
             i = i + 1
     def Links( self ) :
         links = self.N.Links()
@@ -362,14 +451,66 @@ class CNode:
             links[ i ] = Link( links[i] , self.N.Verbose )
             i = i + 1
         return links
+    def StreamLinks( self ) :
+        links = self.N.StreamLinks()
+        i = 0
+        while i < len( links ) :
+            links[ i ] = StreamLink( links[i] , self.N.Verbose )
+            i = i + 1
+        return links
+    def AllLinks( self ) :
+        alllinks = self.N.Links()
+        lenlinks = len( alllinks )
+        i = 0
+        while i < lenlinks :
+            alllinks[ i ] = Link( alllinks[i] , self.N.Verbose )
+            i = i + 1
+        links = self.N.StreamLinks()
+        i = 0
+        while i < len( links ) :
+            alllinks.append( StreamLink( links[i] , self.N.Verbose ) )
+            i = i + 1
+        return alllinks
+    def ListLinks( self , *args ):
+        links = self.AllLinks()
+        if len( links ) :
+            listoflinks = 'L' + links[ 0 ].OutPort().Node().Name()
+            listoflinks = listoflinks + links[ 0 ].OutPort().Name()
+            listoflinks = listoflinks + links[ 0 ].InPort().Node().Name()
+            listoflinks = listoflinks + links[ 0 ].InPort().Name()
+            i = 1
+            while i < len( links ) :
+                listoflinks = listoflinks + ',' + 'L' + links[ i ].OutPort().Node().Name()
+                listoflinks = listoflinks + links[ i ].OutPort().Name()
+                listoflinks = listoflinks + links[ i ].InPort().Node().Name()
+                listoflinks = listoflinks + links[ i ].InPort().Name()
+                i = i + 1
+        print listoflinks
+        if len( args ) == 0 :
+            aName = self.N.Name()
+        else :
+            aName = args[ 0 ]
+        if len( links ) == 1 :
+            listoflinks = "[" + listoflinks + "] = " + aName + ".AllLinks()"
+        else :
+            listoflinks = listoflinks + " = " + aName + ".AllLinks()"
+        return listoflinks
     def PrintLinks( self ):
-        links = self.Links()
+        links = self.AllLinks()
         i = 0
         while i < len( links ) :
             links[i].Print()
             i = i + 1
+    def IsStreamGraph( self ):
+        return self.N.IsStreamGraph()
     def IsGraph( self ):
         return self.N.IsGraph()
+    def IsMacro( self ):
+        return self.N.IsMacro()
+    def IsFlowMacro( self ):
+        return self.N.IsFlowMacro()
+    def IsStreamMacro( self ):
+        return self.N.IsStreamMacro()
     def IsComputing( self ):
         return self.N.IsComputing()
     def IsFactory( self ):
@@ -386,8 +527,12 @@ class CNode:
         return self.N.IsSwitch()
     def IsEndSwitch( self ):
         return self.N.IsEndSwitch()
+    def GraphLevel( self ) :
+        return self.N.GraphLevel()
     def SubGraph( self ):
         return self.N.SubGraph()
+    def SubStreamGraph( self ):
+        return self.N.SubStreamGraph()
     def Thread( self ):
         return self.N.Thread()
     def IsWaiting( self ):
@@ -510,10 +655,6 @@ class INode(CNode):
         return self.N.PyFunction()
     def PyFuncName( self ):
         return self.N.PyFuncName()
-    def EPyFunc( self ):
-        PyFunc = self.N.PyFunction()
-        PyFunc = self.Edit( self.N.PyFuncName() , PyFunc )
-        self.N.SetPyFunction( self.N.PyFuncName() , PyFunc )
     def InPort( self , aParameterName , aParameterType ):
         aPort = self.N.InPort( aParameterName ,
                              aParameterType )
@@ -532,6 +673,10 @@ class INode(CNode):
         if self.N.Verbose :
             print "Error while creating the Port : ",aParameterName
         return None
+    def EPyFunc( self ):
+        PyFunc = self.N.PyFunction()
+        PyFunc = self.Edit( self.N.PyFuncName() , PyFunc )
+        self.N.SetPyFunction( self.N.PyFuncName() , PyFunc )
 
 ##########################################################
 class GNode(INode):
@@ -626,7 +771,7 @@ class ESNode(GNode):
 #        self.Parametername = aServicesParameter.Parametername
 
 ##########################################################
-class Graph(INode):
+class Graph(GNode):
 ##########################################################
     def __init__( self , aName ):
         try:
@@ -635,8 +780,14 @@ class Graph(INode):
             try:
                 graph = aName.G.Copy()
             except:
-                graph = None
+                graph = aName
         if graph != None :
+            if graph.IsStreamGraph() :
+                aGraph = graph.ToStreamGraph()
+                if aGraph != None :
+                    graph = StreamGraph( aGraph )
+                else :
+                    print "Graph creation failed"
             self.G = graph
             self.G.Verbose = 1
             self.N = graph
@@ -661,14 +812,14 @@ class Graph(INode):
             print ErrMsg
         return aNode
     def Node( self , aComponent , anInterface , aService ):
-        if SuperVision.Swig :
-            aService = Service_Swig( aService )
+        #if SuperVision.Swig :
+            #aService = Service_Swig( aService )
         return self.FNode( aComponent , anInterface , aService )
     def FNode( self , aComponent , anInterface , aService ):
         NodeComponent = modulecatalog.GetComponent( aComponent )
         aService = NodeComponent.GetService( anInterface , aService )
-        if SuperVision.Swig :
-            aService = Service_Swig( aService )
+        #if SuperVision.Swig :
+            #aService = Service_Swig( aService )
         aNode = self.G.FNode( aComponent , anInterface , aService )
         if aNode != None :
             myNode = FNode( aNode , self.G.Verbose )
@@ -787,6 +938,36 @@ class Graph(INode):
 #        if self.G.Verbose :
 #            print ErrMsg
 #        return aNode
+    def MNode( self , aGraphXml ):
+        aMNode = self.G.MNode( aGraphXml )
+        if aMNode != None :
+            myMNode = MNode( aMNode , self.G.Verbose )
+            return myMNode
+        ErrMsg = "Failed to create a MNode"
+        if self.G.Verbose :
+            print ErrMsg
+        return aMNode
+    def GraphMNode( self , aGraph ):
+        aGraphMNode = self.G.GraphMNode( aGraph.G )
+        if aGraphMNode != None :
+            myMNode = MNode( aGraphMNode , self.G.Verbose )
+            return myMNode
+        ErrMsg = "Failed to create a MNode"
+        if self.G.Verbose :
+            print ErrMsg
+        return aGraphMNode
+    def FlowObjRef( self ) :
+        aGraph = self.G.FlowObjRef()
+        if aGraph != None :
+            myGraph = Graph( aGraph )
+            return myGraph
+        return aGraph
+    def StreamObjRef( self ) :
+        aGraph = self.G.StreamObjRef()
+        if aGraph != None :
+            myGraph = StreamGraph( aGraph )
+            return myGraph
+        return aGraph
     def PrintService( self , aComponent , anInterface , aService ):
         NodeComponent = modulecatalog.GetComponent( aComponent )
         aService = NodeComponent.GetService( anInterface , aService )
@@ -832,7 +1013,7 @@ class Graph(INode):
         return self.G.LevelMax()
     def ThreadsMax( self ):
         return self.G.ThreadsMax()
-    def GraphsNumber( self ):
+    def SubGraphsNumber( self ):
         return self.G.SubGraphsNumber()
     def LevelNodes( self , aLevel ):
         nodes = self.G.LevelNodes( aLevel )
@@ -941,6 +1122,12 @@ class Graph(INode):
             pynodes.append( GNode( nodes.ESNodes[i] , self.G.Verbose ) )
             i = i + 1
             j = j + 1
+        n = len( nodes.Graphs )
+        i = 0
+        while i < n :
+            pynodes.append( MNode( nodes.Graphs[i] , self.G.Verbose ) )
+            i = i + 1
+            j = j + 1
         return pynodes
     def ListNodes( self , *args ):
         nodes = self.Nodes()
@@ -967,29 +1154,56 @@ class Graph(INode):
         i = 0
         while i < n :
             print ' '
-            nodes[i].Print()
+            nodes[ i ].Print()
             i = i + 1
     def PrintThreads( self ):
         nodes = self.Nodes()
         i = 0
         while i < len( nodes ) :
-            print nodes[i].Name(),nodes[i].Thread(),nodes[i].State(),nodes[i].Control()
+            print nodes[i].Name(),nodes[i].Thread(),nodes[i].State(),nodes[i].Control(),nodes[i]
             i = i + 1
     def GLinks( self ):
         links = self.G.GLinks()
         i = 0
-        while i < len( links ) :
+        linkslen = len( links )
+        #print 'GLinks ',linkslen,'Links'
+        while i < linkslen :
             links[ i ] = Link( links[i] , self.G.Verbose )
             i = i + 1
-        return links
+    def GStreamLinks( self ):
+        streamlinks = self.G.GStreamLinks()
+        i = 0 
+        #print 'GStreamLinks ',len( streamlinks ),'StreamLinks'
+        while i < len( streamlinks ) :
+            streamlinks[ i ] = StreamLink( streamlinks[i] , self.G.Verbose )
+            i = i + 1
+        return streamlinks
+    def GAllLinks( self ) :
+        alllinks = self.G.GLinks()
+        lenlinks = len( alllinks )
+        i = 0
+        while i < lenlinks :
+            alllinks[ i ] = Link( alllinks[i] , self.N.Verbose )
+            i = i + 1
+        links = self.G.StreamLinks()
+        j = 0
+        while j < len(links) :
+            alllinks.append( StreamLink( links[j] , self.N.Verbose ) )
+            i = i + 1
+            j = j + 1
+        return alllinks
     def ListLinks( self , *args ):
-        links = self.G.GLinks()
+        links = self.GAllLinks()
         if len( links ) :
-            listoflinks = links[ 0 ].InPort().Node().Name()
+            listoflinks = 'L' + links[ 0 ].OutPort().Node().Name()
+            listoflinks = listoflinks + links[ 0 ].OutPort().Name()
+            listoflinks = listoflinks + links[ 0 ].InPort().Node().Name()
             listoflinks = listoflinks + links[ 0 ].InPort().Name()
             i = 1
             while i < len( links ) :
-                listoflinks = listoflinks + ',' + links[ i ].InPort().Node().Name()
+                listoflinks = listoflinks + ',' + 'L' + links[ i ].OutPort().Node().Name()
+                listoflinks = listoflinks + links[ i ].OutPort().Name()
+                listoflinks = listoflinks + links[ i ].InPort().Node().Name()
                 listoflinks = listoflinks + links[ i ].InPort().Name()
                 i = i + 1
         print listoflinks
@@ -998,18 +1212,18 @@ class Graph(INode):
         else :
             aName = args[ 0 ]
         if len( links ) == 1 :
-            listoflinks = "[" + listoflinks + "] = " + aName + ".GLinks()"
+            listoflinks = "[" + listoflinks + "] = " + aName + ".GAllLinks()"
         else :
-            listoflinks = listoflinks + " = " + aName + ".GLinks()"
+            listoflinks = listoflinks + " = " + aName + ".GAllLinks()"
         return listoflinks
     def PrintLinks( self ):
-        links = self.G.GLinks()
+        links = self.GAllLinks()
         i = 0
         while i < len( links ) :
-            Link( links[ i ] , self.G.Verbose ).Print()
+            links[ i ].Print()
             i = i + 1
-    def Graphs( self ):
-        graphs = self.G.Graphs()
+    def SubGraphsNodes( self , ):
+        graphs = self.G.SubGraphsNodes()
         outgraphs = graphs
         i = 0
         while i < len( graphs ) :
@@ -1026,6 +1240,14 @@ class Graph(INode):
         if self.G.Verbose :
             print ErrMsg
         return aCopy
+    def ToStreamGraph( self ):
+        aGraph = self.G.ToStreamGraph()
+        if aGraph != None :
+            return StreamGraph( aGraph )
+        return None
+    def SubGraphsNodes( self , aSubGraphsNumber ):
+        nodes = self.G.SubGraphsNodes( aSubGraphsNumber )
+        return self.nodesTuple( nodes )
     def Merge( self , aGraph ):
         return self.G.Merge( aGraph.G )
     def Destroy( self ):
@@ -1040,6 +1262,81 @@ class GraphE(Graph):
         self.G.Verbose = 1
         self.N = graph
         self.N.Verbose = 1
+    def ToStreamGraph( self ):
+        aGraph = self.G.ToStreamGraph()
+        if aGraph != None :
+            return StreamGraphE( aGraph )
+        return None
+
+##########################################################
+class MNode(Graph):
+##########################################################
+    def __init__( self , aMNode , Verbose ):
+        self.G = aMNode
+        self.G.Verbose = Verbose
+        self.N = aMNode
+        self.N.Verbose = Verbose
+
+##########################################################
+class StreamGraph(Graph):
+##########################################################
+    def __init__( self , aName ):
+        try:
+            graph = SuperVision.StreamGraph( aName )
+        except:
+            try:
+                graph = aName.G.StreamCopy()
+            except:
+                graph = aName
+        if graph != None :
+            self.G = graph
+            self.G.Verbose = 1
+            self.N = graph
+            self.N.Verbose = 1
+        else :
+            print "StreamGraph creation failed"
+    def StreamCopy( self ):
+        aCopy = self.G.StreamCopy()
+        if aCopy != None:
+            myCopy = StreamGraph( aCopy )
+            return myCopy
+        ErrMsg = "Failed to get a Copy of " + self.G.Name()
+        if self.G.Verbose :
+            print ErrMsg
+        return aCopy
+    def StreamLink( self , anOutStreamPort , anInStreamPort ) :
+        aStreamLink = self.G.StreamLink( anOutStreamPort.P , anInStreamPort.P )
+        if aStreamLink!= None:
+            myStreamLink = StreamLink( aStreamLink , self.G.Verbose )
+            return myStreamLink
+        ErrMsg = "Failed to make a StreamLink in " + self.G.Name()
+        if self.G.Verbose :
+            print ErrMsg
+        return aStreamLink        
+    def SetStreamParams( self , Timeout , DataStreamTrace , DeltaTime ):
+        return self.G.SetStreamParams( Timeout , DataStreamTrace , DeltaTime )
+    def StreamParams( self ):
+        Timeout,DataStreamTrace,DeltaTime = self.G.StreamParams()
+        return Timeout,DataStreamTrace,DeltaTime
+    def ToFlowGraph( self ):
+        return self.G.ToFlowGraph()
+    def SubStreamGraphsNumber( self ):
+        return self.G.SubStreamGraphsNumber()
+    def SubStreamGraphsNodes( self , aSubStreamGraphsNumber ):
+        nodes = self.G.SubStreamGraphsNodes( aSubStreamGraphsNumber )
+        return self.nodesTuple( nodes )
+    def StreamMerge( self , aStreamGraph ):
+        return self.G.StreamMerge( aStreamGraph.G )
+
+##########################################################
+class StreamGraphE(StreamGraph):
+##########################################################
+    def __init__( self , aName ):
+        graph = SuperVision.StreamGraphE( aName )
+        self.G = graph
+        self.G.Verbose = 1
+        self.N = graph
+        self.N.Verbose = 1
 
 ##########################################################
 class Value:
@@ -1134,6 +1431,8 @@ class Port:
         return self.P.IsSwitch()
     def IsEndSwitch( self ):
         return self.P.IsEndSwitch()
+    def IsDataStream( self ):
+        return self.P.IsDataStream()
 #    def IsBus( self ):
 #        return self.P.IsBus()
     def Done( self ):
@@ -1155,6 +1454,28 @@ class Port:
     def Destroy( self ):
         self.P.destroy()
 
+##########################################################
+class StreamPort(Port):
+##########################################################
+    def __init__( self , aPort , Verbose ):
+        self.P = aPort
+        self.P.Verbose = Verbose
+    def StreamLink( self ) :
+        return self.P.StreamLink()
+    def Dependency( self ) :
+        return self.P.Dependency()
+    def SetDependency( self , aDependency ) :
+        return self.P.SetDependency( aDependency )
+    def Params( self ) :
+        sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation = self.P.Params()
+        return sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation
+    def SetParams( self , aKindOfSchema , aKindOfInterpolation , aKindOfExtrapolation ) :
+        return self.P.SetParams( aKindOfSchema , aKindOfInterpolation , aKindOfExtrapolation )
+    def NumberOfValues( self ) :
+        return self.P.NumberOfValues()
+    def SetNumberOfValues( self , aNumberOfValues ) :
+        return self.P.SetNumberOfValues( aNumberOfValues )
+
 ##########################################################
 class Link:
 ##########################################################
@@ -1179,8 +1500,17 @@ class Link:
         return None
     def Print( self ):
         anOutPort = self.L.OutPort()
+        anOutPortName = anOutPort.Name()
+        anOutPortKind = anOutPort.Kind()
+        anOutPortValue = anOutPort.ToString()
+        anOutNode = anOutPort.Node()
+        anOutNodeName = anOutNode.Name()
         anInPort = self.L.InPort()
-        print anOutPort.Node().Name(),'(',anOutPort.Name(),' ',anOutPort.Kind(),') =',anOutPort.ToString(),' --> ',anInPort.Node().Name(),'(',anInPort.Name(),')',' ',anInPort.Kind()
+        anInPortName = anInPort.Name()
+        anInPortKind = anInPort.Kind()
+        anInNode = anInPort.Node()
+        anInNodeName = anInNode.Name()
+        print anOutNodeName,'(',anOutPortName,' ',anOutPortKind,') =',anOutPortValue,' --> ',anInNodeName,'(',anInPortName,')',' ',anInPortKind
     def CoordsSize( self ):
         return self.L.CoordsSize()
     def AddCoord( self , index , X , Y ):
@@ -1195,3 +1525,26 @@ class Link:
         self.L.destroy()
 
 
+
+##########################################################
+class StreamLink(Link):
+##########################################################
+    def __init__( self , aLink , Verbose ):
+        self.L = aLink
+        self.L.Verbose = Verbose
+    def OutStreamPort( self ):
+        aPort = self.L.OutStreamPort()
+        if aPort != None :
+            myPort = StreamPort( aPort , self.L.Verbose )
+            return myPort
+        if self.L.Verbose :
+            print "Error while getting the Port : "
+        return None
+    def InStreamPort( self ):
+        aPort = self.L.InStreamPort()
+        if aPort != None :
+            myPort = StreamPort( aPort , self.L.Verbose )
+            return myPort
+        if self.L.Verbose :
+            print "Error while getting the Port : "
+        return None