From: eduardo.davila@creatis.insa-lyon.fr Date: Mon, 14 Apr 2025 11:47:30 +0000 (+0200) Subject: #3425 RotateImage application X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=refs%2Fheads%2Fvtk9itk5wx3-macos;p=creaMiniTools.git #3425 RotateImage application --- diff --git a/bbtk_package_creaMiniTools/bbs/appli/RotateImage.bbg b/bbtk_package_creaMiniTools/bbs/appli/RotateImage.bbg new file mode 100644 index 0000000..115ffab --- /dev/null +++ b/bbtk_package_creaMiniTools/bbs/appli/RotateImage.bbg @@ -0,0 +1,634 @@ +# ---------------------------------- +# - BBTKGEditor v 1.6 BBG BlackBox Diagram file +# - /Users/davila/CreatisWork/tmpPhilippeDelachartre/creaQUSBI/scripts/RotateImage.bbg +# ---------------------------------- + +APP_START +CATEGORY: +DESCRIPTION:Description ?? +AUTHOR:Author ?? +EXPORTFORMAT:0 +COMPLEXBOX:FALSE +COMPLEXINPUTS:0 +BOXES:52 +BOX +vtk:LoadHola:Box00 +ISEXEC:FALSE +58.734379:21.590624:-900.000000 +80.284379:19.090624:-900.000000 +FIN_BOX +BOX +creaMaracasVisu:ViewerNV:Box01 +ISEXEC:FALSE +35.615797:-143.680533:-900.000000 +77.735797:-146.180533:-900.000000 +PORT +nTypeView:"6 1 2 0" +FIN_BOX +BOX +creaMaracasVisu:ImageChangeInformation:Box02 +ISEXEC:FALSE +56.038932:11.684506:-900.000000 +79.188932:9.184506:-900.000000 +FIN_BOX +BOX +wx:LayoutSplit:Box03 +ISEXEC:FALSE +63.292864:-153.130799:-900.000000 +87.812864:-155.630799:-900.000000 +PORT +Orientation:"H" +FIN_BOX +BOX +wx:LayoutSplit:Box04 +ISEXEC:TRUE +54.648145:-208.316031:-900.000000 +79.168145:-210.816031:-900.000000 +PORT +Proportion:"15" +FIN_BOX +BOX +creaMaracasVisu:ViewerNV:Box05 +ISEXEC:FALSE +92.023994:-134.880108:-900.000000 +134.143994:-137.380108:-900.000000 +PORT +nTypeView:"6 1 2 0" +FIN_BOX +BOX +wx:LayoutLine:Box07 +ISEXEC:FALSE +-134.966429:-109.437897:-900.000000 +-99.886429:-111.937897:-900.000000 +PORT +Orientation:"H" +PORT +WinTitle:"Rotation" +FIN_BOX +BOX +creaVtk:TurnImage:Box08 +ISEXEC:FALSE +-86.563563:-78.108344:-900.000000 +-64.913563:-80.608344:-900.000000 +PORT +Dir:"-1" +FIN_BOX +BOX +wx:LayoutLine:Box09 +ISEXEC:FALSE +-298.688379:-2.740896:-900.000000 +-263.608379:-5.240896:-900.000000 +FIN_BOX +BOX +wx:ComboBox:Box11 +ISEXEC:FALSE +-294.455917:13.833511:-900.000000 +-266.415917:11.333511:-900.000000 +PORT +In:"X Y Z" +FIN_BOX +BOX +wx:ComboBox:Box12 +ISEXEC:FALSE +-286.045190:8.732595:-900.000000 +-258.005190:6.232595:-900.000000 +PORT +In:"-90 0 90 180" +PORT +Selection:"1" +PORT +Title:"Angle" +FIN_BOX +BOX +wx:OutputText:Box13 +ISEXEC:FALSE +-302.141167:19.112269:-900.000000 +-280.471167:16.612269:-900.000000 +PORT +In:"Step 1" +FIN_BOX +BOX +wx:LayoutLine:Box14 +ISEXEC:FALSE +-186.789844:-1.476725:-900.000000 +-151.709844:-3.976725:-900.000000 +FIN_BOX +BOX +wx:ComboBox:Box15 +ISEXEC:FALSE +-188.862238:13.356014:-900.000000 +-160.822238:10.856014:-900.000000 +PORT +In:"X Y Z" +PORT +Selection:"1" +FIN_BOX +BOX +wx:ComboBox:Box16 +ISEXEC:FALSE +-180.451511:8.255097:-900.000000 +-152.411511:5.755097:-900.000000 +PORT +In:"-90 0 90 180" +PORT +Selection:"1" +PORT +Title:"Angle" +FIN_BOX +BOX +wx:OutputText:Box17 +ISEXEC:FALSE +-196.547488:18.634771:-900.000000 +-174.877488:16.134771:-900.000000 +PORT +In:"Step 2" +FIN_BOX +BOX +wx:LayoutLine:Box18 +ISEXEC:FALSE +-94.743537:3.453201:-900.000000 +-59.663537:0.953201:-900.000000 +FIN_BOX +BOX +wx:ComboBox:Box19 +ISEXEC:FALSE +-95.503201:18.061014:-900.000000 +-67.463201:15.561014:-900.000000 +PORT +In:"X Y Z" +PORT +Selection:"2" +FIN_BOX +BOX +wx:ComboBox:Box20 +ISEXEC:FALSE +-87.092474:12.960097:-900.000000 +-59.052474:10.460097:-900.000000 +PORT +In:"-90 0 90 180" +PORT +Selection:"1" +PORT +Title:"Angle" +FIN_BOX +BOX +wx:OutputText:Box21 +ISEXEC:FALSE +-103.188451:23.339771:-900.000000 +-81.518451:20.839771:-900.000000 +PORT +In:"Step 3" +FIN_BOX +BOX +wx:OutputText:Box22 +ISEXEC:FALSE +-224.731934:16.725997:-900.000000 +-203.061934:14.225997:-900.000000 +PORT +In:"+" +FIN_BOX +BOX +wx:OutputText:Box23 +ISEXEC:FALSE +-136.831128:20.579939:-900.000000 +-115.161128:18.079939:-900.000000 +PORT +In:"+" +FIN_BOX +BOX +wx:LayoutCenter:Box27 +ISEXEC:FALSE +-221.612934:12.241280:-900.000000 +-199.682934:9.741280:-900.000000 +FIN_BOX +BOX +wx:LayoutCenter:Box28 +ISEXEC:FALSE +-133.962171:14.469937:-900.000000 +-112.032171:11.969937:-900.000000 +FIN_BOX +BOX +wx:LayoutLine:Box29 +ISEXEC:FALSE +-230.003676:-1.126095:-900.000000 +-194.923676:-3.626095:-900.000000 +FIN_BOX +BOX +wx:LayoutLine:Box30 +ISEXEC:FALSE +-142.522602:2.376535:-900.000000 +-107.442602:-0.123465:-900.000000 +FIN_BOX +BOX +wx:OutputText:Box32 +ISEXEC:FALSE +-145.939911:8.075639:-900.000000 +-124.269911:5.575639:-900.000000 +FIN_BOX +BOX +wx:OutputText:Box33 +ISEXEC:FALSE +-237.508021:7.258609:-900.000000 +-215.838021:4.758609:-900.000000 +FIN_BOX +BOX +vtk:Transform:Box36 +ISEXEC:FALSE +-282.642327:-28.076738:-900.000000 +-261.087327:-30.576738:-900.000000 +FIN_BOX +BOX +std:StringSelect:Box37 +ISEXEC:FALSE +-287.180623:-15.974615:-900.000000 +-262.660623:-18.474615:-900.000000 +PORT +In0:" 1 0 0 " +PORT +In1:" 0 1 0 " +PORT +In2:" 0 0 1 " +FIN_BOX +BOX +std:ConcatStrings:Box38 +ISEXEC:FALSE +-283.852539:-22.328229:-900.000000 +-261.092539:-24.828229:-900.000000 +FIN_BOX +BOX +creaVtk:TransformVector:Box39 +ISEXEC:FALSE +-195.381858:-60.803795:-900.000000 +-173.171858:-63.303795:-900.000000 +PORT +InX:"1 0 0" +PORT +InY:"0 1 0" +PORT +InZ:"0 0 1" +FIN_BOX +BOX +vtk:Transform:Box40 +ISEXEC:FALSE +-221.444046:-31.758436:-900.000000 +-199.889046:-34.258436:-900.000000 +FIN_BOX +BOX +std:StringSelect:Box41 +ISEXEC:FALSE +-224.772130:-17.689718:-900.000000 +-200.252130:-20.189718:-900.000000 +PORT +In0:" 1 0 0 " +PORT +In1:" 0 1 0 " +PORT +In2:" 0 0 1 " +FIN_BOX +BOX +std:ConcatStrings:Box42 +ISEXEC:FALSE +-221.444046:-24.043333:-900.000000 +-198.684046:-26.543333:-900.000000 +FIN_BOX +BOX +creaVtk:ConcatTransform:Box43 +ISEXEC:FALSE +-215.399904:-45.473540:-900.000000 +-193.119904:-47.973540:-900.000000 +FIN_BOX +BOX +vtk:Transform:Box44 +ISEXEC:FALSE +-100.340255:-31.960775:-900.000000 +-78.785255:-34.460775:-900.000000 +FIN_BOX +BOX +std:StringSelect:Box45 +ISEXEC:FALSE +-103.668339:-17.892056:-900.000000 +-79.148339:-20.392056:-900.000000 +PORT +In0:" 1 0 0 " +PORT +In1:" 0 1 0 " +PORT +In2:" 0 0 1 " +FIN_BOX +BOX +std:ConcatStrings:Box46 +ISEXEC:FALSE +-100.340255:-24.245671:-900.000000 +-77.580255:-26.745671:-900.000000 +FIN_BOX +BOX +std:ConcatStrings:Box47 +ISEXEC:FALSE +-188.664696:-68.538474:-900.000000 +-165.904696:-71.038474:-900.000000 +PORT +In2:" " +PORT +In4:" " +FIN_BOX +BOX +std:MultipleInputs:Box49 +ISEXEC:FALSE +-141.461056:-27.380441:-900.000000 +-119.491056:-29.880441:-900.000000 +FIN_BOX +BOX +creaImageIO:ReadImages:Box61 +ISEXEC:FALSE +33.354756:21.828761:-900.000000 +55.209756:19.328761:-900.000000 +PORT +LstNameImages:"/Users/davila/CreatisWork/tmpPhilippeDelachartre/creaQUSBI/results/study01/delachartre/reconstruction01/r1/Patient151_J50_IRM_3DT1/J50/Patient151_J50_IRM_3DT1.nrrd" +FIN_BOX +BOX +std:AddStringToVector:Box52 +ISEXEC:FALSE +-165.066333:35.880694:-900.000000 +-140.546333:33.380694:-900.000000 +PORT +In0:"X - Rot. normal to sagital plane" +PORT +In1:"Y - Rot. normal to coronal plane" +PORT +In2:"Z - Rot. normal to axial plane" +FIN_BOX +BOX +creaImageIO:ImagesChooserDialogBox:Box53 +ISEXEC:FALSE +83.474499:21.861987:-900.000000 +106.629499:19.361987:-900.000000 +FIN_BOX +BOX +wx:LayoutTab:Box54 +ISEXEC:FALSE +1.056624:-182.336081:-900.000000 +36.136624:-184.836081:-900.000000 +FIN_BOX +BOX +wx:LayoutLine:Box55 +ISEXEC:FALSE +7.497610:-173.993276:-900.000000 +42.577610:-176.493276:-900.000000 +PORT +Orientation:"V" +PORT +WinTitle:"Save" +FIN_BOX +BOX +wx:CommandButton:Box56 +ISEXEC:FALSE +31.747898:-156.838140:-900.000000 +54.507898:-159.338140:-900.000000 +PORT +Label:"Save new Image & Exit" +FIN_BOX +BOX +wx:OutputText:Box57 +ISEXEC:FALSE +2.793568:-164.492733:-900.000000 +24.463568:-166.992733:-900.000000 +FIN_BOX +BOX +wx:LayoutCenter:Box58 +ISEXEC:FALSE +26.738255:-164.851817:-900.000000 +48.668255:-167.351817:-900.000000 +FIN_BOX +BOX +itk:ImageWriter:Box59 +ISEXEC:FALSE +96.190132:-184.297012:-900.000000 +118.000132:-186.797012:-900.000000 +PORT +BoxProcessMode:"Manual" +FIN_BOX +BOX +wx:FileSelector:Box60 +ISEXEC:FALSE +97.261955:-169.406045:-900.000000 +119.011955:-171.906045:-900.000000 +PORT +Message:"Save Image" +PORT +OpenSave:"Save" +PORT +Title:"Save new file" +PORT +Wildcard:"Image files (*.nifti, *.mhd, *.nrrd)|*.nifti;*.mhd;*.nrrd" +FIN_BOX +BOX +std:Exit:Box62 +ISEXEC:FALSE +121.816378:-183.964204:-900.000000 +142.766378:-186.464204:-900.000000 +PORT +BoxProcessMode:"Manual" +FIN_BOX +CONNECTIONS:67 +CONNECTION +Box01:Widget:Box03:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box05:Widget:Box03:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box03:Widget:Box04:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box02:Out:Box01:In +NumberOfControlPoints:0 +CONNECTION +Box09:Widget:Box07:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box12:Widget:Box09:Widget3 +NumberOfControlPoints:0 +CONNECTION +Box11:Widget:Box09:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box13:Widget:Box09:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box16:Widget:Box14:Widget3 +NumberOfControlPoints:0 +CONNECTION +Box15:Widget:Box14:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box17:Widget:Box14:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box14:Widget:Box07:Widget4 +NumberOfControlPoints:0 +CONNECTION +Box20:Widget:Box18:Widget3 +NumberOfControlPoints:0 +CONNECTION +Box19:Widget:Box18:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box21:Widget:Box18:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box18:Widget:Box07:Widget6 +NumberOfControlPoints:0 +CONNECTION +Box22:Widget:Box27:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box23:Widget:Box28:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box27:Widget:Box29:Widget3 +NumberOfControlPoints:0 +CONNECTION +Box29:Widget:Box07:Widget3 +NumberOfControlPoints:0 +CONNECTION +Box28:Widget:Box30:Widget4 +NumberOfControlPoints:0 +CONNECTION +Box30:Widget:Box07:Widget5 +NumberOfControlPoints:0 +CONNECTION +Box32:Widget:Box30:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box33:Widget:Box29:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box11:Out:Box37:In +NumberOfControlPoints:0 +CONNECTION +Box38:Out:Box36:RotateWXYZ +NumberOfControlPoints:0 +CONNECTION +Box37:Out:Box38:In3 +NumberOfControlPoints:0 +CONNECTION +Box12:OutString:Box38:In1 +NumberOfControlPoints:0 +CONNECTION +Box42:Out:Box40:RotateWXYZ +NumberOfControlPoints:0 +CONNECTION +Box41:Out:Box42:In3 +NumberOfControlPoints:0 +CONNECTION +Box15:Out:Box41:In +NumberOfControlPoints:0 +CONNECTION +Box16:OutString:Box42:In1 +NumberOfControlPoints:0 +CONNECTION +Box36:Out:Box43:In1 +NumberOfControlPoints:0 +CONNECTION +Box40:Out:Box43:In2 +NumberOfControlPoints:0 +CONNECTION +Box46:Out:Box44:RotateWXYZ +NumberOfControlPoints:0 +CONNECTION +Box45:Out:Box46:In3 +NumberOfControlPoints:0 +CONNECTION +Box19:Out:Box45:In +NumberOfControlPoints:0 +CONNECTION +Box20:OutString:Box46:In1 +NumberOfControlPoints:0 +CONNECTION +Box44:Out:Box43:In3 +NumberOfControlPoints:0 +CONNECTION +Box43:Out:Box39:Transform +NumberOfControlPoints:0 +CONNECTION +Box39:OutX:Box47:In1 +NumberOfControlPoints:0 +CONNECTION +Box39:OutY:Box47:In3 +NumberOfControlPoints:0 +CONNECTION +Box39:OutZ:Box47:In5 +NumberOfControlPoints:0 +CONNECTION +Box11:BoxChange:Box49:In1 +NumberOfControlPoints:0 +CONNECTION +Box12:BoxChange:Box49:In2 +NumberOfControlPoints:0 +CONNECTION +Box15:BoxChange:Box49:In3 +NumberOfControlPoints:0 +CONNECTION +Box16:BoxChange:Box49:In4 +NumberOfControlPoints:0 +CONNECTION +Box19:BoxChange:Box49:In5 +NumberOfControlPoints:0 +CONNECTION +Box20:BoxChange:Box49:In6 +NumberOfControlPoints:0 +CONNECTION +Box47:Out:Box08:AxesDirectionCosines +NumberOfControlPoints:0 +CONNECTION +Box49:BoxChange:Box05:BoxExecute +NumberOfControlPoints:0 +CONNECTION +Box08:Out:Box05:In +NumberOfControlPoints:0 +CONNECTION +Box02:Out:Box08:In +NumberOfControlPoints:0 +CONNECTION +Box52:Out:Box11:In +NumberOfControlPoints:0 +CONNECTION +Box52:Out:Box15:In +NumberOfControlPoints:0 +CONNECTION +Box52:Out:Box19:In +NumberOfControlPoints:0 +CONNECTION +Box07:Widget:Box54:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box55:Widget:Box54:Widget3 +NumberOfControlPoints:0 +CONNECTION +Box54:Widget:Box04:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box57:Widget:Box55:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box56:Widget:Box58:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box58:Widget:Box55:Widget2 +NumberOfControlPoints:0 +CONNECTION +Box08:Out:Box59:In +NumberOfControlPoints:0 +CONNECTION +Box60:Out:Box59:Filename +NumberOfControlPoints:0 +CONNECTION +Box56:BoxChange:Box59:BoxExecute +NumberOfControlPoints:0 +CONNECTION +Box56:BoxChange:Box62:BoxExecute +NumberOfControlPoints:0 +CONNECTION +Box53:Out:Box02:In +NumberOfControlPoints:0 +APP_END diff --git a/bbtk_package_creaMiniTools/bbs/appli/RotateImage.bbs b/bbtk_package_creaMiniTools/bbs/appli/RotateImage.bbs new file mode 100644 index 0000000..01c8f4d --- /dev/null +++ b/bbtk_package_creaMiniTools/bbs/appli/RotateImage.bbs @@ -0,0 +1,318 @@ +# ---------------------------------- +# - BBTKGEditor v 1.6 BBS BlackBox Script +# - /Users/davila/CreatisWork/tmpPhilippeDelachartre/creaQUSBI/scripts/RotateImage.bbs +# ---------------------------------- + +# BBTK GEditor Script +# ---------------------- + +include std +include itkvtk +include vtk +include creaMaracasVisu +include wx +include creaVtk +include std +include creaImageIO +include itk + +author "Author ??" +description "Description ??" +category "" + +new vtk:LoadHola Box00 + +new creaMaracasVisu:ViewerNV Box01 + set Box01.nTypeView "6 1 2 0" + +new creaMaracasVisu:ImageChangeInformation Box02 + +new wx:LayoutSplit Box03 + set Box03.Orientation "H" + +new wx:LayoutSplit Box04 + set Box04.Proportion "15" + +new creaMaracasVisu:ViewerNV Box05 + set Box05.nTypeView "6 1 2 0" + +new wx:LayoutLine Box07 + set Box07.Orientation "H" + set Box07.WinTitle "Rotation" + +new creaVtk:TurnImage Box08 + set Box08.Dir "-1" + +new wx:LayoutLine Box09 + +new wx:ComboBox Box11 + set Box11.In "X Y Z" + +new wx:ComboBox Box12 + set Box12.In "-90 0 90 180" + set Box12.Selection "1" + set Box12.Title "Angle" + +new wx:OutputText Box13 + set Box13.In "Step 1" + +new wx:LayoutLine Box14 + +new wx:ComboBox Box15 + set Box15.In "X Y Z" + set Box15.Selection "1" + +new wx:ComboBox Box16 + set Box16.In "-90 0 90 180" + set Box16.Selection "1" + set Box16.Title "Angle" + +new wx:OutputText Box17 + set Box17.In "Step 2" + +new wx:LayoutLine Box18 + +new wx:ComboBox Box19 + set Box19.In "X Y Z" + set Box19.Selection "2" + +new wx:ComboBox Box20 + set Box20.In "-90 0 90 180" + set Box20.Selection "1" + set Box20.Title "Angle" + +new wx:OutputText Box21 + set Box21.In "Step 3" + +new wx:OutputText Box22 + set Box22.In "+" + +new wx:OutputText Box23 + set Box23.In "+" + +new wx:LayoutCenter Box27 + +new wx:LayoutCenter Box28 + +new wx:LayoutLine Box29 + +new wx:LayoutLine Box30 + +new wx:OutputText Box32 + +new wx:OutputText Box33 + +new vtk:Transform Box36 + +new std:StringSelect Box37 + set Box37.In0 " 1 0 0 " + set Box37.In1 " 0 1 0 " + set Box37.In2 " 0 0 1 " + +new std:ConcatStrings Box38 + +new creaVtk:TransformVector Box39 + set Box39.InX "1 0 0" + set Box39.InY "0 1 0" + set Box39.InZ "0 0 1" + +new vtk:Transform Box40 + +new std:StringSelect Box41 + set Box41.In0 " 1 0 0 " + set Box41.In1 " 0 1 0 " + set Box41.In2 " 0 0 1 " + +new std:ConcatStrings Box42 + +new creaVtk:ConcatTransform Box43 + +new vtk:Transform Box44 + +new std:StringSelect Box45 + set Box45.In0 " 1 0 0 " + set Box45.In1 " 0 1 0 " + set Box45.In2 " 0 0 1 " + +new std:ConcatStrings Box46 + +new std:ConcatStrings Box47 + set Box47.In2 " " + set Box47.In4 " " + +new std:MultipleInputs Box49 + +new creaImageIO:ReadImages Box61 + set Box61.LstNameImages "/Users/davila/CreatisWork/tmpPhilippeDelachartre/creaQUSBI/results/study01/delachartre/reconstruction01/r1/Patient151_J50_IRM_3DT1/J50/Patient151_J50_IRM_3DT1.nrrd" + +new std:AddStringToVector Box52 + set Box52.In0 "X - Rot. normal to sagital plane" + set Box52.In1 "Y - Rot. normal to coronal plane" + set Box52.In2 "Z - Rot. normal to axial plane" + +new creaImageIO:ImagesChooserDialogBox Box53 + +new wx:LayoutTab Box54 + +new wx:LayoutLine Box55 + set Box55.Orientation "V" + set Box55.WinTitle "Save" + +new wx:CommandButton Box56 + set Box56.Label "Save new Image & Exit" + +new wx:OutputText Box57 + +new wx:LayoutCenter Box58 + +new itk:ImageWriter Box59 + set Box59.BoxProcessMode "Manual" + +new wx:FileSelector Box60 + set Box60.Message "Save Image" + set Box60.OpenSave "Save" + set Box60.Title "Save new file" + set Box60.Wildcard "Image files (*.nifti, *.mhd, *.nrrd)|*.nifti;*.mhd;*.nrrd" + +new std:Exit Box62 + set Box62.BoxProcessMode "Manual" + + +connect Box01.Widget Box03.Widget1 + +connect Box05.Widget Box03.Widget2 + +connect Box03.Widget Box04.Widget2 + +connect Box02.Out Box01.In + +connect Box09.Widget Box07.Widget2 + +connect Box12.Widget Box09.Widget3 + +connect Box11.Widget Box09.Widget2 + +connect Box13.Widget Box09.Widget1 + +connect Box16.Widget Box14.Widget3 + +connect Box15.Widget Box14.Widget2 + +connect Box17.Widget Box14.Widget1 + +connect Box14.Widget Box07.Widget4 + +connect Box20.Widget Box18.Widget3 + +connect Box19.Widget Box18.Widget2 + +connect Box21.Widget Box18.Widget1 + +connect Box18.Widget Box07.Widget6 + +connect Box22.Widget Box27.Widget2 + +connect Box23.Widget Box28.Widget2 + +connect Box27.Widget Box29.Widget3 + +connect Box29.Widget Box07.Widget3 + +connect Box28.Widget Box30.Widget4 + +connect Box30.Widget Box07.Widget5 + +connect Box32.Widget Box30.Widget1 + +connect Box33.Widget Box29.Widget1 + +connect Box11.Out Box37.In + +connect Box38.Out Box36.RotateWXYZ + +connect Box37.Out Box38.In3 + +connect Box12.OutString Box38.In1 + +connect Box42.Out Box40.RotateWXYZ + +connect Box41.Out Box42.In3 + +connect Box15.Out Box41.In + +connect Box16.OutString Box42.In1 + +connect Box36.Out Box43.In1 + +connect Box40.Out Box43.In2 + +connect Box46.Out Box44.RotateWXYZ + +connect Box45.Out Box46.In3 + +connect Box19.Out Box45.In + +connect Box20.OutString Box46.In1 + +connect Box44.Out Box43.In3 + +connect Box43.Out Box39.Transform + +connect Box39.OutX Box47.In1 + +connect Box39.OutY Box47.In3 + +connect Box39.OutZ Box47.In5 + +connect Box11.BoxChange Box49.In1 + +connect Box12.BoxChange Box49.In2 + +connect Box15.BoxChange Box49.In3 + +connect Box16.BoxChange Box49.In4 + +connect Box19.BoxChange Box49.In5 + +connect Box20.BoxChange Box49.In6 + +connect Box47.Out Box08.AxesDirectionCosines + +connect Box49.BoxChange Box05.BoxExecute + +connect Box08.Out Box05.In + +connect Box02.Out Box08.In + +connect Box52.Out Box11.In + +connect Box52.Out Box15.In + +connect Box52.Out Box19.In + +connect Box07.Widget Box54.Widget2 + +connect Box55.Widget Box54.Widget3 + +connect Box54.Widget Box04.Widget1 + +connect Box57.Widget Box55.Widget1 + +connect Box56.Widget Box58.Widget2 + +connect Box58.Widget Box55.Widget2 + +connect Box08.Out Box59.In + +connect Box60.Out Box59.Filename + +connect Box56.BoxChange Box59.BoxExecute + +connect Box56.BoxChange Box62.BoxExecute + +connect Box53.Out Box02.In + + + +# Complex input ports +exec Box04