//---------------------------------------------------------------------------------------------------------------- // Class definition include //---------------------------------------------------------------------------------------------------------------- #include "wxContourGUIExample.h" #include "wxContourMainFrame.h" //#include "OutlineModelManager.h" //#include "wxContourEventHandler.h" #include #include //#include "wxContourMainPanel.h" #include "vtkMetaImageReader.h" #include #include "vtkImageData.h" #include "wx/artprov.h" #include //#include "OutlineModelBuilder.h" //#include "ContourThing.h" //#include "AxeThing.h" //#include "ImageSourceThing.h" //#include "ImageSectionThing.h" //#include "SomeEnvironment.h" //#include "ReaderEnvironment.h" //#include "interfMainPanel.h" wxContourMainFrame* wxTheApplication::frame = 0; //---------------------------------------------------------------------------------------------------------------- // This macro implements the entry point (main function) for the application //---------------------------------------------------------------------------------------------------------------- IMPLEMENT_APP( wxTheApplication ); /* wxContourGUIExample :: wxContourGUIExample(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame((wxFrame *) NULL, -1, title, pos, size) { } */ #ifdef _DEBUG void wxAppConsole::OnAssert(char const *,int,char const *,char const *) { } void wxAppConsole::OnAssertFailure(char const *,int,char const *,char const *,char const *) { } #endif bool wxTheApplication :: OnInit() { //------------------------------------------------------------- // Doing what is done by the bbtk boxes //vtkMetaImageReader *reader = vtkMetaImageReader::New(); // reader->SetFileName( "data\\hola.mhd" ); // reader->SetFileName( "C:/Program Files/bbtk-1.0/data/vtk/img02.maracas.mhd" ); // reader->SetFileName( "C:/Program Files/bbtk-1.0/data/vtk/test01.maracas.mhd" ); // reader->SetFileName( "C:/download/Elise/Elise_IRM_Helium/A/test01b.maracas.mhd" ); //wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.mhd"), wxOPEN ); //if (dialog.ShowModal() == wxID_OK) //{ // std::string filename = (const char *)(dialog.GetPath().mb_str()); // reader->SetFileName( filename.c_str() ); //} else { // reader->SetFileName( "data\\hola.mhd" ); // Halt(0); //} //reader->Update(); /*JCP 17-10-2008 wxInitAllImageHandlers(); int image_type = GIMMICK_3D_IMAGE_SELECTION; int threads = 1; creaImageIO::WxGimmickDialog w(0, -1, _T("WxGimmickDialog test"), wxDefaultPosition, wxSize(1200,800), image_type, threads); w.ShowModal(); vtkImageData* selectedimage=NULL; if(w.GetReturnCode() == wxID_OK){ std::vector s; w.GetSelectedFiles(s); std::vector::iterator i; for (i=s.begin();i!=s.end();++i){ std::cout << *i << std::endl; } std::cout << "$$$$ "< images; w.GetSelectedImages(images); selectedimage = images[0]; //crea::VtkBasicSlicer(images.front()); //images.front()->Delete(); }else if (w.GetReturnCode() == wxID_CANCEL){ vtkMetaImageReader *reader = vtkMetaImageReader::New(); reader->SetFileName( "data/hola.mhd" ); reader->Update(); selectedimage = reader->GetOutput(); }else{ return TRUE; } std::string conceptsFN = "data/holaConceptsFile.cf"; std::string imageSourcesFN = "data/holaImagesInstantsFile.of"; std::string imageSectionsFN = ""; std::string axeThingsFN = ""; std::map * sourcesMap = new std::map(); std::map* sectionsMap = new std::map(); std::map* axesMap = new std::map(); std::map* outlinesMap = new std::map(); ImageSourceThing * thing = new ImageSourceThing(selectedimage); sourcesMap->insert(std::pair( "Source Image 1", thing)); OutlineModelBuilder * _builder = new OutlineModelBuilder( conceptsFN ); _builder->buildImageSource_Envornment( imageSourcesFN, sourcesMap ); _builder->buildImageSection_Envornment( imageSectionsFN, sectionsMap ); _builder->buildAxe_Envornment(axeThingsFN, axesMap ); _builder->buildCountour_Envornment( imageSectionsFN, outlinesMap ); //------------------------------------------------------------- //frame = new wxContourMainFrame(_builder->getImSourceEnv(), _builder->getImSectionEnv(), _builder->getAxesEnv(), _builder->getContourEnv(),NULL, wxID_ANY, wxT("ROI Application Sample"), wxPoint(50,50), wxSize(800, 600)); //frame->Show(TRUE); //Creating the evtHandler of the panels wxContourEventHandler * eventHandler = new wxContourEventHandler(); //Creating the window that will show the panels //JCP 21 - 10 - 08 //wxFrame* frame1 = new wxFrame(NULL, wxID_ANY, wxT("ROI Application - Evaluation version, 23 Oct 2008 - Use limited to the research team (Creatis-LRMN)"), wxPoint(50,50), wxSize(800, 600) ); wxFrame* frame1 = new wxFrame(NULL, wxID_ANY, wxT("ROI Application - Evaluation version, 23 Oct 2008 "), wxPoint(50,50), wxSize(800, 600) ); frame = new wxContourMainFrame( frame1, wxID_ANY, wxString(_T("")), wxPoint(50,50), wxSize(800, 600) ); //frame = new wxContourMainFrame( NULL, wxID_ANY, wxT("ROI Application - Evaluation version, 17 Oct 2008 - Use limited to the research team (Creatis-LRMN)"), wxPoint(50,50), wxSize(800, 600) ); frame1->CreateStatusBar(); //JCP 21 - 10 - 08 //Getting the parent for the panels ( using aui ) wxAuiNotebook * parent = frame->createNotebook(); //Creating the objects to manage OutlineModelManager * modelManager = new OutlineModelManager( _builder->getImSourceEnv(), _builder->getImSectionEnv(), _builder->getAxesEnv(), _builder->getContourEnv() ); wxInstantChooserPanel * instantPanel = new wxInstantChooserPanel( parent, "Instant Chooser", true ); ImageSourceThing * imageSource = modelManager->getImageSourceThingByKeyName( "Source Image 1" ); wxContourViewPanel * theViewPanel = new wxContourViewPanel( imageSource->getSourceImage(), parent ); //wxContour_ButtonsBar * buttons = new wxContour_ButtonsBar(frame, -1, wxDefaultPosition, wxDefaultSize); eventHandler->setModelManager( modelManager ); eventHandler->setViewPanel( theViewPanel ); eventHandler->setInstantChooserPanel( instantPanel ); //eventHandler->setButtonsBar( buttons ); //JCP 17 - 10 - 08 //buttons->Show(false); //JCP 17 - 10 - 08 bool successConfiuration = eventHandler->configureEventsHandling(); frame->setViewPanel( theViewPanel ); frame->setInstantChooserPanel( instantPanel ); //JCP 17 - 10 - 08 // frame->setButtonsBar( buttons ); //JCP 17 - 10 - 08 successConfiuration &= frame->configurePanels( parent ); //JCP 17 - 10 - 08 //buttons->Show(false); //JCP 17 - 10 - 08 //frame->Show(TRUE); frame1->Show(TRUE); //JCP 17 - 10 - 08 //if ( successConfiuration ) //{ // frame->Show(TRUE); //} // SetTopWindow(frame); //JCP -- new Interface interfMainPanel* pannew = interfMainPanel::getInstance(frame1, eventHandler); //pannew->addContourCheckBox("contour1"); //pannew->addContourCheckBox("contour3"); //pannew->addContourCheckBox("contour2"); //pannew->addContourCheckBox("contour4"); //JCP -- new Interface JCP 17-10-2008*/ wxInitAllImageHandlers(); int image_type = GIMMICK_3D_IMAGE_SELECTION; int threads = 1; creaImageIO::WxGimmickDialog w(0, -1, _T("WxGimmickDialog test"), wxDefaultPosition, wxSize(1200,800), image_type, threads); w.ShowModal(); //vtkImageData* selectedimage=NULL; std::vector images; if(w.GetReturnCode() == wxID_OK){ std::vector s; w.GetSelectedFiles(s); std::vector::iterator i; for (i=s.begin();i!=s.end();++i){ std::cout << *i << std::endl; } std::cout << "$$$$ "<Delete(); }else if (w.GetReturnCode() == wxID_CANCEL){ vtkMetaImageReader *reader = vtkMetaImageReader::New(); reader->SetFileName( "data/hola.mhd" ); reader->Update(); images.push_back(reader->GetOutput()); }else{ return -1; } wxFrame* frame1 = new wxFrame(NULL, wxID_ANY, wxT("ROI Application - Evaluation version, 28 Jan 2009 "), wxPoint(400,50), wxSize(800, 600) ); //frame = new wxContourMainFrame( frame1, wxID_ANY, wxString(_T("")), wxPoint(50,50), wxSize(800, 600), images ); frame = wxContourMainFrame::getInstance(frame1, wxID_ANY, wxString(_T("")), wxPoint(200,50), wxSize(800, 600), images ); frame1->CreateStatusBar(); frame1->Show(TRUE); return TRUE; } #if(WIN32) int main(int argc, char* argv[]) { return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), SW_SHOWNORMAL); } #else #endif