X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOWxSimpleDlg.cpp;fp=src%2FcreaImageIOWxSimpleDlg.cpp;h=5ee7649e489a5758ada7efb056ca598e55318b11;hb=3aefe04f265639ae28b0db125d2eab5c1b2ac20a;hp=226f55fafddaca2251545fc7dea6fdce75b7b1cf;hpb=aa2f812c1bd0bc2b13ed8969e8a121727df7d052;p=creaImageIO.git diff --git a/src/creaImageIOWxSimpleDlg.cpp b/src/creaImageIOWxSimpleDlg.cpp index 226f55f..5ee7649 100644 --- a/src/creaImageIOWxSimpleDlg.cpp +++ b/src/creaImageIOWxSimpleDlg.cpp @@ -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