]> Creatis software - creaImageIO.git/blob - appli/TestWxGimmickReaderDialog/main.cxx
33157d9cf427f055cbbe9ee6ee1edacc2753939c
[creaImageIO.git] / appli / TestWxGimmickReaderDialog / main.cxx
1 #include <creaImageIOSystem.h>
2 #include <creaWx.h>
3 #include <creaImageIOWxGimmickReaderDialog.h>
4 #include "vtkMetaImageWriter.h"
5 #include "vtkMetaImageReader.h"
6 #include <creaVtkBasicSlicer.h>
7
8
9 //
10 //#pragma comment(lib, "creaImageIO.lib")
11 //#pragma comment(lib, "DelayImp.lib")
12 //
13 //
14 //// Tell the linker that my DLL should be delay loaded
15 ////#pragma comment(linker, "/DelayLoad:creaImageIO.Dll")
16 //\ f
17 //// Tell the linker that I want to be able to unload my DLL
18 //#pragma comment(linker, "/Delay:unload")
19 //
20
21 class myApp : public wxApp
22 {
23 public:
24   bool OnInit( );
25   int  OnExit() { return true; }
26 };
27
28 IMPLEMENT_APP(myApp);
29
30 CREA_WXMAIN_WITH_CONSOLE
31
32 bool myApp::OnInit( )
33 {
34   wxApp::OnInit();
35 #ifdef __WXGTK__
36   //See http://www.wxwindows.org/faqgtk.htm#locale
37   setlocale(LC_NUMERIC, "C");
38 #endif
39    wxInitAllImageHandlers();
40
41    creaImageIO::SetGimmickMessageLevel(5);
42    creaImageIO::SetGimmickDebugMessageLevel(0);
43
44    int min_dim = GIMMICK_2D_IMAGE_SELECTION;
45    int max_dim = GIMMICK_3D_IMAGE_SELECTION;
46
47 //EED
48 //   int output_dim = NATIVE;
49    int output_dim = _3D;
50
51    int threads = 1;
52
53  
54    creaImageIO::WxGimmickReaderDialog w(
55                     0,
56                    -1, 
57                                    "localdatabase_Descriptor.dscp",
58                                    "Local Database",
59                    _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
60                    wxDefaultPosition,
61                    wxSize(810,750),
62                    min_dim,
63                    max_dim,
64                    output_dim,
65        
66                                    threads);
67   /* clock_t endwait;
68                 endwait = clock () +  CLOCKS_PER_SEC ;
69                 while (clock() < endwait ) {}*/
70    w.ShowModal();
71
72    if (w.GetReturnCode() == wxID_OK)
73      {
74        std::cout << "$$$$ main : user clicked 'OK' $$$$"<<std::endl;
75        std::cout << "$$$$ selected files : "<<std::endl;
76        //Puts filenames
77        std::vector<std::string> s;
78        w.GetSelectedFiles(s);
79        std::vector<std::string>::iterator i;
80        for (i=s.begin();i!=s.end();++i) 
81          {
82            std::cout << *i << std::endl;
83          }
84        std::cout << "$$$$ "<<std::endl;
85
86        //Puts images
87        std::vector<vtkImageData*> images;
88            w.GetSelectedImages(images,3);
89
90 // images[1]->UpdateInformation();
91         /*   vtkMetaImageReader *r= vtkMetaImageReader::New();
92                    r->SetFileName("c:\\toto.mhd");
93            double zz[3];
94                  images[0]->GetSpacing(zz);
95
96            vtkMetaImageWriter* ww = vtkMetaImageWriter::New(); 
97                  ww->SetFileName("c:\\toto2.mhd"); 
98                  ww->SetInput(images[0]);
99                  ww->GetInput()->ShallowCopy(images[0]);
100                  ww->UpdateInformation();
101                  ww->GetInput()->GetSpacing(zz);
102                  
103
104 //>GetImageDataInput(0)->GetSpacing(zz);
105          images[0]->Delete();
106         
107     ww->Write(); 
108    ww->Delete();
109 */
110
111
112
113        //w.GetSelectedImages(images,output_dim);
114        std::cout<<images.size()<<std::endl;
115
116        crea::VtkBasicSlicer(images.front());
117        images.front()->Delete();
118        w.OnExit();
119
120      }
121    else if (w.GetReturnCode() == wxID_CANCEL)
122      {
123                 
124        w.OnExit();
125        std::cout << "$$$$ main : user clicked 'CANCEL' $$$$"<<std::endl;
126      }
127    else 
128      {
129        w.OnExit();
130        std::cout << "$$$$ main : dialog ended without return code ! $$$$"
131                  <<std::endl;    
132      }
133
134
135    //   std::cout << "$$$$ main : deleting dialog"<<std::endl;
136    //   delete w;
137    std::cout << "$$$$$$$$$$$$$$$$$$$$ main ended "<<std::endl;
138    return false;
139 }
140
141