//---------------------------------------------------------------------------------------------------------------- // Class definition include //---------------------------------------------------------------------------------------------------------------- #include "wxContourGUIExample.h" #include "wxContourMainFrame.h" #include "OutlineModelManager.h" #include "wxContourEventHandler.h" #include "wxContourMainPanel.h" #include "vtkMetaImageReader.h" #include #include "vtkImageData.h" #include "OutlineModelBuilder.h" #include "ContourThing.h" #include "AxeThing.h" #include "ImageSourceThing.h" #include "ImageSectionThing.h" #include "SomeEnvironment.h" #include "ReaderEnvironment.h" #include "wx/artprov.h" #include #include "interfMainPanel.h" #include #include 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) { } 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();*/ 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(""), 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 return TRUE; } int main(int argc, char* argv[]) { return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), SW_SHOWNORMAL); }