X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_Icons_NDimensions%2FinterfMainPanel.cxx;h=6f5dd532d8a533e8ca1e2ef955174e21fa73c44c;hb=29d20b730ae0aaabfb6328f36aaec34cb22cc56e;hp=1ad6cb422b7ae2f87e48920c3dc1b84cf5c74d59;hpb=a654abbc209ed3104e98553cb381ef1c2845937a;p=creaContours.git diff --git a/lib/Interface_Icons_NDimensions/interfMainPanel.cxx b/lib/Interface_Icons_NDimensions/interfMainPanel.cxx index 1ad6cb4..6f5dd53 100644 --- a/lib/Interface_Icons_NDimensions/interfMainPanel.cxx +++ b/lib/Interface_Icons_NDimensions/interfMainPanel.cxx @@ -12,28 +12,38 @@ */ interfMainPanel* interfMainPanel::interfmainpanel=NULL; +wxFrame* interfMainPanel::_newframe=NULL; interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtHandler * evtHandler, std::string datadir) : wxPanel(parent, -1, wxDefaultPosition, wxSize(sizex, sizey), wxBORDER_SUNKEN) { - PANEL = "New Contour"; - PANEL1 = "I/O"; - PANEL2 = "Edit"; - PANEL3 = "Delete"; - PANEL4 = "Tools"; - PANEL5 = "Segmentation"; - segmentPanel = NULL; - segmentPanelITK = NULL; - configPanel = NULL; - spreadPanel = NULL; - infoWin=NULL; - informationPanel=NULL; - + PANEL = "New Contour"; + PANEL1 = "I/O"; + PANEL2 = "Edit"; + PANEL3 = "Delete"; + PANEL4 = "Tools"; + PANEL5 = "Segmentation"; + segmentPanel = NULL; + segmentPanelITK = NULL; + configPanel = NULL; + spreadPanel = NULL; + infoWin = NULL; + infoPanel = NULL; + infoPanelMask = NULL; + informationPanel = NULL; + mirrorPanel = NULL; + thresholdPanel = NULL; + currentWindow = NULL; + +//CMRU 17-08-09 ------------------------------------------------------------------ + infoPanelCalibration = NULL; + panelAux = NULL; +//-------------------------------------------------------------------------------- splitterwindow = new wxSplitterWindow(this,-1, wxDefaultPosition, wxSize(sizex, sizey), wxSP_3DSASH, wxString(_T(""))); - + + splitterwindow->SetMinimumPaneSize( 10 ); sizey = sizey/8; - currentWindow = NULL; wxPanel* toolpanel = new wxPanel(splitterwindow, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); @@ -54,21 +64,21 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH wxButton* b5 = getButton(toolpanel); b5->SetClientData(&PANEL5); - wxPanel* mentex = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); + wxPanel* mentex = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex1 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex2 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex3 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex4 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex5 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); - menubar = new interfNewContourMenu(mentex, sizex, sizey, evtHandler, datadir); - menubar1 = new interfIOMenu(mentex1, sizex, sizey, evtHandler, datadir); - menubar2 = new interfEditMenu(mentex2, sizex, sizey, evtHandler, datadir); - menubar3 = new interfDeleteMenu(mentex3, sizex, sizey, evtHandler, datadir); - menubar4 = new interfToolsMenu(mentex4, sizex,sizey, evtHandler, datadir); - menubar5 = new interfSegmentationMenu(mentex5, sizex,sizey, evtHandler, datadir); + menubar = new interfNewContourMenu (mentex, sizex, sizey, evtHandler, datadir); + menubar1 = new interfIOMenu (mentex1, sizex, sizey, evtHandler, datadir); + menubar2 = new interfEditMenu (mentex2, sizex, sizey, evtHandler, datadir); + menubar3 = new interfDeleteMenu (mentex3, sizex, sizey, evtHandler, datadir); + menubar4 = new interfToolsMenu (mentex4, sizex ,sizey, evtHandler, datadir); + menubar5 = new interfSegmentationMenu(mentex5, sizex, sizey, evtHandler, datadir); - statictext = getText(mentex, PANEL); + statictext = getText(mentex, PANEL); statictext1 = getText(mentex1, PANEL1); statictext2 = getText(mentex2, PANEL2); statictext3 = getText(mentex3, PANEL3); @@ -100,11 +110,12 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH wxFlexGridSizer* infosizer = new wxFlexGridSizer(1,1,2,2); infoPanel->SetSizer(infosizer, true); infoPanel->SetAutoLayout( true ); - + splitterwindow->Initialize(toolpanel); + splitterwindow->SetSashGravity(1); splitterwindow->SplitHorizontally(toolpanel, infoPanel); - - Connect(b->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); + + Connect(b->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); Connect(b1->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); Connect(b2->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); Connect(b3->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); @@ -112,138 +123,55 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH Connect(b5->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); this->Layout(); - /*sizey = sizey/8; - currentWindow = NULL; - - PANEL = "New Contour"; - PANEL1 = "I/O"; - PANEL2 = "Edit"; - PANEL3 = "Delete"; - PANEL4 = "Tools"; - - - wxPanel* toolpanel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString("")); - - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(6,2,2,2); - toolpanel->SetSizer(flexsizer, true); - toolpanel->SetAutoLayout( true ); - - wxButton* b = getButton(toolpanel); - b->SetClientData(&PANEL); - wxButton* b1 = getButton(toolpanel); - b1->SetClientData(&PANEL1); - wxButton* b2 = getButton(toolpanel); - b2->SetClientData(&PANEL2); - wxButton* b3 = getButton(toolpanel); - b3->SetClientData(&PANEL3); - wxButton* b4 = getButton(toolpanel); - b4->SetClientData(&PANEL4); - - - wxPanel* mentex = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString("")); - wxPanel* mentex1 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString("")); - wxPanel* mentex2 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString("")); - wxPanel* mentex3 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString("")); - wxPanel* mentex4 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString("")); - - menubar = new interfNewContourMenu(mentex, sizex, sizey, evtHandler); - menubar1 = new interfIOMenu(mentex1, sizex, sizey, evtHandler); - menubar2 = new interfEditMenu(mentex2, sizex, sizey, evtHandler); - menubar3 = new interfDeleteMenu(mentex3, sizex, sizey, evtHandler); - menubar4 = new interfToolsMenu(mentex4, sizex,sizey, evtHandler); - -// this->initializeToolsPanel(mentex4, sizex, sizey, evtHandler); - - statictext = getText(mentex, PANEL); - statictext1 = getText(mentex1, PANEL1); - statictext2 = getText(mentex2, PANEL2); - statictext3 = getText(mentex3, PANEL3); - statictext4 = getText(mentex4, PANEL4); - - - - flexsizer->Add(b, wxFIXED_MINSIZE); - flexsizer->Add(setMenuTextSizer(mentex, menubar,statictext), wxFIXED_MINSIZE); - - flexsizer->Add(b1, wxFIXED_MINSIZE); - flexsizer->Add(setMenuTextSizer(mentex1, menubar1,statictext1), wxFIXED_MINSIZE); - - flexsizer->Add(b2, wxFIXED_MINSIZE); - flexsizer->Add(setMenuTextSizer(mentex2, menubar2,statictext2), wxFIXED_MINSIZE); - - flexsizer->Add(b3, wxFIXED_MINSIZE); - flexsizer->Add(setMenuTextSizer(mentex3, menubar3,statictext3), wxFIXED_MINSIZE); - - flexsizer->Add(b4, wxFIXED_MINSIZE); - flexsizer->Add(setMenuTextSizer(mentex4, menubar4,statictext4), wxFIXED_MINSIZE); - - toolpanel->Layout(); - - infoPanel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString("")); - wxFlexGridSizer* infosizer = new wxFlexGridSizer(5,2,2,2); - infoPanel->SetSizer(infosizer, true); - infoPanel->SetAutoLayout( true ); - - - - wxFlexGridSizer* mainsizer = new wxFlexGridSizer(1); - this->SetSizer(mainsizer, true); - this->SetAutoLayout( true ); - - - mainsizer->Add(toolpanel,wxEXPAND); - mainsizer->Add(new wxSplitterWindow(this,-1, wxDefaultPosition, wxDefaultSize, wxSP_3DBORDER, wxString("")), wxEXPAND); - mainsizer->Add(infoPanel, wxEXPAND); - - - Connect(b->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); - Connect(b1->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); - Connect(b2->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); - Connect(b3->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); - Connect(b4->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); - - this->Layout();*/ - } interfMainPanel::~interfMainPanel(void) { -} -interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, std::string datadir, wxEvtHandler * evtHandler){ +} - wxFrame* newframe = new wxFrame(parent, -1, wxT("New Interface"), wxPoint(1,1), wxSize(380,750),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT); - - +interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, std::string datadir, wxEvtHandler * evtHandler) +{ + _newframe = new wxFrame(parent, -1, wxT(" Contour Tools "), wxPoint(25,50), wxSize(350,900),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT); + if(interfmainpanel == NULL){ - interfmainpanel = new interfMainPanel(newframe, 380, 750, evtHandler, datadir); + interfmainpanel = new interfMainPanel(_newframe, 350, 900, evtHandler, datadir); } - - newframe->Show(TRUE); + _newframe->Show(TRUE); return interfmainpanel; } -interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, wxEvtHandler * evtHandler){ +interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, wxEvtHandler * evtHandler) +{ - wxFrame* newframe = new wxFrame(parent, -1, wxT("New Interface"), wxPoint(1,1), wxSize(380,750),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT ); + _newframe = new wxFrame(parent, -1, wxT(" Contour Tools "), wxPoint(25,50), wxSize(350,900),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT ); if(interfmainpanel == NULL){ - interfmainpanel = new interfMainPanel(newframe, 380, 750, evtHandler); + interfmainpanel = new interfMainPanel(_newframe, 350, 900, evtHandler); } - - newframe->Show(TRUE); + _newframe->Show(TRUE); return interfmainpanel; } -interfMainPanel* interfMainPanel::getInstance(){ +bool interfMainPanel::Show(bool show) +{ + return _newframe->Show(show); +} +interfMainPanel* interfMainPanel::getInstance() +{ return interfmainpanel; } +void interfMainPanel :: resetInstance() +{ + //delete interfmainpanel; + delete _newframe; + interfmainpanel = NULL; +} -wxPanel* interfMainPanel::initializeToolsPanel(wxWindow* parent, int sizex, int sizey, wxEvtHandler * evtHandler){ - - +wxPanel* interfMainPanel::initializeToolsPanel(wxWindow* parent, int sizex, int sizey, wxEvtHandler * evtHandler) +{ wxPanel* panel = new wxPanel(parent, -1, wxDefaultPosition, wxSize(sizex, sizey), wxBORDER_SUNKEN, wxString(_T("Spread"))); wxFlexGridSizer* flexsizer = new wxFlexGridSizer(2,1,2,2) ; @@ -255,20 +183,19 @@ wxPanel* interfMainPanel::initializeToolsPanel(wxWindow* parent, int sizex, int flexsizer->Add(menu, wxFIXED_MINSIZE); flexsizer->Add(toolspread, wxFIXED_MINSIZE); - - panel->Layout(); - + + panel->Layout(); return panel; } - /** ** Adds a new checkbox to the scrolledwindow using the checkboxsizer ** @Params id of contour ** **/ -void interfMainPanel::addContourCheckBox(std::string id){ +void interfMainPanel::addContourCheckBox(std::string id) +{ toolspread->addContourCheckBox(id); } @@ -277,11 +204,13 @@ void interfMainPanel::addContourCheckBox(std::string id){ ** @Params id of contour ** **/ -void interfMainPanel::removeContourCheckBox(std::string id){ +void interfMainPanel::removeContourCheckBox(std::string id) +{ toolspread->removeContourCheckBox(id); } -void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ){ +void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ) +{ //((interfToolsMenu*)menubar4)->hideAxis(); wxButton* b = (wxButton*)event.GetEventObject(); wxPanel* dmenu; @@ -289,7 +218,6 @@ void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ){ std::string dstring = *((std::string*) b->GetClientData()); int sizechange=0; - if(dstring.compare(PANEL)==0){ dmenu = menubar; text = statictext; @@ -327,18 +255,21 @@ void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ){ this->Refresh(); } -wxStaticText* interfMainPanel::getText(wxWindow* parent, std::string nom){ +wxStaticText* interfMainPanel::getText(wxWindow* parent, std::string nom) +{ return new wxStaticText(parent, -1, wxString(nom.c_str(),wxConvUTF8), wxDefaultPosition, - wxDefaultSize, wxALIGN_CENTRE, wxString(nom.c_str(),wxConvUTF8)); + wxDefaultSize, wxALIGN_CENTRE, wxString(nom.c_str(),wxConvUTF8)); } -wxButton* interfMainPanel::getButton(wxWindow* parent){ +wxButton* interfMainPanel::getButton(wxWindow* parent) +{ wxButton* b = new wxButton(parent, -1, wxString(_T("-")), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, - wxDefaultValidator, wxString(_T("-"))); + wxDefaultValidator, wxString(_T("-"))); return b; } -wxPanel* interfMainPanel::setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxStaticText* text){ +wxPanel* interfMainPanel::setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxStaticText* text) +{ wxFlexGridSizer* flexsizer = new wxFlexGridSizer(2,1,2,2); parent->SetSizer(flexsizer, true); @@ -349,13 +280,13 @@ wxPanel* interfMainPanel::setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxS parent->Layout(); return (wxPanel*)parent; - } /** ** Shows the panel in the **/ -void interfMainPanel::showPanel(wxWindow* panel){ +void interfMainPanel::showPanel(wxWindow* panel) +{ wxContourMainFrame::getInstance()->showAxis(false); wxSizer* sizer = infoPanel->GetSizer(); @@ -364,7 +295,7 @@ void interfMainPanel::showPanel(wxWindow* panel){ sizer->Remove(currentWindow); } sizer->Add(panel); - currentWindow = panel; + currentWindow = panel; currentWindow->Show(true); splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()+1); @@ -374,96 +305,182 @@ void interfMainPanel::showPanel(wxWindow* panel){ infoPanel->Refresh(); this->Layout(); this->Refresh(); +} + +/** +** Hide the panel in the lower box +**/ +void interfMainPanel::hidePanel( ) +{ + wxContourMainFrame::getInstance()->showAxis(false); + wxSizer* sizer = infoPanel->GetSizer(); + + if(currentWindow != NULL){ + currentWindow->Hide(); + sizer->Remove(currentWindow); + } + wxPanel * emptyPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); + sizer->Add(emptyPanel); + currentWindow = emptyPanel; + currentWindow->Show(true); + splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()+1); + splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()-1); + + infoPanel->Layout(); + infoPanel->Refresh(); + this->Layout(); + this->Refresh(); } /** ** Gets the Information panel **/ -wxPanel* interfMainPanel::getInfoPanel(){ +wxPanel* interfMainPanel::getInfoPanel() +{ return infoPanel; } -void interfMainPanel::onCreateContourSpline( ){ +void interfMainPanel::onCreateContourSpline( ) +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onCreateContourSpline(); } -void interfMainPanel::onCreateContourRectangle( ){ + +void interfMainPanel::onCreateContourRectangle( ) +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onCreateContourRectangle(); } -void interfMainPanel::onCreateContourCircle( ){ +void interfMainPanel::onCreateContourCircle( ) +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onCreateContourCircle(); } -void interfMainPanel::onCreateContoursBullEye(wxPanel* panBull){ + +void interfMainPanel::onCreateContourLine( ) +{ + wxContourMainFrame::getInstance()->showAxis(false); + wxContourMainFrame::getInstance()->onCreateContourLine(); +} + +// RaC 09-09 --------------------- +void interfMainPanel::onCreateContourPoints( ) +{ + wxContourMainFrame::getInstance()->showAxis(false); + wxContourMainFrame::getInstance()->onCreateContourPoints(); +} +// RaC 09-09 --------------------- + +// RaC 10-09 --------------------- +void interfMainPanel::onCreateContourPolygon( ) +{ + wxContourMainFrame::getInstance()->showAxis(false); + wxContourMainFrame::getInstance()->onCreateContourPolygon(); +} +// RaC 10-09 --------------------- + +void interfMainPanel::onCreateContoursBullEye(wxPanel* panBull) +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onCreateContourBullEye(panBull); } -void interfMainPanel::onDeleteContour(){ + +void interfMainPanel::onDeleteContour() +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onDeleteContour(); } -void interfMainPanel::onDeleteContoursActSlice(){ + +void interfMainPanel::onDeleteContoursActSlice() +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onDeleteContoursActSlice(); } -void interfMainPanel::onDeleteAllContours(){ + +void interfMainPanel::onDeleteAllContours() +{ wxContourMainFrame::getInstance()->showAxis(false); wxContourMainFrame::getInstance()->onDeleteAllContours(); } -void interfMainPanel::onCopy(){ +void interfMainPanel::onCopy() +{ wxContourMainFrame::getInstance()->onCopy(); } -void interfMainPanel::onPaste(){ + +void interfMainPanel::onPaste() +{ wxContourMainFrame::getInstance()->onPaste(); } -void interfMainPanel::onUndo(){ + +void interfMainPanel::onUndo() +{ wxContourMainFrame::getInstance()->onUndo(); } -void interfMainPanel::onRedo(){ + +void interfMainPanel::onRedo() +{ wxContourMainFrame::getInstance()->onRedo(); } -void interfMainPanel::onLoad(){ + +void interfMainPanel::onLoad() +{ wxContourMainFrame::getInstance()->onLoad(); } -void interfMainPanel::onSave(){ - wxContourMainFrame::getInstance()-> onSave(); + +void interfMainPanel::onSave() +{ + wxContourMainFrame::getInstance()->onSave(); } -void interfMainPanel::RefreshInterface(){ + +void interfMainPanel::RefreshInterface() +{ wxContourMainFrame::getInstance()->RefreshInterface(); } -vtkImageData* interfMainPanel::getImageData(){ +vtkImageData* interfMainPanel::getImageData() +{ return wxContourMainFrame::getInstance()->getImageData(); } -void interfMainPanel::onSegmentationOneSlice(int isovalue,int sampling,int method){ +void interfMainPanel::getImageRange(double range[2] ) +{ + vtkImageData * img = getImageData(); + img->GetScalarRange(range); +} + +void interfMainPanel::onSegmentationOneSlice(int isovalue,int sampling,int method) +{ wxContourMainFrame::getInstance()->onSegmentationOneSlice(isovalue, sampling, method); } -int interfMainPanel::GetImageDataSizeZ(){ - return wxContourMainFrame::getInstance()->GetImageDataSizeZ(); +void interfMainPanel::onSegmentationOneSliceITK(wxString distance, wxString sigma, wxString alfa, wxString beta, wxString propagation, wxString iterations, wxString inflation) +{ + wxContourMainFrame::getInstance()->onSegmentationOneSliceITK(distance, sigma, alfa, beta, propagation, iterations, inflation); } -void interfMainPanel::GetImageDataRange(double *range){ - wxContourMainFrame::getInstance()->GetImageDataRange(range); +int interfMainPanel::GetImageDataSizeZ() +{ + return wxContourMainFrame::getInstance()->GetImageDataSizeZ(); } -void interfMainPanel::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method){ +void interfMainPanel::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method) +{ wxContourMainFrame::getInstance()->onSegmentationAllSlice(minZ, maxZ,isovalue,sampling,method); } -void interfMainPanel::setLabelSegmentationPanelVTK(wxString tmpString){ +void interfMainPanel::setLabelSegmentationPanelVTK(wxString tmpString) +{ ((interfSegmentationPanelVTK*)segmentationPanel)->setLabel(tmpString); } -void interfMainPanel::onSegmentationPressed(){ +void interfMainPanel::onSegmentationPressed() +{ if(segmentPanel == NULL){ segmentPanel = new wxPanel(getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); segmentPanel->SetSizer(flexsizer, true); - segmentPanel->SetAutoLayout( true ); + segmentPanel->SetAutoLayout(true); segmentPanel->SetEventHandler(this); //wxPanel* panel = contourevent->getSegmentationPanel(segmentPanel); @@ -482,7 +499,8 @@ void interfMainPanel::onSegmentationPressed(){ axisshown = true; } -void interfMainPanel::onSegmentationPressedITK(){ +void interfMainPanel::onSegmentationPressedITK() +{ if(segmentPanelITK == NULL){ segmentPanelITK = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); @@ -495,7 +513,6 @@ void interfMainPanel::onSegmentationPressedITK(){ //wxPanel* panel = contourevent->getSegmentationPanelITK(segmentPanelITK); wxPanel* panel = new interfSegmentationPanelITK(segmentPanelITK); - wxStaticText* stattext = new wxStaticText(segmentPanelITK, -1, wxString(_T(" Automatic ITK Segmentation ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); @@ -504,56 +521,59 @@ void interfMainPanel::onSegmentationPressedITK(){ segmentPanelITK->Layout(); } showPanel(segmentPanelITK); - //contourevent->showAxis(true); - //axisshown = true; + wxContourMainFrame::getInstance()->showAxis(true); + axisshown = true; } -void interfMainPanel::onRigidPressed(){ +void interfMainPanel::onRigidPressed() +{ wxContourMainFrame::getInstance()->onRigidPressed(); } -void interfMainPanel::onWidthOfContour(double width){ +void interfMainPanel::onWidthOfContour(double width) +{ wxContourMainFrame::getInstance()->onWidthOfContour(width); } -int interfMainPanel::getColorWindow(){ +int interfMainPanel::getColorWindow() +{ return wxContourMainFrame::getInstance()->getColorWindow(); } -int interfMainPanel::getWindowLevel(){ +int interfMainPanel::getWindowLevel() +{ return wxContourMainFrame::getInstance()->getWindowLevel(); } -void interfMainPanel::onBrigthnessColorWindowLevel(int colorwindow,int windowlevel){ +void interfMainPanel::onBrigthnessColorWindowLevel(int colorwindow,int windowlevel) +{ wxContourMainFrame::getInstance()->onBrigthnessColorWindowLevel(colorwindow, windowlevel); } -void interfMainPanel::onInterpolation(bool interpolate){ +void interfMainPanel::onInterpolation(bool interpolate) +{ wxContourMainFrame::getInstance()->onInterpolation(interpolate); } -void interfMainPanel::onConfigurationPressed(){ +void interfMainPanel::onConfigurationPressed() +{ if(configPanel == NULL){ configPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); configPanel->SetSizer(flexsizer, true); configPanel->SetAutoLayout( true ); //configPanel->SetEventHandler(this->contourevent); - wxPanel* panel = new interfConfigurationPanel(configPanel); - wxStaticText* stattext = new wxStaticText(configPanel, -1, wxString(_T(" Interface Configuration ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); - flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); - flexsizer->Add(panel, wxEXPAND); configPanel->Layout(); - } showPanel(configPanel); } -void interfMainPanel::onSpreadPressed(){ +void interfMainPanel::onSpreadPressed() +{ if(spreadPanel==NULL){ spreadPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); @@ -577,42 +597,49 @@ void interfMainPanel::onSpreadPressed(){ //hideAxis(); } -void interfMainPanel::resetAppend(){ +void interfMainPanel::resetAppend() +{ wxContourMainFrame::getInstance()->resetAppend(); } -void interfMainPanel::onSpreadAdd(){ +void interfMainPanel::onSpreadAdd() +{ wxContourMainFrame::getInstance()->onSpreadAdd(); } -void interfMainPanel::appendStringSpread(std::string val){ +void interfMainPanel::appendStringSpread(std::string val) +{ panelSpread->appendStringSpread(val); } -void interfMainPanel::onSpreadGo(int type){ +void interfMainPanel::onSpreadGo(int type) +{ wxContourMainFrame::getInstance()->onSpreadGo(type); } -void interfMainPanel::setStringSpread(std::string stringtemp){ + +void interfMainPanel::setStringSpread(std::string stringtemp) +{ panelSpread->setStringSpread(stringtemp); } -void interfMainPanel::onInformationPressed(){ +void interfMainPanel::onInformationPressed() +{ + + // Statistics frame if(infoWin ==NULL){ - infoWin = new wxFrame (this, -1,_T(" Spread "), wxDefaultPosition, wxDefaultSize, wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT | wxRESIZE_BORDER ); - infoWin->SetSize( wxSize(500,450) ); + infoWin = new wxFrame (this, -1,_T(" Statistics "), wxDefaultPosition, wxDefaultSize, wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT | wxRESIZE_BORDER ); + infoWin->SetSize( wxSize(825,650) ); - wxSize sizepanel(200,300); - informationPanel = new interfInformationPanel(infoWin);//contourevent->getInformationPanel(infoWin); + wxSize sizepanel(825,675); + informationPanel = new interfInformationPanel(infoWin);//contourevent->getInformationPanel(infoWin); - wxBoxSizer * sizerPanel = new wxBoxSizer(wxHORIZONTAL); - sizerPanel -> Add( informationPanel , 1, wxEXPAND ,0); + wxBoxSizer * sizerPanel = new wxBoxSizer(wxHORIZONTAL); + sizerPanel -> Add( informationPanel, 1, wxEXPAND ,0); infoWin->SetSizer( sizerPanel ); infoWin->SetAutoLayout( true ); infoWin->Layout(); - infoWin->Show(); - }else { if (infoWin->IsShown()==true) @@ -622,54 +649,322 @@ void interfMainPanel::onInformationPressed(){ //contourevent->FillGridWithContoursInformation(); infoWin->Show(true); } + } + +//CMRU 29-08-09----------------------------------------------------------------------------------------------- + if(panelAux == NULL) + { + panelAux = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); } +//------------------------------------------------------------------------------------------------------------ + + // mask view control panel + if(infoPanelMask == NULL){ + infoPanelMask = new wxPanel(panelAux, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + infoPanelMask->SetSizer(flexsizer, true); + infoPanelMask->SetAutoLayout( true ); + //configPanel->SetEventHandler(this->contourevent); + wxPanel *panel = wxContourMainFrame::getInstance()->getMaskImageViewPanel( infoPanelMask ); + wxStaticText* stattext = new wxStaticText(infoPanelMask, -1, wxString(_T(" Mask segmentation ")), wxDefaultPosition, + wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); + + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); + + flexsizer->Add(panel, wxEXPAND); + infoPanelMask->Layout(); + + } + +//CMRU 29-08-09----------------------------------------------------------------------------------------------- + //Calibration panel + if(infoPanelCalibration == NULL) + { + infoPanelCalibration = new wxPanel(panelAux, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER , wxString(_T(""))); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + infoPanelCalibration->SetSizer(flexsizer, true); + infoPanelCalibration->SetAutoLayout( true ); + + wxPanel *panel = new interfCalibrationPanel(infoPanelCalibration); + wxStaticText* stattext = new wxStaticText(infoPanelCalibration, -1, wxString(_T(" Calibration ")), wxDefaultPosition, + wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); + + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); + + flexsizer->Add(panel, wxEXPAND); + infoPanelCalibration->Layout(); + } + + wxFlexGridSizer* sizer = new wxFlexGridSizer(1); + panelAux->SetSizer(sizer, true); + panelAux->SetAutoLayout( true ); + sizer->Add(infoPanelMask); + sizer->Add(infoPanelCalibration); + + showPanel(panelAux); + +//------------------------------------------------------------------ + + wxContourMainFrame::getInstance()->changeInstant(); } -void interfMainPanel::getInstantVector(std::vector& tempVector){ +void interfMainPanel::getInstantVector(std::vector& tempVector) +{ wxContourMainFrame::getInstance()->getInstantVector(tempVector); } -std::vector interfMainPanel::getOutlinesName(int slide){ +std::vector interfMainPanel::getOutlinesName(int slide) +{ return wxContourMainFrame::getInstance()->getOutlinesName(slide); } -void interfMainPanel::onInformationContourLabels(int typeContourGroup,int selection,int minZ,int maxZ){ - wxContourMainFrame::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ); +void interfMainPanel::onInformationContourLabels(int typeContourGroup,int selection,int minZ,int maxZ,int grayRangeMin,int grayRangeMax){ + wxContourMainFrame::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ,grayRangeMin,grayRangeMax); } -void interfMainPanel::setStringInfoPanel(wxString tmpString){ - ((interfInformationPanel*)informationPanel)->setStringInfoPanel(tmpString); +void interfMainPanel::setStringInfoPanel(wxString tmpString) +{ + if(informationPanel!=NULL){ + ((interfInformationPanel*)informationPanel)->setStringInfoPanel(tmpString); + } } -void interfMainPanel::setRowLabelInfoPanel(int z, wxString tempString){ +void interfMainPanel::setRowLabelInfoPanel(int z, wxString tempString) +{ ((interfInformationPanel*)informationPanel)->setRowLabelInfoPanel(z, tempString); } -int interfMainPanel::getNumberColsInformationPanel(){ +int interfMainPanel::getNumberColsInformationPanel() +{ return ((interfInformationPanel*)informationPanel)->getNumberCols(); } -void interfMainPanel::appendColsInformationPanel(int _numberOfVariablesStatistics){ +void interfMainPanel::appendColsInformationPanel(int _numberOfVariablesStatistics) +{ ((interfInformationPanel*)informationPanel)->appendCols(_numberOfVariablesStatistics); } -void interfMainPanel::setCellValueInfoPanel(int z,int tmpIntA,wxString tempString){ +void interfMainPanel::setCellValueInfoPanel(int z,int tmpIntA,wxString tempString) +{ ((interfInformationPanel*)informationPanel)->setCellValue(z, tmpIntA, tempString); } -void interfMainPanel::setColLableInfoPanel(int tmpIntB,wxString tmpTitleString){ +void interfMainPanel::setColLableInfoPanel(int tmpIntB,wxString tmpTitleString) +{ ((interfInformationPanel*)informationPanel)->setColLabel(tmpIntB, tmpTitleString); } -void interfMainPanel::onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup){ - wxContourMainFrame::getInstance()->onSaveResults(directory, namefile,filename, typeContourGroup); +void interfMainPanel::SetScalarRange(int grayRangeMin,int grayRangeMax) +{ + wxContourMainFrame::getInstance()->SetScalarRange(grayRangeMin, grayRangeMax); +} + +void interfMainPanel::onSaveResults(std::string directory,std::string namefile, std::string filename, + int typeContourGroup, int selection, int minZ, int maxZ ,bool XYZValues, bool contourImage, bool statistics) +{ + wxContourMainFrame::getInstance()->onSaveResults(directory, namefile, filename, + typeContourGroup, selection, minZ,maxZ, XYZValues, contourImage, statistics); } wxString interfMainPanel::getCellValue(int j,int i){ return ((interfInformationPanel*)informationPanel)->getCellValue(j, i ); } -void interfMainPanel::onSnakePressed(){ - wxContourMainFrame::getInstance()->onSnakePressed(); +void interfMainPanel::onSnakePressed() +{ + axisshown=false; + wxContourMainFrame::getInstance()->showAxis(axisshown); + wxContourMainFrame::getInstance()->onSnakePressed(); +} + +void interfMainPanel::onMirrorPressed(){ + if(mirrorPanel==NULL) + { + + mirrorPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + mirrorPanel->SetSizer(flexsizer, true); + mirrorPanel->SetAutoLayout( true ); + panelMirror = new interfMirrorPanel(mirrorPanel); + + wxStaticText* stattext = new wxStaticText(mirrorPanel, -1, wxString(_T(" Mirroring Tool ")), wxDefaultPosition, + wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); + + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); + flexsizer->Add(panelMirror, wxEXPAND); + mirrorPanel->Layout(); + + refLineShown=true; + wxContourMainFrame::getInstance()->referenceLine(); + } + + else + { + + if (!refLineShown) + { + wxContourMainFrame::getInstance()->refLineShow(); + refLineShown=true; + } + } + + showPanel(mirrorPanel); +} + +void interfMainPanel::onMirror() +{ + wxContourMainFrame::getInstance()->onMirror(); +} + +void interfMainPanel::onMirrorAxisShow() +{ + if (!refLineShown) + { + wxContourMainFrame::getInstance()->refLineShow(); + refLineShown=true; + } +} + +void interfMainPanel::onMirrorAxisHide() +{ + if (refLineShown) + { + wxContourMainFrame::getInstance()->refLineHide(); + refLineShown=false; + } +} + +void interfMainPanel::onMirrorChangeWidth(int width) +{ + wxContourMainFrame::getInstance()->refLineChangeWidth(width); +} + + + +//EED01 +void interfMainPanel::onThresholdPressed() +{ + + // Threshold view control panel + if(thresholdPanel == NULL){ + thresholdPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + thresholdPanel->SetSizer(flexsizer, true); + thresholdPanel->SetAutoLayout( true ); + //configPanel->SetEventHandler(this->contourevent); + wxPanel *panel = wxContourMainFrame::getInstance()->getThresholdImageViewPanel( thresholdPanel ); + wxStaticText* stattext = new wxStaticText(thresholdPanel, -1, wxString(_T(" Threshold segmentation ")), wxDefaultPosition, + wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); + + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); + + flexsizer->Add(panel, wxEXPAND); + thresholdPanel->Layout(); + + } + showPanel(thresholdPanel); + wxContourMainFrame::getInstance()->changeInstant(); +} + + +void interfMainPanel::ShowResultImages(int typeContourGroup, int selection, int minZ, int maxZ) +{ + wxContourMainFrame::getInstance()->ShowResultImages(typeContourGroup, selection, minZ, maxZ); +} + + +void interfMainPanel::SetContourGroup(int contourGroup) +{ + wxContourMainFrame::getInstance()->SetContourGroup( contourGroup); +} + +//CMRU 17-08-09 --------------------------------------------- +void interfMainPanel::onPrintLabel () +{ + wxString label; + manualBaseModel* manualModel = wxContourMainFrame::getInstance()->getContour(); + + if(manualModel==NULL) + { + wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Please select a Contour"), wxT("Warning"), wxOK | wxICON_EXCLAMATION); + dial->ShowModal(); + return; + } + + wxTextEntryDialog* dialog = new wxTextEntryDialog(this,_T("Enter a tag name: ")) ; + + if (dialog->ShowModal() == wxID_OK) + { + label = dialog->GetValue(); + + if(label.Len()!=0) + { + wxContourMainFrame::getInstance()->onPrintLabel(label,manualModel); + wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("The tag name was updated"), wxT("Information"), wxOK | wxICON_INFORMATION); + dial->ShowModal(); + } + else + { + wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Please enter a valid tag"), wxT("Warning"), wxOK | wxICON_EXCLAMATION); + dial->ShowModal(); + } + } +} + +void interfMainPanel::onCalibration(wxString size, int unit) +{ + int type = 0; + double contourSize = 0.0; + double realSizeDouble = 0.0; + + type = wxContourMainFrame::getInstance()->getType(); + contourSize = wxContourMainFrame::getInstance()->getContourSizeInPixels(); + + std::cout<<"Cata->TamaƱo del contorno en pixeles:"<ShowModal(); + } + } + else + { + wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Please select a line contour"), wxT("Warning"), wxOK | wxICON_EXCLAMATION); + dial->ShowModal(); + } + + wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("The calibration was made"), wxT("Information"), wxOK | wxICON_INFORMATION); + dial->ShowModal(); + std::cout<< "Cata-> Se ha realizado la calibracion" << endl ; +} + +double interfMainPanel::onePixelSize (double realSize,double sizePixel) +{ + _pixelValue = realSize/sizePixel; + std::cout<< "Valor del un pixel = " << _pixelValue<< endl ; + wxContourMainFrame::getInstance()->onePixelSize (_pixelValue); + return _pixelValue ; +} + +double interfMainPanel::GetPixelValue() +{ + return _pixelValue; } +//------------------------------------------------------------------------------------------------------------