]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuImageBrowserReader._cxx_
db63c9ea9a1ef6bc3ed2e98d0ff950db40bad40e
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuImageBrowserReader._cxx_
1 #include "bbmaracasvisuImageBrowserReader.h"
2 #include "bbmaracasvisuPackage.h"
3
4 #include <marDynData.h>
5
6 #include <wx/msgdlg.h>
7
8 namespace bbmaracasvisu
9 {
10
11   //------------------------------------------------------------------------------------------------------------------------------------
12   // Event handling auxiliar class
13   //------------------------------------------------------------------------------------------------------------------------------------
14  
15           //--------------------------------------------------------------------------------------------------------------------------------
16           // Constructors ans destructors
17           //--------------------------------------------------------------------------------------------------------------------------------
18                 wxMaracasImageBrowser02_EvtHandler::wxMaracasImageBrowser02_EvtHandler(
19                                                                                                                 ImageBrowserReader *bbParent,
20                                                                                                                 wxMaracasImageBrowser02 * wxmaracasimagebrowser02
21                                                                                                                 )
22                 :wxEvtHandler()
23                 {
24                         mbbtkImageBrowserReader = bbParent;
25                         mmaracasimagebrowser02  = wxmaracasimagebrowser02;
26
27                         wxmaracasimagebrowser02->PushEventHandler(this);
28                         Connect(mmaracasimagebrowser02->GetId(),wxEVT_MARACASIMAGEBROWSERCUTIMAGE,(wxObjectEventFunction) (wxCommandEventFunction) &wxMaracasImageBrowser02_EvtHandler::OnCutImage );
29                 }
30
31  //--------------------------------------------------------------------------------------------------------------------------------
32                 wxMaracasImageBrowser02_EvtHandler ::  ~wxMaracasImageBrowser02_EvtHandler()
33                 {
34                 }
35                 
36  //--------------------------------------------------------------------------------------------------------------------------------
37                 void wxMaracasImageBrowser02_EvtHandler :: OnCutImage(wxCommandEvent& event)
38                 {
39                         mbbtkImageBrowserReader->DefineImageOutput();
40                 }
41
42 //--------------------------------------------------------------------
43 //--------------------------------------------------------------------
44 //--------------------------------------------------------------------
45
46
47
48
49 BBTK_ADD_BLACK_BOX_TO_PACKAGE(maracasvisu,ImageBrowserReader)
50 BBTK_BLACK_BOX_IMPLEMENTATION(ImageBrowserReader,bbtk::WxBlackBox);
51
52 //--------------------------------------------------------------------
53 void ImageBrowserReader::Process()
54 {
55
56         if (marparameters!=NULL){
57                 delete marparameters;
58                 marparameters = NULL;
59         }
60         marparameters = new marParameters();
61
62
63         if (wxmaracasimagebrowser02!=NULL){     
64                 delete wxmaracasimagebrowser02; 
65                 delete wxmaracasimagebrowser02_eventHandler;
66                 wxmaracasimagebrowser02                                 = NULL;
67                 wxmaracasimagebrowser02_eventHandler    = NULL;
68         }
69
70
71         if (marfilesbase!=NULL){
72                 marfilesbase->CleanListImages();
73             delete marfilesbase;
74                 marfilesbase                                                    = NULL;
75         }
76
77         if (bbGetInputType()==-1  )  marfilesbase = new marGdcmDicomILPD(marparameters);
78         if (bbGetInputType()== 0  )  marfilesbase = new marRAWFiles(marparameters);
79         if (bbGetInputType()== 100)  marfilesbase = new marGdcmDicomILPD(marparameters);
80         if (bbGetInputType()== 200)  marfilesbase = new marRAW2Files(marparameters);
81         if (bbGetInputType()== 300)  marfilesbase = new marRAW2AsciiFiles(marparameters);
82
83         if (marfilesbase!=NULL){
84
85 //              marfilesbase->CleanListImages();
86                 std::vector <std::string*> *lstStringFileName;
87                 lstStringFileName = marfilesbase->GetListImages( );
88                 int i,size = bbGetInputLstFileName().size();
89                 for ( i=0 ; i<size; i++ ){
90                         lstStringFileName->push_back( new std::string(bbGetInputLstFileName()[i]) );
91                 } // for
92
93                 wxmaracasimagebrowser02 = new wxMaracasImageBrowser02(  bbGetOutputWidget() , 
94                                                                                                                                 marfilesbase  , 
95                                                                                                                                 marfilesbase->getParameters() 
96                                                                                                                           );
97                 wxmaracasimagebrowser02_eventHandler = new wxMaracasImageBrowser02_EvtHandler(this, 
98                                                                                                                                                                           wxmaracasimagebrowser02
99                                                                                                                                                                           );
100
101         wxBoxSizer *sizer= new wxBoxSizer(wxHORIZONTAL);
102                 sizer->Add( wxmaracasimagebrowser02 , 1, wxALL|wxGROW, 0);     
103                 bbGetOutputWidget()->SetSizer(sizer);
104                 bbGetOutputWidget()->Layout();
105
106             marfilesbase->loadActualSerie( NULL/*this->_progressGauge*/ );
107                 vtkImageData *dummy = marfilesbase->getVolume( )->castVtk();
108                 wxmaracasimagebrowser02->LoadData( new marImageData(dummy) );
109                 wxmaracasimagebrowser02->Start();
110
111         } // if marfilesbase!=NULL
112 }
113
114 //--------------------------------------------------------------------
115 void ImageBrowserReader::CreateWidget()
116 {
117   bbSetOutputWidget( new wxPanel( bbGetWxParent() , -1 ) );
118 }
119
120 //--------------------------------------------------------------------
121 void ImageBrowserReader::bbUserConstructor()
122 {
123         bbSetInputType(-999);
124         marparameters                                                   = NULL;
125         marfilesbase                                                    = NULL;
126         wxmaracasimagebrowser02                                 = NULL;
127         wxmaracasimagebrowser02_eventHandler    = NULL;
128 }
129
130 //--------------------------------------------------------------------
131 void ImageBrowserReader::bbUserCopyConstructor()
132 {
133 }
134
135 //--------------------------------------------------------------------
136 void ImageBrowserReader::bbUserDestructor()
137 {
138 }
139
140 void  ImageBrowserReader::DefineImageOutput()
141 {
142         int voi[ 6 ];
143         wxmaracasimagebrowser02->ForceToFinisReadActiveImages( );
144         wxmaracasimagebrowser02->GetROI( voi );
145
146         vtkImageData *imagedata;
147         marDynData *dyndata = new marDynData( marfilesbase->getParameters() );
148         dyndata->loadData( marfilesbase->getVolume( ) , voi );
149         imagedata = dyndata->getVolume( )->castVtk();
150         imagedata->Update(); 
151         bbSetOutputOut( imagedata );
152 }
153
154
155
156 }
157
158 // EO namespace bbmaracasvisu
159
160