X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOWxSimpleDlg.cpp;h=239b00c0859f30a233524813449b22e02234dae2;hb=efe10f4ac0d8de45d26ca7b1f74f3676802c1b90;hp=d2f509cc964e267a630812baaa6f9783248fc1a2;hpb=7a7bbac184759163de981962bed465ae1d71f84b;p=creaImageIO.git diff --git a/src/creaImageIOWxSimpleDlg.cpp b/src/creaImageIOWxSimpleDlg.cpp index d2f509c..239b00c 100644 --- a/src/creaImageIOWxSimpleDlg.cpp +++ b/src/creaImageIOWxSimpleDlg.cpp @@ -33,13 +33,13 @@ namespace creaImageIO ///Ctor - WxSimpleDlg::WxSimpleDlg(wxWindow *parent, + WxSimpleDlg::WxSimpleDlg(wxWindow *parent, wxString i_title, const std::string i_namedescp , const std::string i_namedb) - : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(230,150)) + : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(500,300)) { - namedescp = i_namedescp; + namedescp = i_namedescp; namedb = i_namedb; if(!i_title.empty()) @@ -47,15 +47,15 @@ namespace creaImageIO this->SetTitle(i_title); } // Button to select file(s) - wxButton *fileBut = new wxButton(this, -1,_T("Select a single file"), wxPoint(10,7) ); + wxButton *fileBut = new wxButton(this, -1,_T("Select a single file"), wxPoint(10,10) ); Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadFile ); // Button to select directory - wxButton *directoryBut = new wxButton(this, -1,_T("Select all the files in a directory"), wxPoint(10,40) ); + wxButton *directoryBut = new wxButton(this, -1,_T("Select all the files in a directory"), wxPoint(10,50) ); Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadDirectory ); // button to select creaImageIO - wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,70) ); + wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,90) ); Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadGimmick ); /// \TODO Button to select Bruker directory @@ -137,7 +137,7 @@ namespace creaImageIO void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event) { // Run Gimmick - WxGimmickReaderDialog dlg(0,-1, + WxGimmickReaderDialog dlg(0,-1, namedescp, namedb, _T("Select image(s) - Gimmick! (c)"), @@ -146,11 +146,11 @@ namespace creaImageIO GIMMICK_2D_IMAGE_SELECTION, GIMMICK_3D_IMAGE_SELECTION, _3D, - 1); + 0); dlg.ShowModal(); if (dlg.GetReturnCode() == wxID_OK) { -//EED1 dlg.stopReading(); + dlg.stopReading(); std::vector outStrGimmick; dlg.getSelected(outStrGimmick, m_attrDicomTags,true,""); m_results.clear(); @@ -214,104 +214,8 @@ namespace creaImageIO //----------------------------------------------------------------------------- vtkImageData* WxSimpleDlg::getVolumeSelected() { - vtkImageData *result; - -// creaImageIO::WxSimpleDlg dlg(0,crea::std2wx(bbGetInputTitle()),"localdatabase_Descriptor.dscp","Local Database"); -// dlg.SetAttrDicomTags( bbGetInputDicomTags() ); -// dlg.ShowModal(); -// bbSetOutputDicomInfo( dlg.getDicomInfoImagesSelected() ); - - if (getImagesSelected().size()!=0){ -// bbSetOutputFileName( std::string( dlg.getInfoImage().mb_str() ) ); - if(getImagesSelected().size() ==1) - { - result = getImagesSelected()[0] ; - } else { - // FCY: it will be a big problem if we have several kind of data in the same folder. - // creation of a huge vtkImageData!!!! - vtkImageData* first = getImagesSelected()[0]; - int dim[3]; - first->GetDimensions(dim); - if (dim[2]==1) - { - vtkImageData *out = vtkImageData::New(); - int ext[6]; -//EED 2017-01-01 Migration VTK7 -#if VTK_MAJOR_VERSION <= 5 - first->GetWholeExtent(ext); -#else - first->GetExtent(ext); -#endif - if(ext[5] == 0) - { - ext[5] = getImagesSelected().size()-1; - } else { - ext[5] = ext[5] * getImagesSelected().size()-1; // to deal with multiframes - } // ext - out->SetExtent(ext); - double spac[3]; - first->GetDimensions(dim); - first->GetSpacing(spac); - if (spac[0]==spac[1]) - { - spac[2]=spac[0]; - } - out->SetSpacing(spac); - out->SetDimensions(dim[0], dim[1], getImagesSelected().size() ); -//EED 2017-01-01 Migration VTK7 -#if VTK_MAJOR_VERSION <= 5 - - out->SetScalarType(first->GetScalarType()); - out->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); - out->AllocateScalars(); - out->Update(); -#else - out->AllocateScalars(first->GetScalarType(),first->GetNumberOfScalarComponents()); -#endif - - - unsigned long imsize = dim[0] * dim[1]; - imsize = imsize * dim[2]; // deal with multiframes here - // differents formats char , short, etc... - // differents components 1..3 ex. jpg ->RGB 3 - imsize = imsize * first->GetScalarSize() * first->GetNumberOfScalarComponents(); - int slice,sizeImageVector=getImagesSelected().size(); - for (slice=0 ; sliceGetScalarPointer(0,0,slice), img->GetScalarPointer(0,0,0), imsize); - //img->Delete(); - } // for slice - out->Modified(); -//EED This is NOT working. The iteration over the pointer vtkImageData -// int slice=0; -// std::vector::iterator it; -// for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) -// { -// memcpy(out->GetScalarPointer(0,0,slice), (*it)->GetScalarPointer(0,0,0), imsize); -// slice++; -// } -// //for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) -// //{ -// // (*it)->Delete(); -// //} - - result =out; - - } else { - result = first; - } // dim - } // if getImagesSelected size - } else { - result = NULL; - } // getImagesSelected().size()!=0 - - result->Modified(); - return result; - - } - - + return m_view.getVolumeSelected( getImagesSelected() ); + } } // namespace creaImageIO