]> Creatis software - creaImageIO.git/blobdiff - appli/TestWxGimmickReaderDialog/main.cxx
minor bugs correction
[creaImageIO.git] / appli / TestWxGimmickReaderDialog / main.cxx
index 5d4a3356fb5074e1764c8b9667a745a7a1c67d38..e2de0d0be1b2eb5ff85eb65b8738eabdf942e311 100644 (file)
@@ -1,9 +1,23 @@
 #include <creaImageIOSystem.h>
 #include <creaWx.h>
 #include <creaImageIOWxGimmickReaderDialog.h>
-
+#include "vtkMetaImageWriter.h"
+#include "vtkMetaImageReader.h"
 #include <creaVtkBasicSlicer.h>
 
+
+
+//#pragma comment(lib, "creaImageIO.lib")
+//#pragma comment(lib, "DelayImp.lib")
+//
+//
+//// Tell the linker that my DLL should be delay loaded
+////#pragma comment(linker, "/DelayLoad:creaImageIO.Dll")
+//\ f
+//// Tell the linker that I want to be able to unload my DLL
+//#pragma comment(linker, "/Delay:unload")
+//
+
 class myApp : public wxApp
 {
 public:
@@ -16,7 +30,7 @@ IMPLEMENT_APP(myApp);
 CREA_WXMAIN_WITH_CONSOLE
 
 bool myApp::OnInit( )
-{       
+{
   wxApp::OnInit();
 #ifdef __WXGTK__
   //See http://www.wxwindows.org/faqgtk.htm#locale
@@ -24,64 +38,135 @@ bool myApp::OnInit( )
 #endif
    wxInitAllImageHandlers();
 
-   /*
-   creaImageIO::SetGimmickMessageLevel(9);
-   creaImageIO::SetGimmickDebugMessageLevel(9);
-   */
+   creaImageIO::SetGimmickMessageLevel(5);
+   creaImageIO::SetGimmickDebugMessageLevel(0);
 
    int min_dim = GIMMICK_2D_IMAGE_SELECTION;
    int max_dim = GIMMICK_3D_IMAGE_SELECTION;
-   int output_dim = NATIVE;
-   int threads = 1;
 
-   creaImageIO::WxGimmickReaderDialog w(0,
-                                       -1,
-                                       _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
-                                       wxDefaultPosition,
-                                       wxSize(1200,800),
-                                       min_dim,
-                                       max_dim,
-                                       output_dim,
-                                       threads);
+//EED
+//   int output_dim = NATIVE;
+   int output_dim = _3D;
+
+   int threads = 1;
+   creaImageIO::WxGimmickReaderDialog w(
+                    0,
+                   -1, 
+                                  "localdatabase_Descriptor.dscp",
+                                  "Local Database",
+                   _T("Select image(s)        - creaImageIOApp  (c) CREATIS ( cnrs)"),
+                   wxDefaultPosition,
+                   wxSize(810,750),
+                   min_dim,
+                   max_dim,
+                   output_dim,
+       
+                                  threads);
+  /* clock_t endwait;
+               endwait = clock () +  CLOCKS_PER_SEC ;
+               while (clock() < endwait ) {}*/
    w.ShowModal();
-   
+
    if (w.GetReturnCode() == wxID_OK)
      {
        std::cout << "$$$$ main : user clicked 'OK' $$$$"<<std::endl;
        std::cout << "$$$$ selected files : "<<std::endl;
-          //Puts filenames
+       //Puts filenames
        std::vector<std::string> s;
        w.GetSelectedFiles(s);
        std::vector<std::string>::iterator i;
        for (i=s.begin();i!=s.end();++i) 
-        {
-          std::cout << *i << std::endl;
-        }
+         {
+           std::cout << *i << std::endl;
+         }
        std::cout << "$$$$ "<<std::endl;
 
-          //Puts images
+       //Puts images
        std::vector<vtkImageData*> images;
-       w.GetSelectedImages(images,output_dim);
-          
-       crea::VtkBasicSlicer(images.front());
+          w.GetSelectedImages(images,3);
+
+       
+       // First Exemple:
+       // We take all attributes from database
+       // but only for the first selected file.
+    // For the moment, no output model file (XML)
+       //  std::vector<creaImageIO::OutStrGimmick> out;
+       //  std::vector<std::string> attr;
+       //  attr.push_back("ALL");
+       //  w.getSelected(out, attr, false,"");
+
+
+    // Second Exemple:
+       // We take all attributes from database
+       // but for all selected file.
+    // For the moment, no output model file (XML)
+       //  std::vector<creaImageIO::OutStrGimmick> out;
+       //  std::vector<std::string> attr;
+       //  attr.push_back("ALL");
+       //  w.getSelected(out, attr,true,"");
+
+    // Third Exemple:
+       // We take attributes from database and others
+       // but for all selected file.
+    // For the moment, no output model file (XML)
+          std::vector<creaImageIO::OutStrGimmick> out;
+       std::vector<std::string> attr;
+          attr.push_back("D0028_0010");
+          attr.push_back("D0008_0023");
+          attr.push_back("D0008_1070");
+          w.getSelected(out, attr,true,"");
+       std::cout<<out.size()<<std::endl;
+          crea::VtkBasicSlicer(out.front().img);
+       out.front().img->Delete();
+       w.OnExit();
+
+
+// images[1]->UpdateInformation();
+       /*   vtkMetaImageReader *r= vtkMetaImageReader::New();
+                  r->SetFileName("c:\\toto.mhd");
+          double zz[3];
+                images[0]->GetSpacing(zz);
+
+          vtkMetaImageWriter* ww = vtkMetaImageWriter::New(); 
+                ww->SetFileName("c:\\toto2.mhd"); 
+                ww->SetInput(images[0]);
+                ww->GetInput()->ShallowCopy(images[0]);
+                ww->UpdateInformation();
+                ww->GetInput()->GetSpacing(zz);
+                
+
+//>GetImageDataInput(0)->GetSpacing(zz);
+        images[0]->Delete();
+       
+    ww->Write(); 
+   ww->Delete();
+*/
+
+
+
+
+          crea::VtkBasicSlicer(out.front().img);
        images.front()->Delete();
+       w.OnExit();
 
      }
    else if (w.GetReturnCode() == wxID_CANCEL)
      {
+               
+       w.OnExit();
        std::cout << "$$$$ main : user clicked 'CANCEL' $$$$"<<std::endl;
      }
    else 
      {
-        std::cout << "$$$$ main : dialog ended without return code ! $$$$"
-                 <<std::endl;
-      
+       w.OnExit();
+       std::cout << "$$$$ main : dialog ended without return code ! $$$$"
+                 <<std::endl;    
      }
 
+
    //   std::cout << "$$$$ main : deleting dialog"<<std::endl;
    //   delete w;
    std::cout << "$$$$$$$$$$$$$$$$$$$$ main ended "<<std::endl;
    return false;
 }
-
-