]> Creatis software - creaImageIO.git/blob - appli/TestWxGimmickReaderDialog/main.cxx
change src2 to src and creaImageIO2 to creaImageIO to clarify future developments.
[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    creaImageIO::WxGimmickReaderDialog w(
54                     0,
55                    -1, 
56                                    "localdatabase_Descriptor.dscp",
57                                    "Local Database",
58                    _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
59                    wxDefaultPosition,
60                    wxSize(810,750),
61                    min_dim,
62                    max_dim,
63                    output_dim,
64        
65                                    threads);
66   /* clock_t endwait;
67                 endwait = clock () +  CLOCKS_PER_SEC ;
68                 while (clock() < endwait ) {}*/
69    w.ShowModal();
70
71    if (w.GetReturnCode() == wxID_OK)
72      {
73        std::cout << "$$$$ main : user clicked 'OK' $$$$"<<std::endl;
74        std::cout << "$$$$ selected files : "<<std::endl;
75        //Puts filenames
76        std::vector<std::string> s;
77        w.GetSelectedFiles(s);
78        std::vector<std::string>::iterator i;
79        for (i=s.begin();i!=s.end();++i) 
80          {
81            std::cout << *i << std::endl;
82          }
83        std::cout << "$$$$ "<<std::endl;
84
85        //Puts images
86        std::vector<vtkImageData*> images;
87            w.GetSelectedImages(images,3);
88
89 // images[1]->UpdateInformation();
90         /*   vtkMetaImageReader *r= vtkMetaImageReader::New();
91                    r->SetFileName("c:\\toto.mhd");
92            double zz[3];
93                  images[0]->GetSpacing(zz);
94
95            vtkMetaImageWriter* ww = vtkMetaImageWriter::New(); 
96                  ww->SetFileName("c:\\toto2.mhd"); 
97                  ww->SetInput(images[0]);
98                  ww->GetInput()->ShallowCopy(images[0]);
99                  ww->UpdateInformation();
100                  ww->GetInput()->GetSpacing(zz);
101                  
102
103 //>GetImageDataInput(0)->GetSpacing(zz);
104          images[0]->Delete();
105         
106     ww->Write(); 
107    ww->Delete();
108 */
109
110
111
112        //w.GetSelectedImages(images,output_dim);
113        std::cout<<images.size()<<std::endl;
114
115        crea::VtkBasicSlicer(images.front());
116        images.front()->Delete();
117        w.OnExit();
118
119      }
120    else if (w.GetReturnCode() == wxID_CANCEL)
121      {
122                 
123        w.OnExit();
124        std::cout << "$$$$ main : user clicked 'CANCEL' $$$$"<<std::endl;
125      }
126    else 
127      {
128        w.OnExit();
129        std::cout << "$$$$ main : dialog ended without return code ! $$$$"
130                  <<std::endl;    
131      }
132
133
134    //   std::cout << "$$$$ main : deleting dialog"<<std::endl;
135    //   delete w;
136    std::cout << "$$$$$$$$$$$$$$$$$$$$ main ended "<<std::endl;
137    return false;
138 }
139
140