///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(500,300))
{
- namedescp = i_namedescp;
+ namedescp = i_namedescp;
namedb = i_namedb;
if(!i_title.empty())
void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event)
{
// Run Gimmick
- WxGimmickReaderDialog dlg(0,-1,
+ WxGimmickReaderDialog dlg(0,-1,
namedescp,
namedb,
_T("Select image(s) - Gimmick! (c)"),
//-----------------------------------------------------------------------------
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 ; slice<sizeImageVector ; slice++)
- {
- vtkImageData *img = getImagesSelected()[slice];
- memcpy(out->GetScalarPointer(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<vtkImageData*>::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