1 #include "interfMainPanel.h"
4 #include "interfNewContourMenu.h"
5 #include "interfIOMenu.h"
6 #include "interfEditMenu.h"
7 #include "interfDeleteMenu.h"
8 #include "interfToolsMenu.h"
9 #include "interfToolsSpreadPanel.h"
10 #include "interfMenuBar.h"
11 #include "interfSegmentationMenu.h"
14 interfMainPanel* interfMainPanel::interfmainpanel=NULL;
16 interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtHandler * evtHandler, std::string datadir)
17 : wxPanel(parent, -1, wxDefaultPosition, wxSize(sizex, sizey), wxBORDER_SUNKEN)
20 PANEL = "New Contour";
25 PANEL5 = "Segmentation";
27 segmentPanelITK = NULL;
31 informationPanel = NULL;
33 thresholdPanel = NULL;
36 splitterwindow = new wxSplitterWindow(this,-1, wxDefaultPosition, wxSize(sizex, sizey), wxSP_3DSASH, wxString(_T("")));
38 splitterwindow->SetMinimumPaneSize( 10 );
43 wxPanel* toolpanel = new wxPanel(splitterwindow, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
45 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(6,2,1,1);
46 toolpanel->SetSizer(flexsizer, true);
47 toolpanel->SetAutoLayout( true );
49 wxButton* b = getButton(toolpanel);
50 b->SetClientData(&PANEL);
51 wxButton* b1 = getButton(toolpanel);
52 b1->SetClientData(&PANEL1);
53 wxButton* b2 = getButton(toolpanel);
54 b2->SetClientData(&PANEL2);
55 wxButton* b3 = getButton(toolpanel);
56 b3->SetClientData(&PANEL3);
57 wxButton* b4 = getButton(toolpanel);
58 b4->SetClientData(&PANEL4);
59 wxButton* b5 = getButton(toolpanel);
60 b5->SetClientData(&PANEL5);
62 wxPanel* mentex = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
63 wxPanel* mentex1 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
64 wxPanel* mentex2 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
65 wxPanel* mentex3 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
66 wxPanel* mentex4 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
67 wxPanel* mentex5 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
69 menubar = new interfNewContourMenu(mentex, sizex, sizey, evtHandler, datadir);
70 menubar1 = new interfIOMenu(mentex1, sizex, sizey, evtHandler, datadir);
71 menubar2 = new interfEditMenu(mentex2, sizex, sizey, evtHandler, datadir);
72 menubar3 = new interfDeleteMenu(mentex3, sizex, sizey, evtHandler, datadir);
73 menubar4 = new interfToolsMenu(mentex4, sizex,sizey, evtHandler, datadir);
74 menubar5 = new interfSegmentationMenu(mentex5, sizex,sizey, evtHandler, datadir);
76 statictext = getText(mentex, PANEL);
77 statictext1 = getText(mentex1, PANEL1);
78 statictext2 = getText(mentex2, PANEL2);
79 statictext3 = getText(mentex3, PANEL3);
80 statictext4 = getText(mentex4, PANEL4);
81 statictext5 = getText(mentex5, PANEL5);
83 flexsizer->Add(b, wxFIXED_MINSIZE);
84 flexsizer->Add(setMenuTextSizer(mentex, menubar,statictext), wxFIXED_MINSIZE);
86 flexsizer->Add(b1, wxFIXED_MINSIZE);
87 flexsizer->Add(setMenuTextSizer(mentex1, menubar1,statictext1), wxFIXED_MINSIZE);
89 flexsizer->Add(b2, wxFIXED_MINSIZE);
90 flexsizer->Add(setMenuTextSizer(mentex2, menubar2,statictext2), wxFIXED_MINSIZE);
92 flexsizer->Add(b3, wxFIXED_MINSIZE);
93 flexsizer->Add(setMenuTextSizer(mentex3, menubar3,statictext3), wxFIXED_MINSIZE);
95 flexsizer->Add(b4, wxFIXED_MINSIZE);
96 flexsizer->Add(setMenuTextSizer(mentex4, menubar4,statictext4), wxFIXED_MINSIZE);
98 flexsizer->Add(b5, wxFIXED_MINSIZE);
99 flexsizer->Add(setMenuTextSizer(mentex5, menubar5,statictext5), wxFIXED_MINSIZE);
104 infoPanel = new wxPanel(splitterwindow, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T("")));
105 wxFlexGridSizer* infosizer = new wxFlexGridSizer(1,1,2,2);
106 infoPanel->SetSizer(infosizer, true);
107 infoPanel->SetAutoLayout( true );
109 splitterwindow->Initialize(toolpanel);
110 splitterwindow->SetSashGravity(1);
111 splitterwindow->SplitHorizontally(toolpanel, infoPanel);
113 Connect(b->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1);
114 Connect(b1->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1);
115 Connect(b2->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1);
116 Connect(b3->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1);
117 Connect(b4->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1);
118 Connect(b5->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1);
123 interfMainPanel::~interfMainPanel(void)
127 interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, std::string datadir, wxEvtHandler * evtHandler){
129 wxFrame* newframe = new wxFrame(parent, -1, wxT(" Contour Tools "), wxPoint(25,50), wxSize(350,850),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT);
132 if(interfmainpanel == NULL){
133 interfmainpanel = new interfMainPanel(newframe, 350, 850, evtHandler, datadir);
136 newframe->Show(TRUE);
137 return interfmainpanel;
140 interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, wxEvtHandler * evtHandler){
142 wxFrame* newframe = new wxFrame(parent, -1, wxT(" Contour Tools "), wxPoint(25,50), wxSize(350,850),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT );
144 if(interfmainpanel == NULL){
145 interfmainpanel = new interfMainPanel(newframe, 350, 850, evtHandler);
148 newframe->Show(TRUE);
149 return interfmainpanel;
152 interfMainPanel* interfMainPanel::getInstance()
155 return interfmainpanel;
158 void interfMainPanel :: resetInstance()
160 delete interfmainpanel;
161 interfmainpanel = NULL;
164 wxPanel* interfMainPanel::initializeToolsPanel(wxWindow* parent, int sizex, int sizey, wxEvtHandler * evtHandler){
167 wxPanel* panel = new wxPanel(parent, -1, wxDefaultPosition, wxSize(sizex, sizey), wxBORDER_SUNKEN, wxString(_T("Spread")));
169 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(2,1,2,2) ;
170 panel->SetSizer(flexsizer, true);
171 panel->SetAutoLayout( true );
173 interfToolsMenu* menu = new interfToolsMenu(panel, sizex, sizey, evtHandler);
174 toolspread = new interfToolsSpreadPanel(panel, sizex, 300, evtHandler);
176 flexsizer->Add(menu, wxFIXED_MINSIZE);
177 flexsizer->Add(toolspread, wxFIXED_MINSIZE);
187 ** Adds a new checkbox to the scrolledwindow using the checkboxsizer
188 ** @Params id of contour
191 void interfMainPanel::addContourCheckBox(std::string id){
192 toolspread->addContourCheckBox(id);
196 ** Removes a checkbox from the list of checkboxes in the flexsizer (checkboxsizer)
197 ** @Params id of contour
200 void interfMainPanel::removeContourCheckBox(std::string id){
201 toolspread->removeContourCheckBox(id);
204 void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ){
205 //((interfToolsMenu*)menubar4)->hideAxis();
206 wxButton* b = (wxButton*)event.GetEventObject();
209 std::string dstring = *((std::string*) b->GetClientData());
213 if(dstring.compare(PANEL)==0){
216 }else if(dstring.compare(PANEL1)==0 ){
219 }else if(dstring.compare(PANEL2)==0){
222 }else if(dstring.compare(PANEL3)==0){
225 }else if(dstring.compare(PANEL4)==0){
228 }else if(dstring.compare(PANEL5)==0){
233 if(wxStrcmp(b->GetLabel(),_T("+"))==0 ){
236 b->SetLabel(_T("-"));
240 b->SetLabel(_T("+"));
243 sizechange *= dmenu->GetSize().GetHeight();
244 splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()+sizechange);
250 wxStaticText* interfMainPanel::getText(wxWindow* parent, std::string nom){
251 return new wxStaticText(parent, -1, wxString(nom.c_str(),wxConvUTF8), wxDefaultPosition,
252 wxDefaultSize, wxALIGN_CENTRE, wxString(nom.c_str(),wxConvUTF8));
255 wxButton* interfMainPanel::getButton(wxWindow* parent){
256 wxButton* b = new wxButton(parent, -1, wxString(_T("-")), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT,
257 wxDefaultValidator, wxString(_T("-")));
261 wxPanel* interfMainPanel::setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxStaticText* text){
263 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(2,1,2,2);
264 parent->SetSizer(flexsizer, true);
265 parent->SetAutoLayout( true );
267 flexsizer->Add(text, wxFLEX_GROWMODE_ALL);
268 flexsizer->Add(panel, wxFLEX_GROWMODE_ALL);
271 return (wxPanel*)parent;
276 ** Shows the panel in the
278 void interfMainPanel::showPanel(wxWindow* panel)
280 wxContourMainFrame::getInstance()->showAxis(false);
281 wxSizer* sizer = infoPanel->GetSizer();
283 if(currentWindow != NULL){
284 currentWindow->Hide();
285 sizer->Remove(currentWindow);
288 currentWindow = panel;
289 currentWindow->Show(true);
291 splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()+1);
292 splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()-1);
295 infoPanel->Refresh();
301 ** Hide the panel in the
303 void interfMainPanel::hidePanel( ){
304 wxContourMainFrame::getInstance()->showAxis(false);
305 wxSizer* sizer = infoPanel->GetSizer();
307 if(currentWindow != NULL){
308 currentWindow->Hide();
309 sizer->Remove(currentWindow);
311 wxPanel * emptyPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
312 sizer->Add(emptyPanel);
313 currentWindow = emptyPanel;
314 currentWindow->Show(true);
316 splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()+1);
317 splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()-1);
320 infoPanel->Refresh();
326 ** Gets the Information panel
328 wxPanel* interfMainPanel::getInfoPanel(){
332 void interfMainPanel::onCreateContourSpline( ){
333 wxContourMainFrame::getInstance()->showAxis(false);
334 wxContourMainFrame::getInstance()->onCreateContourSpline();
336 void interfMainPanel::onCreateContourRectangle( ){
337 wxContourMainFrame::getInstance()->showAxis(false);
338 wxContourMainFrame::getInstance()->onCreateContourRectangle();
340 void interfMainPanel::onCreateContourCircle( ){
341 wxContourMainFrame::getInstance()->showAxis(false);
342 wxContourMainFrame::getInstance()->onCreateContourCircle();
344 void interfMainPanel::onCreateContourLine( ){
345 wxContourMainFrame::getInstance()->showAxis(false);
346 wxContourMainFrame::getInstance()->onCreateContourLine();
348 void interfMainPanel::onCreateContoursBullEye(wxPanel* panBull){
349 wxContourMainFrame::getInstance()->showAxis(false);
350 wxContourMainFrame::getInstance()->onCreateContourBullEye(panBull);
352 void interfMainPanel::onDeleteContour(){
353 wxContourMainFrame::getInstance()->showAxis(false);
354 wxContourMainFrame::getInstance()->onDeleteContour();
356 void interfMainPanel::onDeleteContoursActSlice(){
357 wxContourMainFrame::getInstance()->showAxis(false);
358 wxContourMainFrame::getInstance()->onDeleteContoursActSlice();
360 void interfMainPanel::onDeleteAllContours(){
361 wxContourMainFrame::getInstance()->showAxis(false);
362 wxContourMainFrame::getInstance()->onDeleteAllContours();
365 void interfMainPanel::onCopy(){
366 wxContourMainFrame::getInstance()->onCopy();
368 void interfMainPanel::onPaste(){
369 wxContourMainFrame::getInstance()->onPaste();
371 void interfMainPanel::onUndo(){
372 wxContourMainFrame::getInstance()->onUndo();
374 void interfMainPanel::onRedo(){
375 wxContourMainFrame::getInstance()->onRedo();
377 void interfMainPanel::onLoad(){
378 wxContourMainFrame::getInstance()->onLoad();
380 void interfMainPanel::onSave(){
381 wxContourMainFrame::getInstance()-> onSave();
383 void interfMainPanel::RefreshInterface(){
384 wxContourMainFrame::getInstance()->RefreshInterface();
387 vtkImageData* interfMainPanel::getImageData(){
388 return wxContourMainFrame::getInstance()->getImageData();
391 void interfMainPanel::getImageRange(double range[2] )
393 vtkImageData * img = getImageData();
394 img->GetScalarRange(range);
397 void interfMainPanel::onSegmentationOneSlice(int isovalue,int sampling,int method)
399 wxContourMainFrame::getInstance()->onSegmentationOneSlice(isovalue, sampling, method);
402 void interfMainPanel::onSegmentationOneSliceITK(wxString distance, wxString sigma, wxString alfa, wxString beta, wxString propagation, wxString iterations, wxString inflation){
403 wxContourMainFrame::getInstance()->onSegmentationOneSliceITK(distance, sigma, alfa, beta, propagation, iterations, inflation);
406 int interfMainPanel::GetImageDataSizeZ(){
407 return wxContourMainFrame::getInstance()->GetImageDataSizeZ();
410 void interfMainPanel::GetImageDataRange(double *range){
411 wxContourMainFrame::getInstance()->GetImageDataRange(range);
414 void interfMainPanel::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method){
415 wxContourMainFrame::getInstance()->onSegmentationAllSlice(minZ, maxZ,isovalue,sampling,method);
418 void interfMainPanel::onMirror()
420 wxContourMainFrame::getInstance()->onMirror();
423 void interfMainPanel::onMirrorChangeWidth(int width)
425 wxContourMainFrame::getInstance()->refLineChangeWidth(width);
428 void interfMainPanel::setLabelSegmentationPanelVTK(wxString tmpString){
429 ((interfSegmentationPanelVTK*)segmentationPanel)->setLabel(tmpString);
431 void interfMainPanel::onSegmentationPressed(){
432 if(segmentPanel == NULL){
433 segmentPanel = new wxPanel(getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
434 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
435 segmentPanel->SetSizer(flexsizer, true);
436 segmentPanel->SetAutoLayout( true );
437 segmentPanel->SetEventHandler(this);
439 //wxPanel* panel = contourevent->getSegmentationPanel(segmentPanel);
440 segmentationPanel = new interfSegmentationPanelVTK(segmentPanel);
443 wxStaticText* stattext = new wxStaticText(segmentPanel, -1, wxString(_T(" Automatic Segmentation ")), wxDefaultPosition,
444 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
446 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
447 flexsizer->Add(segmentationPanel, wxEXPAND);
448 segmentPanel->Layout();
450 showPanel(segmentPanel);
451 wxContourMainFrame::getInstance()->showAxis(true);
455 void interfMainPanel::onSegmentationPressedITK(){
456 if(segmentPanelITK == NULL){
457 segmentPanelITK = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
460 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
461 segmentPanelITK->SetSizer(flexsizer, true);
462 segmentPanelITK->SetAutoLayout( true );
463 //segmentPanelITK->SetEventHandler(this->contourevent);
465 //wxPanel* panel = contourevent->getSegmentationPanelITK(segmentPanelITK);
466 wxPanel* panel = new interfSegmentationPanelITK(segmentPanelITK);
469 wxStaticText* stattext = new wxStaticText(segmentPanelITK, -1, wxString(_T(" Automatic ITK Segmentation ")), wxDefaultPosition,
470 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
472 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
473 flexsizer->Add(panel, wxEXPAND);
474 segmentPanelITK->Layout();
476 showPanel(segmentPanelITK);
477 wxContourMainFrame::getInstance()->showAxis(true);
481 void interfMainPanel::onRigidPressed(){
482 wxContourMainFrame::getInstance()->onRigidPressed();
485 void interfMainPanel::onWidthOfContour(double width){
486 wxContourMainFrame::getInstance()->onWidthOfContour(width);
489 int interfMainPanel::getColorWindow(){
490 return wxContourMainFrame::getInstance()->getColorWindow();
492 int interfMainPanel::getWindowLevel(){
493 return wxContourMainFrame::getInstance()->getWindowLevel();
495 void interfMainPanel::onBrigthnessColorWindowLevel(int colorwindow,int windowlevel){
496 wxContourMainFrame::getInstance()->onBrigthnessColorWindowLevel(colorwindow, windowlevel);
499 void interfMainPanel::onInterpolation(bool interpolate){
500 wxContourMainFrame::getInstance()->onInterpolation(interpolate);
503 void interfMainPanel::onConfigurationPressed(){
505 if(configPanel == NULL){
506 configPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T("")));
507 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
508 configPanel->SetSizer(flexsizer, true);
509 configPanel->SetAutoLayout( true );
510 //configPanel->SetEventHandler(this->contourevent);
512 wxPanel* panel = new interfConfigurationPanel(configPanel);
514 wxStaticText* stattext = new wxStaticText(configPanel, -1, wxString(_T(" Interface Configuration ")), wxDefaultPosition,
515 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
517 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
519 flexsizer->Add(panel, wxEXPAND);
520 configPanel->Layout();
523 showPanel(configPanel);
526 void interfMainPanel::onSpreadPressed(){
527 if(spreadPanel==NULL){
529 spreadPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
530 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
531 spreadPanel->SetSizer(flexsizer, true);
532 spreadPanel->SetAutoLayout( true );
533 //spreadPanel->SetEventHandler(this->contourevent);
535 //wxPanel* panel = contourevent->getSpreadPanel(spreadPanel);
536 panelSpread = new interfSpreadPanel(spreadPanel);
539 wxStaticText* stattext = new wxStaticText(spreadPanel, -1, wxString(_T(" Automatic Spread ")), wxDefaultPosition,
540 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
542 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
543 flexsizer->Add(panelSpread, wxEXPAND);
544 spreadPanel->Layout();
546 showPanel(spreadPanel);
550 void interfMainPanel::resetAppend(){
551 wxContourMainFrame::getInstance()->resetAppend();
554 void interfMainPanel::onSpreadAdd(){
555 wxContourMainFrame::getInstance()->onSpreadAdd();
558 void interfMainPanel::appendStringSpread(std::string val){
559 panelSpread->appendStringSpread(val);
562 void interfMainPanel::onSpreadGo(int type){
563 wxContourMainFrame::getInstance()->onSpreadGo(type);
565 void interfMainPanel::setStringSpread(std::string stringtemp){
566 panelSpread->setStringSpread(stringtemp);
569 void interfMainPanel::onInformationPressed(){
571 infoWin = new wxFrame (this, -1,_T(" Spread "), wxDefaultPosition, wxDefaultSize, wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT | wxRESIZE_BORDER );
572 infoWin->SetSize( wxSize(500,450) );
574 wxSize sizepanel(200,300);
575 informationPanel = new interfInformationPanel(infoWin);//contourevent->getInformationPanel(infoWin);
577 wxBoxSizer * sizerPanel = new wxBoxSizer(wxHORIZONTAL);
578 sizerPanel -> Add( informationPanel , 1, wxEXPAND ,0);
580 infoWin->SetSizer( sizerPanel );
581 infoWin->SetAutoLayout( true );
588 if (infoWin->IsShown()==true)
590 infoWin->Show(false);
592 //contourevent->FillGridWithContoursInformation();
598 void interfMainPanel::getInstantVector(std::vector<int>& tempVector){
599 wxContourMainFrame::getInstance()->getInstantVector(tempVector);
602 std::vector<std::string> interfMainPanel::getOutlinesName(int slide){
603 return wxContourMainFrame::getInstance()->getOutlinesName(slide);
606 void interfMainPanel::onInformationContourLabels(int typeContourGroup,int selection,int minZ,int maxZ){
607 wxContourMainFrame::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ);
610 void interfMainPanel::setStringInfoPanel(wxString tmpString){
611 if(informationPanel!=NULL){
612 ((interfInformationPanel*)informationPanel)->setStringInfoPanel(tmpString);
616 void interfMainPanel::setRowLabelInfoPanel(int z, wxString tempString){
617 ((interfInformationPanel*)informationPanel)->setRowLabelInfoPanel(z, tempString);
620 int interfMainPanel::getNumberColsInformationPanel(){
621 return ((interfInformationPanel*)informationPanel)->getNumberCols();
624 void interfMainPanel::appendColsInformationPanel(int _numberOfVariablesStatistics){
625 ((interfInformationPanel*)informationPanel)->appendCols(_numberOfVariablesStatistics);
628 void interfMainPanel::setCellValueInfoPanel(int z,int tmpIntA,wxString tempString){
629 ((interfInformationPanel*)informationPanel)->setCellValue(z, tmpIntA, tempString);
632 void interfMainPanel::setColLableInfoPanel(int tmpIntB,wxString tmpTitleString){
633 ((interfInformationPanel*)informationPanel)->setColLabel(tmpIntB, tmpTitleString);
637 void interfMainPanel::onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup){
638 wxContourMainFrame::getInstance()->onSaveResults(directory, namefile,filename, typeContourGroup);
641 wxString interfMainPanel::getCellValue(int j,int i){
642 return ((interfInformationPanel*)informationPanel)->getCellValue(j, i );
645 void interfMainPanel::onSnakePressed(){
646 wxContourMainFrame::getInstance()->onSnakePressed();
649 void interfMainPanel::onMirrorPressed(){
650 if(mirrorPanel==NULL)
653 mirrorPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
654 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
655 mirrorPanel->SetSizer(flexsizer, true);
656 mirrorPanel->SetAutoLayout( true );
657 panelMirror = new interfMirrorPanel(mirrorPanel);
659 wxStaticText* stattext = new wxStaticText(mirrorPanel, -1, wxString(_T(" Mirroring Tool ")), wxDefaultPosition,
660 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
662 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
663 flexsizer->Add(panelMirror, wxEXPAND);
664 mirrorPanel->Layout();
668 showPanel(mirrorPanel);
669 wxContourMainFrame::getInstance()->referenceLine();
676 wxContourMainFrame::getInstance()->refLineHide();
682 else if (!refLineShown)
684 wxContourMainFrame::getInstance()->refLineShow();
687 showPanel(mirrorPanel);
694 void interfMainPanel::onThreshold(int minVal, int maxVal)
696 wxContourMainFrame::getInstance()->onThreshold(minVal, maxVal);
699 void interfMainPanel::onThresholdPressed()
701 if(thresholdPanel==NULL)
704 thresholdPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
705 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
706 thresholdPanel->SetSizer(flexsizer, true);
707 thresholdPanel->SetAutoLayout( true );
708 panelThreshold = new interfThresholdPanel(thresholdPanel);
710 wxStaticText* stattext = new wxStaticText(thresholdPanel, -1, wxString(_T(" Threshold Tool ")), wxDefaultPosition,
711 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
713 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
714 flexsizer->Add(panelThreshold, wxEXPAND);
715 thresholdPanel->Layout();
716 showPanel(thresholdPanel);
724 wxContourMainFrame::getInstance()->refLineHide();
725 thresholdShown=false;
726 panelThreshold->onThresholdStop();
731 else if (!thresholdShown)
733 wxContourMainFrame::getInstance()->refLineShow();
736 showPanel(thresholdPanel);