]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuImageBrowserReader._cxx_
#3262 creaMaracasVisu Feature New Normal - Export LookupTable fron ColorLayerImageV...
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuImageBrowserReader._cxx_
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and 
10 #  abiding by the rules of distribution of free software. You can  use, 
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
12 #  license as circulated by CEA, CNRS and INRIA at the following URL 
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability. 
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */ 
25
26 #include "bbmaracasvisuImageBrowserReader.h"
27 #include "bbmaracasvisuPackage.h"
28
29 #include <marDynData.h>
30
31 #include <wx/msgdlg.h>
32
33 namespace bbmaracasvisu
34 {
35
36   //------------------------------------------------------------------------------------------------------------------------------------
37   // Event handling auxiliar class
38   //------------------------------------------------------------------------------------------------------------------------------------
39  
40           //--------------------------------------------------------------------------------------------------------------------------------
41           // Constructors ans destructors
42           //--------------------------------------------------------------------------------------------------------------------------------
43                 wxMaracasImageBrowser02_EvtHandler::wxMaracasImageBrowser02_EvtHandler(
44                                                                                                                 ImageBrowserReader *bbParent,
45                                                                                                                 wxMaracasImageBrowser02 * wxmaracasimagebrowser02
46                                                                                                                 )
47                 :wxEvtHandler()
48                 {
49                         mbbtkImageBrowserReader = bbParent;
50                         mmaracasimagebrowser02  = wxmaracasimagebrowser02;
51
52                         wxmaracasimagebrowser02->PushEventHandler(this);
53                         Connect(mmaracasimagebrowser02->GetId(),wxEVT_MARACASIMAGEBROWSERCUTIMAGE,(wxObjectEventFunction) (wxCommandEventFunction) &wxMaracasImageBrowser02_EvtHandler::OnCutImage );
54                 }
55
56  //--------------------------------------------------------------------------------------------------------------------------------
57                 wxMaracasImageBrowser02_EvtHandler ::  ~wxMaracasImageBrowser02_EvtHandler()
58                 {
59                 }
60                 
61  //--------------------------------------------------------------------------------------------------------------------------------
62                 void wxMaracasImageBrowser02_EvtHandler :: OnCutImage(wxCommandEvent& event)
63                 {
64                         mbbtkImageBrowserReader->DefineImageOutput();
65                 }
66
67 //--------------------------------------------------------------------
68 //--------------------------------------------------------------------
69 //--------------------------------------------------------------------
70
71
72
73
74 BBTK_ADD_BLACK_BOX_TO_PACKAGE(maracasvisu,ImageBrowserReader)
75 BBTK_BLACK_BOX_IMPLEMENTATION(ImageBrowserReader,bbtk::WxBlackBox);
76
77 //--------------------------------------------------------------------
78 void ImageBrowserReader::Process()
79 {
80
81         if (marparameters!=NULL){
82                 delete marparameters;
83                 marparameters = NULL;
84         }
85         marparameters = new marParameters();
86
87
88         if (wxmaracasimagebrowser02!=NULL){     
89                 delete wxmaracasimagebrowser02; 
90                 delete wxmaracasimagebrowser02_eventHandler;
91                 wxmaracasimagebrowser02                                 = NULL;
92                 wxmaracasimagebrowser02_eventHandler    = NULL;
93         }
94
95
96         if (marfilesbase!=NULL){
97                 marfilesbase->CleanListImages();
98             delete marfilesbase;
99                 marfilesbase                                                    = NULL;
100         }
101
102         if (bbGetInputType()==-1  )  marfilesbase = new marGdcmDicomILPD(marparameters);
103         if (bbGetInputType()== 0  )  marfilesbase = new marRAWFiles(marparameters);
104         if (bbGetInputType()== 100)  marfilesbase = new marGdcmDicomILPD(marparameters);
105         if (bbGetInputType()== 200)  marfilesbase = new marRAW2Files(marparameters);
106         if (bbGetInputType()== 300)  marfilesbase = new marRAW2AsciiFiles(marparameters);
107
108         if (marfilesbase!=NULL){
109
110 //              marfilesbase->CleanListImages();
111                 std::vector <std::string*> *lstStringFileName;
112                 lstStringFileName = marfilesbase->GetListImages( );
113                 int i,size = bbGetInputLstFileName().size();
114                 for ( i=0 ; i<size; i++ ){
115                         lstStringFileName->push_back( new std::string(bbGetInputLstFileName()[i]) );
116                 } // for
117
118                 wxmaracasimagebrowser02 = new wxMaracasImageBrowser02(  bbGetOutputWidget() , 
119                                                                                                                                 marfilesbase  , 
120                                                                                                                                 marfilesbase->getParameters() 
121                                                                                                                           );
122                 wxmaracasimagebrowser02_eventHandler = new wxMaracasImageBrowser02_EvtHandler(this, 
123                                                                                                                                                                           wxmaracasimagebrowser02
124                                                                                                                                                                           );
125
126         wxBoxSizer *sizer= new wxBoxSizer(wxHORIZONTAL);
127                 sizer->Add( wxmaracasimagebrowser02 , 1, wxALL|wxGROW, 0);     
128                 bbGetOutputWidget()->SetSizer(sizer);
129                 bbGetOutputWidget()->Layout();
130
131             marfilesbase->loadActualSerie( NULL/*this->_progressGauge*/ );
132                 vtkImageData *dummy = marfilesbase->getVolume( )->castVtk();
133                 wxmaracasimagebrowser02->LoadData( new marImageData(dummy) );
134                 wxmaracasimagebrowser02->Start();
135
136         } // if marfilesbase!=NULL
137 }
138
139 //--------------------------------------------------------------------
140 void ImageBrowserReader::CreateWidget()
141 {
142   bbSetOutputWidget( new wxPanel( bbGetWxParent() , -1 ) );
143 }
144
145 //--------------------------------------------------------------------
146 void ImageBrowserReader::bbUserConstructor()
147 {
148         bbSetInputType(-999);
149         marparameters                                                   = NULL;
150         marfilesbase                                                    = NULL;
151         wxmaracasimagebrowser02                                 = NULL;
152         wxmaracasimagebrowser02_eventHandler    = NULL;
153 }
154
155 //--------------------------------------------------------------------
156 void ImageBrowserReader::bbUserCopyConstructor()
157 {
158 }
159
160 //--------------------------------------------------------------------
161 void ImageBrowserReader::bbUserDestructor()
162 {
163 }
164
165 void  ImageBrowserReader::DefineImageOutput()
166 {
167         int voi[ 6 ];
168         wxmaracasimagebrowser02->ForceToFinisReadActiveImages( );
169         wxmaracasimagebrowser02->GetROI( voi );
170
171         vtkImageData *imagedata;
172         marDynData *dyndata = new marDynData( marfilesbase->getParameters() );
173         dyndata->loadData( marfilesbase->getVolume( ) , voi );
174         imagedata = dyndata->getVolume( )->castVtk();
175         imagedata->Update(); 
176         bbSetOutputOut( imagedata );
177 }
178
179
180
181 }
182
183 // EO namespace bbmaracasvisu
184
185