]> Creatis software - bbtk.git/blob - packages/wxvtk/bbs/boxes/bbBasicImageApplication.bbs
Global factory in course of removal... does not compile but have to commit to continu...
[bbtk.git] / packages / wxvtk / bbs / boxes / bbBasicImageApplication.bbs
1 include wxvtk/boxes/bbDoubleSlicer
2 load wx
3 load std
4 load itk
5 load itkvtk 
6 load vtk
7
8
9 define BasicImageApplication
10
11 ##
12    description "Interface of a 'standard' image application. Displays two images : before/after processing; Offers buttons : open/parameters/run/save/quit. See <a href='../demo/index.html#DemoBasicImageApplication'>DemoBasicImageApplication.bbs</a>. Screenshot : <center><img src='../demo/DemoBasicImageApplication1.png' width=400></center>."
13   author "laurent.guigues@creatis.insa-lyon.fr"
14   category "widget"
15 ##
16
17
18 # WINDOWS CREATION
19   new LayoutSplit mainWindow
20   set mainWindow.Proportion 90
21
22   new DoubleSlicer viewer
23
24   new LayoutLine buttonsBar
25   
26   new CommandButton openButton
27   new CommandButton paramButton
28   new CommandButton runButton
29   new CommandButton saveButton
30   new CommandButton quitButton
31
32   connect viewer.Widget      mainWindow.Widget1
33   connect buttonsBar.Widget  mainWindow.Widget2
34
35   connect openButton.Widget  buttonsBar.Widget1
36   connect paramButton.Widget buttonsBar.Widget2
37   connect runButton.Widget   buttonsBar.Widget3
38   connect saveButton.Widget  buttonsBar.Widget4
39   connect quitButton.Widget  buttonsBar.Widget5
40
41   set viewer.Orientation 0
42   set buttonsBar.Orientation 0
43
44 #OPEN
45   set openButton.Label "Open"
46   set paramButton.Label "Parameters"
47   set saveButton.Label "Save"
48   new FileSelector openFileDialog
49   connect openButton.BoxChange openFileDialog.BoxExecute
50   connect openButton.BoxChange viewer.RefreshSlicer1
51   set openFileDialog.Message "Select input image"
52   set openFileDialog.OpenSave "Open"
53 #READER
54   new MetaImageReader reader 
55 #  set reader.Filename  "/home/guigues/coding/Sofa/bbtk/data/thorax.hdr"
56   connect openFileDialog.Out reader.In
57
58   connect reader.Out viewer.In1
59
60
61 # RUN
62   set runButton.Label "Run"
63   new MultipleInputs refreshViewerOut 
64   connect refreshViewerOut.Out viewer.RefreshSlicer2
65   connect runButton.BoxChange refreshViewerOut.In1
66
67 #QUIT
68   set quitButton.Label "Quit"
69   set quitButton.In "quit"
70   
71
72 #SAVE 
73   new ImageWriter writer
74   new FileSelector saveFileDialog
75   set saveFileDialog.BoxProcessMode Always
76   set saveFileDialog.DefaultFile "out.hdr"
77   set saveFileDialog.Message "Select output image"
78   set saveFileDialog.OpenSave "Save"
79   connect saveFileDialog.Out writer.Filename
80   connect saveButton.BoxChange refreshViewerOut.In2
81   connect saveButton.BoxChange writer.BoxExecute
82
83 #PARAMETERS 
84   new LayoutSplit paramWindow
85   set paramWindow.Proportion 80
86   set paramWindow.WinTitle "Parameters"
87 #  new LayoutLine userParamWindow
88 #  connect userParamWindow.Widget paramWindow.Widget1
89   new CommandButton paramWindowCloseButton
90   set paramWindowCloseButton.Label "Close"
91   connect paramWindowCloseButton.Widget paramWindow.Widget2
92   connect paramWindowCloseButton.BoxChange paramWindow.WinHide
93   connect paramButton.BoxChange paramWindow.BoxExecute
94
95
96 # INPUTS / OUTPUTS 
97   new anyItkImagePointerRelay imageOut
98   connect imageOut.Out viewer.In2
99   connect imageOut.Out writer.In
100   
101   input AlgorithmOutput imageOut.In "Plug here the output of your algorithm"
102   output AlgorithmInput reader.Out "Plug this output to the input of your algorithm"
103   input ParametersWidget paramWindow.Widget1 "Connect here your parameter tuning widget"
104
105   input ParametersWindowWidth paramWindow.WinWidth "The width of the parameters window"
106   input ParametersWindowHeight paramWindow.WinHeight "The height of the parameters window"
107   input WinTitle mainWindow.WinTitle "Title of the main window"
108
109   input Refresh viewer.BoxProcessModeSlicer2 "Set to 'Reactive' to have automatic refresh when image or parameters change"
110
111   exec mainWindow
112
113
114 endefine
115