#include "creaImageIOSimpleView.h" #include #include #include namespace creaImageIO { /** * \ingroup View */ /// Simple Wxwidgets interface to select file(s) or directory or from creaImageIO database to display //EED class __declspec(dllexport) WxAnySimpleDlg : public wxDialog class CREAIMAGEIO_EXPORT WxAnySimpleDlg : public wxDialog { public: /// Ctor WxAnySimpleDlg( wxWindow *parent, wxString i_title =_T(""), const std::string i_namedescp = "localdatabase_Descriptor.dscp", const std::string i_namedb = "Local Database" ); ~WxAnySimpleDlg(){}; void setExts(std::vector); /// Callback to read file(s) void OnReadFile(wxCommandEvent& event); /// Callback to read directory, no recursive void OnReadDirectory(wxCommandEvent &event); /// Callback to select from creaImageIO database void OnReadGimmick(wxCommandEvent &event); /// return a vtkImageData vector of selected images, if available std::vector getVtkImagesSelected() {return m_Vresults;} wxString getInfoImage(); void set(bool i_dicom){m_dicom= i_dicom;} std::vector & getImagesSelected(){ return m_AnyImages;} // return the size of readed images std::vector getDims(){ return m_AnyDims;} // return the type of readed images std::vector getTypes(){ return m_AnyType;} // get an Image on wanted type template typename TImage::Pointer getImage(boost::any i_AnyImage) { typedef itk::Image ImageOut; ImageOut::Pointer img = ImageOut::New(); img = boost::any_cast< ImageOut::Pointer>(i_AnyImage); return img; } // get the images on itk type defined by user template std::vector getTemplatedImagesSelected() { std::vector imgs; std::vector::iterator it = m_AnyImages.begin(); for(; it != m_AnyImages.end(); it++) { imgs.push_back(boost::any_cast (*it)); } return imgs; } bool AllSameType(); private: std::vector m_AnyDims; std::vector m_AnyType; std::vector m_AnyImages; std::vector m_exts; std::string namedescp; std::string namedb; wxString infoimage; std::string m_dir; template void split3Din3Dvtk(TImage* i_Img); template void split4Din3Dvtk(TImage* i_Img); bool m_dicom; /// interface to read data SimpleView m_view; void readImg(const std::string &i_name); void readDicomImg(const std::vector &i_names); std::vector m_Vresults; const size_t getNumberOfDimensions(const std::string &i_name); const std::type_info & getType(const std::string &i_name); }; }