#include <interfSegmentationPanels.h>
Public Member Functions | |
interfSegmentationPanelVTK (wxWindow *parent) | |
~interfSegmentationPanelVTK () | |
void | onSegmentationPressed (wxCommandEvent &event) |
void | onSegmentationPressedITK (wxCommandEvent &event) |
void | setLabel (wxString tmpString) |
Private Member Functions | |
void | hideAxis () |
wxPanel * | getSegmentationPanel (wxWindow *parent) |
void | onSegmentationOneSlice (wxCommandEvent &event) |
void | onSegmentationAllSlice (wxCommandEvent &event) |
Private Attributes | |
wxPanel * | configPanel |
wxWindow * | infoWin |
wxPanel * | segmentPanel |
wxPanel * | spreadPanel |
wxPanel * | segmentPanelITK |
bool | axisshown |
wxSlider * | _isovalue |
mBarRange * | _mbarrange |
wxSlider * | _sampling |
wxStaticText * | _staticTextSegmentation |
wxRadioBox * | methodRadiobox |
Definition at line 8 of file interfSegmentationPanels.h.
interfSegmentationPanelVTK::interfSegmentationPanelVTK | ( | wxWindow * | parent | ) |
Definition at line 4 of file interfSegmentationPanels.cxx.
References _isovalue, _mbarrange, _sampling, _staticTextSegmentation, interfMainPanel::GetImageDataSizeZ(), interfMainPanel::getImageRange(), interfMainPanel::getInstance(), methodRadiobox, onSegmentationAllSlice(), and onSegmentationOneSlice().
00005 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN) 00006 { 00007 int sizeZ = interfMainPanel::getInstance()->GetImageDataSizeZ(); 00008 00009 double range[2]; 00010 interfMainPanel::getInstance()->getImageRange(range); 00011 00012 int min = (int)floor (range[0]); 00013 int max = (int)ceil (range[1]); 00014 00015 wxButton *segmentationOneSliceBtn = new wxButton(this,-1,_T("Current slice"), wxDefaultPosition, wxSize(200,35) ); 00016 wxButton *segmentationAllSliceBtn = new wxButton(this,-1,_T("All slices") ,wxDefaultPosition, wxSize(200,35) ); 00017 _isovalue = new wxSlider(this, -1, 40 , min, max, wxDefaultPosition, wxSize(200,35), wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); 00018 _sampling = new wxSlider(this, -1, 20 , 4, 50, wxDefaultPosition, wxSize(200,35), wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); 00019 wxString lstOptions[3]; 00020 lstOptions[0]=_T("A"); 00021 lstOptions[1]=_T("B"); 00022 lstOptions[2]=_T("C"); 00023 methodRadiobox = new wxRadioBox(this, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxSize(200,45), 3 , lstOptions, 3, wxRA_SPECIFY_COLS); 00024 methodRadiobox->SetSelection(2); 00025 _staticTextSegmentation = new wxStaticText(this,-1,_T(" ")); 00026 00027 _mbarrange = new mBarRange(this,70, 65); 00028 _mbarrange->SetMin(0); 00029 _mbarrange->SetStart(0); 00030 00031 _mbarrange->SetOrientation( true ); 00032 _mbarrange->setActiveStateTo(true); 00033 _mbarrange->setVisibleLabels( true ); 00034 _mbarrange->setDeviceEndMargin(10); 00035 _mbarrange->setRepresentedValues( 0 , sizeZ ); 00036 _mbarrange->setDeviceBlitStart(10,10); 00037 _mbarrange->setIfWithActualDrawed( false ); 00038 _mbarrange->SetStart( 0 ); 00039 _mbarrange->SetEnd( sizeZ ); 00040 00041 wxFlexGridSizer * sizer = new wxFlexGridSizer(1); 00042 sizer->Add( new wxStaticText(this, -1, _T("Isovalue (Gray level)")), 1, wxGROW ); 00043 sizer->Add( _isovalue, 1, wxGROW ); 00044 sizer->Add( methodRadiobox , 1, wxGROW ); 00045 sizer->Add( new wxStaticText(this, -1 ,_T("Sampling (%)")), 1, wxGROW ); 00046 sizer->Add( _sampling, 1, wxGROW ); 00047 sizer->Add( segmentationOneSliceBtn, 1, wxGROW ); 00048 sizer->Add( new wxStaticText(this, -1, _T(" ")), 1, wxGROW ); 00049 sizer->Add( _staticTextSegmentation, 1, wxGROW ); 00050 sizer->Add( segmentationAllSliceBtn, 1, wxGROW ); 00051 sizer->Add( _mbarrange, 1, wxGROW ); 00052 00053 this->SetSizer( sizer ); 00054 // panel->SetSize( sizePanel ); 00055 this->SetSize( wxDefaultSize ); 00056 this->SetAutoLayout( true ); 00057 this->Layout(); 00058 00059 //_segmentationFrame->SetEventHandler( this ); 00060 //segmentationOneSliceBtn->SetEventHandler( this ); 00061 //segmentationAllSliceBtn->SetEventHandler( this ); 00062 //panel->SetEventHandler(this); 00063 Connect( segmentationOneSliceBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &interfSegmentationPanelVTK::onSegmentationOneSlice); 00064 Connect( segmentationAllSliceBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &interfSegmentationPanelVTK::onSegmentationAllSlice); 00065 }
interfSegmentationPanelVTK::~interfSegmentationPanelVTK | ( | ) |
wxPanel* interfSegmentationPanelVTK::getSegmentationPanel | ( | wxWindow * | parent | ) | [private] |
void interfSegmentationPanelVTK::hideAxis | ( | ) | [private] |
void interfSegmentationPanelVTK::onSegmentationAllSlice | ( | wxCommandEvent & | event | ) | [private] |
Definition at line 109 of file interfSegmentationPanels.cxx.
References _isovalue, _mbarrange, _sampling, interfMainPanel::getInstance(), methodRadiobox, and interfMainPanel::onSegmentationAllSlice().
Referenced by interfSegmentationPanelVTK().
00110 { 00111 int minZ=_mbarrange->GetStart(); 00112 int maxZ=_mbarrange->GetEnd(); 00113 00114 int isovalue = _isovalue->GetValue(); 00115 int sampling = _sampling->GetValue(); 00116 int method = methodRadiobox->GetSelection(); 00117 00118 interfMainPanel::getInstance()->onSegmentationAllSlice(minZ, maxZ, isovalue, sampling, method); 00119 }
void interfSegmentationPanelVTK::onSegmentationOneSlice | ( | wxCommandEvent & | event | ) | [private] |
Definition at line 101 of file interfSegmentationPanels.cxx.
References _isovalue, _sampling, interfMainPanel::getInstance(), methodRadiobox, and interfMainPanel::onSegmentationOneSlice().
Referenced by interfSegmentationPanelVTK().
00102 { 00103 int isovalue = _isovalue->GetValue(); 00104 int sampling = _sampling->GetValue(); 00105 int method = methodRadiobox->GetSelection(); 00106 interfMainPanel::getInstance()->onSegmentationOneSlice(isovalue, sampling, method); 00107 00108 }
void interfSegmentationPanelVTK::onSegmentationPressed | ( | wxCommandEvent & | event | ) |
Responds to the events of the buttons, when the same panel is responsible for it. It gets the name of the button corresponding to the method that has to be executed, it uses attribute eventHandler to call the methods define by the application. see setEventHandler(wxEventHandler*)
void interfSegmentationPanelVTK::onSegmentationPressedITK | ( | wxCommandEvent & | event | ) |
Responds to the events of the buttons, when the same panel is responsible for it. It gets the name of the button corresponding to the method that has to be executed, it uses attribute eventHandler to call the methods define by the application. see setEventHandler(wxEventHandler*)
Definition at line 79 of file interfSegmentationPanels.cxx.
References interfMainPanel::getInstance(), segmentPanelITK, and interfMainPanel::showPanel().
00079 { 00080 if(segmentPanelITK == NULL) { 00081 segmentPanelITK = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); 00082 00083 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); 00084 segmentPanelITK->SetSizer(flexsizer, true); 00085 segmentPanelITK->SetAutoLayout( true ); 00086 00087 wxPanel* panel = new wxPanel(this, -1);//contourevent->getSegmentationPanelITK(segmentPanelITK); 00088 00089 wxStaticText* stattext = new wxStaticText(segmentPanelITK, -1, wxString(_T(" Automatic ITK Segmentation ")), wxDefaultPosition, 00090 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); 00091 00092 flexsizer->Add(stattext, wxALIGN_CENTER | wxALIGN_CENTRE); 00093 flexsizer->Add(panel, wxEXPAND); 00094 segmentPanelITK->Layout(); 00095 } 00096 interfMainPanel::getInstance()->showPanel(segmentPanelITK); 00097 //contourevent->showAxis(true); 00098 //axisshown = true; 00099 }
void interfSegmentationPanelVTK::setLabel | ( | wxString | tmpString | ) |
Definition at line 121 of file interfSegmentationPanels.cxx.
References _staticTextSegmentation.
00121 { 00122 _staticTextSegmentation->SetLabel(tmpString); 00123 }
wxSlider* interfSegmentationPanelVTK::_isovalue [private] |
Definition at line 46 of file interfSegmentationPanels.h.
Referenced by interfSegmentationPanelVTK(), onSegmentationAllSlice(), and onSegmentationOneSlice().
mBarRange* interfSegmentationPanelVTK::_mbarrange [private] |
Definition at line 48 of file interfSegmentationPanels.h.
Referenced by interfSegmentationPanelVTK(), and onSegmentationAllSlice().
wxSlider* interfSegmentationPanelVTK::_sampling [private] |
Definition at line 50 of file interfSegmentationPanels.h.
Referenced by interfSegmentationPanelVTK(), onSegmentationAllSlice(), and onSegmentationOneSlice().
wxStaticText* interfSegmentationPanelVTK::_staticTextSegmentation [private] |
Definition at line 52 of file interfSegmentationPanels.h.
Referenced by interfSegmentationPanelVTK(), and setLabel().
bool interfSegmentationPanelVTK::axisshown [private] |
Definition at line 36 of file interfSegmentationPanels.h.
wxPanel* interfSegmentationPanelVTK::configPanel [private] |
Definition at line 31 of file interfSegmentationPanels.h.
wxWindow* interfSegmentationPanelVTK::infoWin [private] |
Definition at line 32 of file interfSegmentationPanels.h.
wxRadioBox* interfSegmentationPanelVTK::methodRadiobox [private] |
Definition at line 54 of file interfSegmentationPanels.h.
Referenced by interfSegmentationPanelVTK(), onSegmentationAllSlice(), and onSegmentationOneSlice().
wxPanel* interfSegmentationPanelVTK::segmentPanel [private] |
Definition at line 33 of file interfSegmentationPanels.h.
wxPanel* interfSegmentationPanelVTK::segmentPanelITK [private] |
wxPanel* interfSegmentationPanelVTK::spreadPanel [private] |
Definition at line 34 of file interfSegmentationPanels.h.