]> Creatis software - creaRigidRegistration.git/commitdiff
Feature #1727
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Fri, 26 Oct 2012 13:16:32 +0000 (13:16 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Fri, 26 Oct 2012 13:16:32 +0000 (13:16 +0000)
Comparing 2 Images ComplexBox in Registration 3D

PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg
PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs

index de6a7e220f6ce7da2e54071ec31f00bf54685791..fce7c38096af2b89b3873ea8bc2be3c8a5540360 100644 (file)
@@ -1,5 +1,5 @@
 # ----------------------------------
-# - BBTKGEditor v 1.2 BBG BlackBox Diagram file
+# - BBTKGEditor v 1.4 BBG BlackBox Diagram file
 # - /Users/davila/Creatis/All5/creatools_source/creaRigidRegistration/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg
 # ----------------------------------
 
@@ -8,28 +8,29 @@ CATEGORY:example
 DESCRIPTION:Recalage3D 1-point
 AUTHOR:info-dev@creatis.insa-lyon.fr
 COMPLEXBOX:FALSE
-BOXES:22
+COMPLEXINPUTS:0
+BOXES:36
 BOX
 creaMaracasVisu:ViewerNV:viewer
 ISEXEC:FALSE
-90.360135:-42.468343:900.000000
-151.000135:-52.468343:900.000000
+90.360135:-42.468343:-900.000000
+151.000135:-52.468343:-900.000000
 PORT
 nTypeView:"5"
 FIN_BOX
 BOX
 creaMaracasVisu:ViewerNV:viewer2
 ISEXEC:FALSE
--47.024134:-12.908709:900.000000
-13.615866:-22.908709:900.000000
+-47.024134:-12.908709:-900.000000
+13.615866:-22.908709:-900.000000
 PORT
 nTypeView:"5"
 FIN_BOX
 BOX
 wx:Slider:sdrAngleX
 ISEXEC:FALSE
--105.651195:-72.615731:900.000000
--54.251195:-82.615731:900.000000
+-153.088264:-26.096799:-900.000000
+-101.688264:-36.096799:-900.000000
 PORT
 In:"0"
 PORT
@@ -37,15 +38,13 @@ Max:"180"
 PORT
 Min:"-180"
 PORT
-ReactiveOnTrack:"true"
-PORT
 Title:"Rotation angle in X Axis"
 FIN_BOX
 BOX
 wx:Slider:sdrAngleY
 ISEXEC:FALSE
--128.173652:-36.516009:900.000000
--76.773652:-46.516009:900.000000
+-124.807150:-48.145742:-900.000000
+-73.407150:-58.145742:-900.000000
 PORT
 In:"0"
 PORT
@@ -53,15 +52,13 @@ Max:"180"
 PORT
 Min:"-180"
 PORT
-ReactiveOnTrack:"true"
-PORT
 Title:"Rotation angle in Y Axis"
 FIN_BOX
 BOX
 wx:Slider:sdrAngleZ
 ISEXEC:FALSE
-11.379897:-45.700867:900.000000
-62.779897:-55.700867:900.000000
+-122.668078:-72.632880:-900.000000
+-71.268078:-82.632880:-900.000000
 PORT
 In:"0"
 PORT
@@ -69,15 +66,13 @@ Max:"180"
 PORT
 Min:"-180"
 PORT
-ReactiveOnTrack:"true"
-PORT
 Title:"Rotation angle in Z Axis"
 FIN_BOX
 BOX
 wx:Slider:sdrScaleX
 ISEXEC:FALSE
--237.075654:-45.586714:900.000000
--185.675654:-55.586714:900.000000
+-238.911928:-38.853711:-900.000000
+-187.511928:-48.853711:-900.000000
 PORT
 In:"100"
 PORT
@@ -85,15 +80,13 @@ Max:"300"
 PORT
 Min:"10"
 PORT
-ReactiveOnTrack:"true"
-PORT
 Title:"Scale in X Axis"
 FIN_BOX
 BOX
 wx:Slider:sdrScaleY
 ISEXEC:FALSE
--256.813675:-85.339132:900.000000
--205.413675:-95.339132:900.000000
+-251.610900:-55.346663:-900.000000
+-200.210900:-65.346663:-900.000000
 PORT
 In:"100"
 PORT
@@ -101,15 +94,13 @@ Max:"300"
 PORT
 Min:"10"
 PORT
-ReactiveOnTrack:"true"
-PORT
 Title:"Scale in Y Axis"
 FIN_BOX
 BOX
 wx:Slider:sdrScaleZ
 ISEXEC:FALSE
--184.520956:-37.861589:900.000000
--133.120956:-47.861589:900.000000
+-221.246429:-71.526605:-900.000000
+-169.846429:-81.526605:-900.000000
 PORT
 In:"100"
 PORT
@@ -117,53 +108,51 @@ Max:"300"
 PORT
 Min:"10"
 PORT
-ReactiveOnTrack:"true"
-PORT
 Title:"Scale in Z Axis"
 FIN_BOX
 BOX
 PackRecalage:Transform3D1PointBox:transform
 ISEXEC:FALSE
--82.895553:-211.980656:900.000000
--11.720553:-221.980656:900.000000
+-82.895553:-211.980656:-900.000000
+-11.720553:-221.980656:-900.000000
 FIN_BOX
 BOX
 PackRecalage:ReSlicerBox:reslicer
 ISEXEC:FALSE
-36.901778:-161.414847:900.000000
-82.476778:-171.414847:900.000000
+9.868770:-240.662296:-900.000000
+55.443770:-250.662296:-900.000000
 FIN_BOX
 BOX
 std:MultipleInputs:mult
 ISEXEC:FALSE
-34.133463:-99.687937:900.000000
-79.708463:-109.687937:900.000000
+34.133463:-99.687937:-900.000000
+79.708463:-109.687937:-900.000000
 FIN_BOX
 BOX
 std:MultipleInputs:mult2
 ISEXEC:FALSE
--252.787883:-121.560922:900.000000
--207.212883:-131.560922:900.000000
+-306.113269:-114.895249:-900.000000
+-260.538269:-124.895249:-900.000000
 FIN_BOX
 BOX
 std:MultipleInputs:mult3
 ISEXEC:FALSE
--28.715453:-141.266703:900.000000
-16.859547:-151.266703:900.000000
+-7.207547:-159.189958:-900.000000
+38.367453:-169.189958:-900.000000
 FIN_BOX
 BOX
 creaMaracasVisu:ViewerNV:viewerResult
 ISEXEC:FALSE
-46.286271:-334.890606:900.000000
-106.926271:-344.890606:900.000000
+225.201963:-265.292080:-900.000000
+285.841963:-275.292080:-900.000000
 PORT
 nTypeView:"5"
 FIN_BOX
 BOX
 wx:LayoutSplit:imagesLayout
 ISEXEC:FALSE
-29.799055:-289.038465:900.000000
-75.374055:-299.038465:900.000000
+-40.421850:-472.113974:-900.000000
+5.153150:-482.113974:-900.000000
 PORT
 Orientation:"v"
 PORT
@@ -172,56 +161,162 @@ FIN_BOX
 BOX
 wx:LayoutLine:toolsLayout
 ISEXEC:FALSE
--201.316787:-213.929071:900.000000
--143.756787:-223.929071:900.000000
+-270.366796:-208.839533:-900.000000
+-212.806796:-218.839533:-900.000000
 PORT
 Orientation:"v"
+PORT
+WinTitle:"Rotation"
 FIN_BOX
 BOX
 wx:LayoutSplit:resultLayout
 ISEXEC:FALSE
--43.885881:-366.917898:900.000000
-1.689119:-376.917898:900.000000
-PORT
-Orientation:"v"
+41.826255:-473.243255:-900.000000
+87.401255:-483.243255:-900.000000
 PORT
-Proportion:"60"
+Proportion:"70"
 FIN_BOX
 BOX
 wx:LayoutSplit:main
 ISEXEC:TRUE
--3.559422:-406.128515:900.000000
-42.015578:-416.128515:900.000000
+-3.260949:-500.894082:-900.000000
+42.314051:-510.894082:-900.000000
 PORT
 Orientation:"h"
 PORT
-Proportion:"50"
+Proportion:"25"
+PORT
+WinHeight:"800"
+PORT
+WinWidth:"1200"
 FIN_BOX
 BOX
 vtk:vtkImageDataPointerRelay:Box22
 ISEXEC:FALSE
--80.407015:12.725826:900.000000
--9.232015:2.725826:900.000000
+-80.407015:12.725826:-900.000000
+-9.232015:2.725826:-900.000000
 FIN_BOX
 BOX
 vtk:vtkImageDataPointerRelay:Box23
 ISEXEC:FALSE
-85.109556:15.417152:900.000000
-156.284556:5.417152:900.000000
+78.836417:-15.052381:-900.000000
+150.011417:-25.052381:-900.000000
 FIN_BOX
 BOX
 creaImageIO:ImagesChooserDialogBox:Box24
 ISEXEC:FALSE
--44.746941:47.713068:900.000000
-26.428059:37.713068:900.000000
+-44.746941:47.713068:-900.000000
+26.428059:37.713068:-900.000000
 FIN_BOX
 BOX
 creaImageIO:ImagesChooserDialogBox:Box25
 ISEXEC:FALSE
-66.270272:48.049484:900.000000
-137.445272:38.049484:900.000000
+66.270272:48.049484:-900.000000
+137.445272:38.049484:-900.000000
+FIN_BOX
+BOX
+wx:LayoutTab:Box26
+ISEXEC:FALSE
+75.709436:-446.477577:-900.000000
+133.269436:-456.477577:-900.000000
+PORT
+WinTitle:"2D-Compare"
+FIN_BOX
+BOX
+PackRecalage:CompareImagesWidget:Box27
+ISEXEC:FALSE
+30.818476:-420.063285:-900.000000
+101.993476:-430.063285:-900.000000
+PORT
+WinTitle:"2D-Comparing"
+FIN_BOX
+BOX
+wx:LayoutSplit:Box28
+ISEXEC:FALSE
+199.046104:-426.771380:-900.000000
+244.621104:-436.771380:-900.000000
+PORT
+Orientation:"H"
+PORT
+Proportion:"50"
+PORT
+WinTitle:"3D-Comparing"
+FIN_BOX
+BOX
+wx:LayoutLine:Box29
+ISEXEC:FALSE
+135.414196:-398.280657:-900.000000
+192.974196:-408.280657:-900.000000
+FIN_BOX
+BOX
+wxvtk:IsoSurfaceWidget:Box30
+ISEXEC:FALSE
+114.262492:-316.339524:-900.000000
+159.837492:-326.339524:-900.000000
+PORT
+Title:"Reference image"
+FIN_BOX
+BOX
+wxvtk:IsoSurfaceWidget:Box31
+ISEXEC:FALSE
+187.729941:-322.707814:-900.000000
+233.304941:-332.707814:-900.000000
+PORT
+Title:"Registration image"
+FIN_BOX
+BOX
+wx:LayoutTab:Box32
+ISEXEC:FALSE
+-168.261119:-240.028813:-900.000000
+-110.701119:-250.028813:-900.000000
+FIN_BOX
+BOX
+wx:LayoutLine:Box33
+ISEXEC:FALSE
+-207.303357:-208.910096:-900.000000
+-149.743357:-218.910096:-900.000000
+PORT
+WinTitle:"Scale"
+FIN_BOX
+BOX
+wx:Slider:TranslateZ
+ISEXEC:FALSE
+-178.833568:35.008744:-900.000000
+-127.433568:25.008744:-900.000000
+FIN_BOX
+BOX
+wx:Slider:TranslateY
+ISEXEC:FALSE
+-198.558287:50.632292:-900.000000
+-147.158287:40.632292:-900.000000
+FIN_BOX
+BOX
+wx:Slider:TranslateX
+ISEXEC:FALSE
+-220.976208:67.939091:-900.000000
+-169.576208:57.939091:-900.000000
+FIN_BOX
+BOX
+wx:LayoutLine:Box37
+ISEXEC:FALSE
+-144.549789:-208.672448:-900.000000
+-86.989789:-218.672448:-900.000000
+PORT
+WinTitle:"Translate"
+FIN_BOX
+BOX
+wx:LayoutTab:Box38
+ISEXEC:FALSE
+134.239380:-364.807837:-900.000000
+191.799380:-374.807837:-900.000000
 FIN_BOX
-CONNECTIONS:40
+BOX
+wx:LayoutTab:Box39
+ISEXEC:FALSE
+71.124395:-366.016312:-900.000000
+128.684395:-376.016312:-900.000000
+FIN_BOX
+CONNECTIONS:62
 CONNECTION
 viewer2:Point:transform:CenterPoint
 NumberOfControlPoints:0
@@ -307,39 +402,105 @@ CONNECTION
 sdrAngleZ:Widget:toolsLayout:Widget3
 NumberOfControlPoints:0
 CONNECTION
-sdrScaleX:Widget:toolsLayout:Widget4
+imagesLayout:Widget:main:Widget1
 NumberOfControlPoints:0
 CONNECTION
-sdrScaleY:Widget:toolsLayout:Widget5
+resultLayout:Widget:main:Widget2
 NumberOfControlPoints:0
 CONNECTION
-sdrScaleZ:Widget:toolsLayout:Widget6
+Box22:Out:viewer2:In
 NumberOfControlPoints:0
 CONNECTION
-viewerResult:Widget:resultLayout:Widget1
+Box22:Out:reslicer:In
 NumberOfControlPoints:0
 CONNECTION
-toolsLayout:Widget:resultLayout:Widget2
+Box24:Out:Box22:In
 NumberOfControlPoints:0
 CONNECTION
-imagesLayout:Widget:main:Widget1
+Box23:Out:viewer:In
 NumberOfControlPoints:0
 CONNECTION
-resultLayout:Widget:main:Widget2
+Box25:Out:Box23:In
 NumberOfControlPoints:0
 CONNECTION
-Box22:Out:viewer2:In
+Box27:Widget:Box26:Widget2
 NumberOfControlPoints:0
 CONNECTION
-Box22:Out:reslicer:In
+Box26:Widget:resultLayout:Widget1
 NumberOfControlPoints:0
 CONNECTION
-Box24:Out:Box22:In
+reslicer:Out:Box27:In2
 NumberOfControlPoints:0
 CONNECTION
-Box23:Out:viewer:In
+Box23:Out:Box27:In1
 NumberOfControlPoints:0
 CONNECTION
-Box25:Out:Box23:In
+viewerResult:Widget:Box28:Widget2
+NumberOfControlPoints:0
+CONNECTION
+Box28:Widget:Box26:Widget1
+NumberOfControlPoints:0
+CONNECTION
+Box29:Widget:Box28:Widget1
+NumberOfControlPoints:0
+CONNECTION
+sdrScaleX:Widget:Box33:Widget1
+NumberOfControlPoints:0
+CONNECTION
+sdrScaleY:Widget:Box33:Widget2
+NumberOfControlPoints:0
+CONNECTION
+sdrScaleZ:Widget:Box33:Widget3
+NumberOfControlPoints:0
+CONNECTION
+Box33:Widget:Box32:Widget2
+NumberOfControlPoints:0
+CONNECTION
+toolsLayout:Widget:Box32:Widget1
+NumberOfControlPoints:0
+CONNECTION
+Box32:Widget:resultLayout:Widget2
+NumberOfControlPoints:0
+CONNECTION
+TranslateX:Widget:Box37:Widget1
+NumberOfControlPoints:0
+CONNECTION
+TranslateY:Widget:Box37:Widget2
+NumberOfControlPoints:0
+CONNECTION
+TranslateZ:Widget:Box37:Widget3
+NumberOfControlPoints:0
+CONNECTION
+Box37:Widget:Box32:Widget3
+NumberOfControlPoints:0
+CONNECTION
+Box31:Widget:Box38:Widget2
+NumberOfControlPoints:0
+CONNECTION
+Box38:Widget:Box29:Widget2
+NumberOfControlPoints:0
+CONNECTION
+Box39:Widget:Box29:Widget1
+NumberOfControlPoints:0
+CONNECTION
+Box30:Widget:Box39:Widget1
+NumberOfControlPoints:0
+CONNECTION
+Box23:Out:Box30:In
+NumberOfControlPoints:0
+CONNECTION
+viewerResult:Renderer1:Box30:vtkRenderer
+NumberOfControlPoints:0
+CONNECTION
+Box30:BoxChange:mult3:In3
+NumberOfControlPoints:0
+CONNECTION
+viewerResult:Renderer1:Box31:vtkRenderer
+NumberOfControlPoints:0
+CONNECTION
+Box31:BoxChange:mult3:In4
+NumberOfControlPoints:0
+CONNECTION
+reslicer:Out:Box31:In
 NumberOfControlPoints:0
 APP_END
index 1dbc751a4add798b9e92e8cb5892ce4df3e0bf18..b195e7c2be751d66c0520c7c52eb70a30487e6e9 100644 (file)
@@ -1,5 +1,5 @@
 # ----------------------------------
-# - BBTKGEditor v 1.2 BBS BlackBox Script
+# - BBTKGEditor v 1.4 BBS BlackBox Script
 # - /Users/davila/Creatis/All5/creatools_source/creaRigidRegistration/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs
 # ----------------------------------
 
@@ -14,6 +14,7 @@ include PackRecalage
 include std
 include vtk
 include creaImageIO
+include wxvtk
 
 author "info-dev@creatis.insa-lyon.fr"
 description "Recalage3D 1-point"
@@ -29,42 +30,36 @@ new Slider sdrAngleX
   set sdrAngleX.In "0"
   set sdrAngleX.Max "180"
   set sdrAngleX.Min "-180"
-  set sdrAngleX.ReactiveOnTrack "true"
   set sdrAngleX.Title "Rotation angle in X Axis"
 
 new Slider sdrAngleY
   set sdrAngleY.In "0"
   set sdrAngleY.Max "180"
   set sdrAngleY.Min "-180"
-  set sdrAngleY.ReactiveOnTrack "true"
   set sdrAngleY.Title "Rotation angle in Y Axis"
 
 new Slider sdrAngleZ
   set sdrAngleZ.In "0"
   set sdrAngleZ.Max "180"
   set sdrAngleZ.Min "-180"
-  set sdrAngleZ.ReactiveOnTrack "true"
   set sdrAngleZ.Title "Rotation angle in Z Axis"
 
 new Slider sdrScaleX
   set sdrScaleX.In "100"
   set sdrScaleX.Max "300"
   set sdrScaleX.Min "10"
-  set sdrScaleX.ReactiveOnTrack "true"
   set sdrScaleX.Title "Scale in X Axis"
 
 new Slider sdrScaleY
   set sdrScaleY.In "100"
   set sdrScaleY.Max "300"
   set sdrScaleY.Min "10"
-  set sdrScaleY.ReactiveOnTrack "true"
   set sdrScaleY.Title "Scale in Y Axis"
 
 new Slider sdrScaleZ
   set sdrScaleZ.In "100"
   set sdrScaleZ.Max "300"
   set sdrScaleZ.Min "10"
-  set sdrScaleZ.ReactiveOnTrack "true"
   set sdrScaleZ.Title "Scale in Z Axis"
 
 new Transform3D1PointBox transform
@@ -86,14 +81,16 @@ new LayoutSplit imagesLayout
 
 new LayoutLine toolsLayout
   set toolsLayout.Orientation "v"
+  set toolsLayout.WinTitle "Rotation"
 
 new LayoutSplit resultLayout
-  set resultLayout.Orientation "v"
-  set resultLayout.Proportion "60"
+  set resultLayout.Proportion "70"
 
 new LayoutSplit main
   set main.Orientation "h"
-  set main.Proportion "50"
+  set main.Proportion "25"
+  set main.WinHeight "800"
+  set main.WinWidth "1200"
 
 new vtkImageDataPointerRelay Box22
 
@@ -103,46 +100,169 @@ new ImagesChooserDialogBox Box24
 
 new ImagesChooserDialogBox Box25
 
+new LayoutTab Box26
+  set Box26.WinTitle "2D-Compare"
+
+new CompareImagesWidget Box27
+  set Box27.WinTitle "2D-Comparing"
+
+new LayoutSplit Box28
+  set Box28.Orientation "H"
+  set Box28.Proportion "50"
+  set Box28.WinTitle "3D-Comparing"
+
+new LayoutLine Box29
+
+new IsoSurfaceWidget Box30
+  set Box30.Title "Reference image"
+
+new IsoSurfaceWidget Box31
+  set Box31.Title "Registration image"
+
+new LayoutTab Box32
+
+new LayoutLine Box33
+  set Box33.WinTitle "Scale"
+
+new Slider TranslateZ
+
+new Slider TranslateY
+
+new Slider TranslateX
+
+new LayoutLine Box37
+  set Box37.WinTitle "Translate"
+
+new LayoutTab Box38
+
+new LayoutTab Box39
+
 
 connect viewer2.Point transform.CenterPoint
+
 connect sdrAngleX.Out transform.AngleX
+
 connect sdrAngleY.Out transform.AngleY
+
 connect sdrAngleZ.Out transform.AngleZ
+
 connect sdrScaleX.Out transform.ScaleX
+
 connect sdrScaleY.Out transform.ScaleY
+
 connect sdrScaleZ.Out transform.ScaleZ
+
 connect viewer.Point reslicer.Origin
+
 connect transform.Out reslicer.Transform
+
 connect viewer.BoxChange mult.In1
+
 connect viewer2.BoxChange mult.In2
+
 connect sdrAngleX.BoxChange mult.In3
+
 connect sdrAngleY.BoxChange mult.In4
+
 connect sdrAngleZ.BoxChange mult.In5
+
 connect sdrScaleX.BoxChange mult2.In1
+
 connect sdrScaleY.BoxChange mult2.In2
+
 connect sdrScaleZ.BoxChange mult2.In3
+
 connect mult.BoxChange mult3.In1
+
 connect mult2.BoxChange mult3.In2
+
 connect mult3.BoxChange transform.BoxExecute
+
 connect mult3.BoxChange reslicer.BoxExecute
+
 connect reslicer.Out viewerResult.In
+
 connect mult3.BoxChange viewerResult.BoxExecute
+
 connect viewer.Widget imagesLayout.Widget1
+
 connect viewer2.Widget imagesLayout.Widget2
+
 connect sdrAngleX.Widget toolsLayout.Widget1
+
 connect sdrAngleY.Widget toolsLayout.Widget2
+
 connect sdrAngleZ.Widget toolsLayout.Widget3
-connect sdrScaleX.Widget toolsLayout.Widget4
-connect sdrScaleY.Widget toolsLayout.Widget5
-connect sdrScaleZ.Widget toolsLayout.Widget6
-connect viewerResult.Widget resultLayout.Widget1
-connect toolsLayout.Widget resultLayout.Widget2
+
 connect imagesLayout.Widget main.Widget1
+
 connect resultLayout.Widget main.Widget2
+
 connect Box22.Out viewer2.In
+
 connect Box22.Out reslicer.In
+
 connect Box24.Out Box22.In
+
 connect Box23.Out viewer.In
+
 connect Box25.Out Box23.In
 
+connect Box27.Widget Box26.Widget2
+
+connect Box26.Widget resultLayout.Widget1
+
+connect reslicer.Out Box27.In2
+
+connect Box23.Out Box27.In1
+
+connect viewerResult.Widget Box28.Widget2
+
+connect Box28.Widget Box26.Widget1
+
+connect Box29.Widget Box28.Widget1
+
+connect sdrScaleX.Widget Box33.Widget1
+
+connect sdrScaleY.Widget Box33.Widget2
+
+connect sdrScaleZ.Widget Box33.Widget3
+
+connect Box33.Widget Box32.Widget2
+
+connect toolsLayout.Widget Box32.Widget1
+
+connect Box32.Widget resultLayout.Widget2
+
+connect TranslateX.Widget Box37.Widget1
+
+connect TranslateY.Widget Box37.Widget2
+
+connect TranslateZ.Widget Box37.Widget3
+
+connect Box37.Widget Box32.Widget3
+
+connect Box31.Widget Box38.Widget2
+
+connect Box38.Widget Box29.Widget2
+
+connect Box39.Widget Box29.Widget1
+
+connect Box30.Widget Box39.Widget1
+
+connect Box23.Out Box30.In
+
+connect viewerResult.Renderer1 Box30.vtkRenderer
+
+connect Box30.BoxChange mult3.In3
+
+connect viewerResult.Renderer1 Box31.vtkRenderer
+
+connect Box31.BoxChange mult3.In4
+
+connect reslicer.Out Box31.In
+
+
+
+# Complex input ports
 exec main