_withOfContourLine = new wxSlider(this, -1, 1 , 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
double range[2];
- interfMainPanel::getInstance()->GetImageDataRange(range);
+ interfMainPanel::getInstance()->getImageRange(range);
//this->_theViewPanel->getSceneManager()->GetImageDataRange(range);
//wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)this->_theViewPanel->getWxVtkBaseView();
int colorwindow = interfMainPanel::getInstance()->getColorWindow();
int windowlevel = interfMainPanel::getInstance()->getWindowLevel();
+ int min = (int)floor (range[0]);
+ int max = (int)ceil (range[1]);
+
- _brithtnessWindowLevel = new wxSlider(this, -1, windowlevel , 1, range[1], wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
- _brithtnessColorLevel = new wxSlider(this, -1, colorwindow , 1, range[1], wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
+ _brithtnessWindowLevel = new wxSlider(this, -1, windowlevel , min, max, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
+ _brithtnessColorLevel = new wxSlider(this, -1, colorwindow , min, max, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
_interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") );
_interpolationCheckBox->SetValue(true);
- Connect( _withOfContourLine->GetId() , wxEVT_SCROLL_CHANGED , (wxObjectEventFunction) &interfConfigurationPanel::onWidthOfContour );
- Connect( _withOfContourLine->GetId() , wxEVT_SCROLL_THUMBTRACK , (wxObjectEventFunction) &interfConfigurationPanel::onWidthOfContour );
+ Connect( _withOfContourLine->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction) &interfConfigurationPanel::onWidthOfContour);
+ Connect( _withOfContourLine->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &interfConfigurationPanel::onWidthOfContour);
- Connect( _brithtnessWindowLevel->GetId() , wxEVT_SCROLL_CHANGED , (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel );
- Connect( _brithtnessWindowLevel->GetId() , wxEVT_SCROLL_THUMBTRACK , (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel );
- Connect( _brithtnessColorLevel->GetId() , wxEVT_SCROLL_CHANGED , (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel );
- Connect( _brithtnessColorLevel->GetId() , wxEVT_SCROLL_THUMBTRACK , (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel );
- Connect( _interpolationCheckBox->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &interfConfigurationPanel::OnInterpolation );
+ Connect( _brithtnessWindowLevel->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
+ Connect( _brithtnessWindowLevel->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
+ Connect( _brithtnessColorLevel->GetId() , wxEVT_SCROLL_CHANGED, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
+ Connect( _brithtnessColorLevel->GetId() , wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
+ Connect( _interpolationCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &interfConfigurationPanel::OnInterpolation);
wxFlexGridSizer * sizer = new wxFlexGridSizer(1);
sizer -> Add( new wxStaticText(this,-1,_T("Contour width")) , 1, wxGROW );
** Begin of information panel
**/
interfInformationPanel::interfInformationPanel(wxWindow * parent)
-: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN){
-
+: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
+{
//wxPanel *panel = new wxPanel(parent,-1,wxDefaultPosition, wxDefaultSize,wxTAB_TRAVERSAL);
wxString lstOptions[4];
lstOptions[0]=_T("Current Slice");
lstOptions[1]=_T("Range Slices");
- lstOptions[2]=_T("All Slices");
- _informationRadiobox = new wxRadioBox(this, -1, _T("Slice analysis"), wxDefaultPosition, wxSize(270,45), 3 , lstOptions, 3, wxRA_SPECIFY_COLS);
+// lstOptions[2]=_T("All Slices");
+ _informationRadiobox = new wxRadioBox(this, -1, _T("Slice analysis"), wxDefaultPosition, wxSize(270,45), 2 , lstOptions, 2, wxRA_SPECIFY_COLS);
wxString lstOptContOperation[5];
lstOptContOperation[0]=_T("AND");
lstOptContOperation[3]=_T("ALL");
_radiolstboxContourGroup = new wxRadioBox(this, -1, _T("Contour group"), wxDefaultPosition, wxSize(270,45), 4 , lstOptContOperation, 4, wxRA_SPECIFY_COLS);
+ _XYZValues = new wxCheckBox(this, -1, _T("Save Contour Values") );
+ _XYZValues->SetValue(true);
+
+ _contourImage = new wxCheckBox(this, -1, _T("Extract Contours as Images") );
+ _contourImage->SetValue(true);
+
+ _statistics = new wxCheckBox(this, -1, _T("Save Statistics") );
+ _statistics->SetValue(true);
+
wxButton *informationContourLabelsBtn = new wxButton(this,-1,_T("Contour labels"),wxDefaultPosition, wxSize(140,35) );
informationContourLabelsBtn->SetEventHandler( this );
Connect( informationContourLabelsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onInformationContourLabels );
statisticsContourBtn->SetEventHandler( this );
Connect( statisticsContourBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onExtractInformation );
- wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save statistics results"),wxDefaultPosition, wxSize(140,35) );
+ wxButton *showResultImagesBtn = new wxButton(this,-1,_T("Show result images"),wxDefaultPosition, wxSize(140,35) );
+ showResultImagesBtn->SetEventHandler( this );
+ Connect( showResultImagesBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onShowResultImages );
+
+
+ wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save Results"),wxDefaultPosition, wxSize(140,35) );
saveResultsBtn->SetEventHandler( this );
Connect( saveResultsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onSaveResults );
-
-
+
+
int sizeZ = interfMainPanel::getInstance()->GetImageDataSizeZ();
//_theViewPanel->getSceneManager()->GetImageDataSizeZ();
_mbarrangeSliceInformation = new mBarRange(this,65,65);
_mbarrangeSliceInformation-> SetStart( 0 );
_mbarrangeSliceInformation-> SetEnd( sizeZ-1 );
-
double range[2];
- interfMainPanel::getInstance()->GetImageDataRange(range);
- //this->_theViewPanel->getSceneManager()->GetImageDataRange(range);
- _mbarrangeRangeInformation = new mBarRange(this,65,65);
+ interfMainPanel::getInstance()->getImageRange(range);
+
+ int min = (int)floor (range[0]);
+ int max = (int)ceil (range[1]);
+
+ _mbarrangeRangeInformation = new mBarRange(this,65,65);
_mbarrangeRangeInformation->SetMin(0);
_mbarrangeRangeInformation->SetStart(0);
_mbarrangeRangeInformation-> SetOrientation( true );
_mbarrangeRangeInformation-> setActiveStateTo(true);
_mbarrangeRangeInformation-> setVisibleLabels( true );
_mbarrangeRangeInformation-> setDeviceEndMargin(10);
- _mbarrangeRangeInformation-> setRepresentedValues( range[0] , range[1] );
+ _mbarrangeRangeInformation-> setRepresentedValues( min , max );
_mbarrangeRangeInformation-> setDeviceBlitStart(10,10);
_mbarrangeRangeInformation-> setIfWithActualDrawed( false );
- _mbarrangeRangeInformation-> SetStart( range[0] );
- _mbarrangeRangeInformation-> SetEnd( range[1] );
-
-
- _staticTextInformation = new wxStaticText(this,-1,_T(" "));
-
-
-// wxButton *XXXXXXXBtn = new wxButton(this,-1,_T("Statistics"),wxDefaultPosition, wxSize(180,35) );
-// XXXXXXXBtn->SetEventHandler( this );
-// Connect( XXXXXXXBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxContourEventHandler::onXXXXX );
+ _mbarrangeRangeInformation-> SetStart( min );
+ _mbarrangeRangeInformation-> SetEnd( max );
+ _staticTextInformation = new wxStaticText(this,-1,_T(" "));
_grid = new wxGrid( this,
wxID_ANY,
wxPoint( 0, 0 ),
- wxSize( 100, 100 ) );
+ wxSize( 200, 500 ) );
- int i,gridCol=10,gridRow=sizeZ;
+ int i,gridCol=10,gridRow=sizeZ+2;
_grid->CreateGrid( 0, 0 );
_grid->AppendRows(gridRow);
_grid->AppendCols(gridCol);
FillGridWithContoursInformation();
+ wxFlexGridSizer * sizerSave = new wxFlexGridSizer(2,2);
+ sizerSave -> Add( new wxStaticText(this,-1,_T("Save Options: ")) , 1, wxGROW );
+ sizerSave->Add( _XYZValues, 1, wxALL ,2 );
+ sizerSave->Add( _statistics, 1, wxALL ,2 );
+ sizerSave->Add( _contourImage, 1, wxALL ,2 );
+
wxFlexGridSizer * sizerA = new wxFlexGridSizer(10);
sizerA->Add( _informationRadiobox , 1, wxALL ,2 );
sizerA->Add( _radiolstboxContourGroup , 1, wxALL ,2 );
+ sizerA->Add( sizerSave , 1, wxALL ,2 );
+
wxFlexGridSizer * sizerB = new wxFlexGridSizer(10);
- sizerB->Add( informationContourLabelsBtn , 1, wxALL ,2 );
- sizerB->Add( statisticsContourBtn , 1, wxALL ,2 );
- sizerB->Add( saveResultsBtn , 1, wxALL ,2 );
+ sizerB->Add( informationContourLabelsBtn, 1, wxALL ,2 );
+ sizerB->Add( statisticsContourBtn, 1, wxALL ,2 );
+ sizerB->Add( showResultImagesBtn, 1, wxALL ,2 );
+ sizerB->Add( saveResultsBtn, 1, wxALL ,2 );
- wxFlexGridSizer * sizer = new wxFlexGridSizer(1);
- sizer->AddGrowableCol(0);
- sizer->AddGrowableRow(7);
+ wxFlexGridSizer * sizer = new wxFlexGridSizer(1,8);
sizer->Add( sizerA , 1, wxALL , 0 );
sizer->Add( new wxStaticText(this ,-1,_T("Slice Range")) , 1, wxALL , 0 );
sizer->Add( _mbarrangeSliceInformation , 1, wxALL|wxGROW , 2 );
sizer->Add( new wxStaticText(this ,-1,_T("Gray Range")) , 1, wxALL , 0 );
sizer->Add( _mbarrangeRangeInformation , 1, wxALL|wxGROW , 2 );
- sizer->Add( sizerB , 1, wxALL , 0 );
- sizer->Add( _staticTextInformation , 1, wxALL , 0 );
+ sizer->Add( sizerB , 1, wxEXPAND , 0 );
+ sizer->Add( _staticTextInformation , 1, wxEXPAND , 0 );
sizer->Add( _grid , 1, wxEXPAND , 0 );
-
-
this->SetSizer( sizer );
this->SetSize( wxSize(1500,1500) );
//this->SetBackgroundColour( wxColour(100,100,100) );
wxBusyCursor wait;
FillGridWithContoursInformation();
}
+
+
+void interfInformationPanel::onShowResultImages(wxCommandEvent& event)
+{
+// onExtractInformation( event );
+ int selection = _informationRadiobox->GetSelection();
+ int minZ = _mbarrangeSliceInformation->GetStart();
+ int maxZ = _mbarrangeSliceInformation->GetEnd();
+ int typeContourGroup = _radiolstboxContourGroup->GetSelection();
+ interfMainPanel::getInstance()->ShowResultImages( typeContourGroup , selection, minZ, maxZ);
+}
+
+
void interfInformationPanel::onExtractInformation(wxCommandEvent& event){
wxBusyCursor wait;
_grid->ClearGrid();
int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
- int selection = _informationRadiobox->GetSelection();
- int minZ = _mbarrangeSliceInformation->GetStart();
- int maxZ = _mbarrangeSliceInformation->GetEnd();
-
- interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ);
-
+ int selection = _informationRadiobox->GetSelection();
+ int minZ = _mbarrangeSliceInformation->GetStart();
+ int maxZ = _mbarrangeSliceInformation->GetEnd();
+ int grayRangeMin = _mbarrangeRangeInformation->GetStart();
+ int grayRangeMax = _mbarrangeRangeInformation->GetEnd();
+ interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ,grayRangeMin,grayRangeMax);
}
-void interfInformationPanel::onSaveResults(wxCommandEvent& event){
- wxFileDialog dialog(this, _T("Choose a file"), _T(""), _T(""), _T("*.txt"), wxSAVE );
+
+void interfInformationPanel::onSaveResults(wxCommandEvent& event)
+{
+ wxFileDialog dialog(this, _T("Choose a filename"), _T(""), _T(""), wxFileSelectorDefaultWildcardStr, wxSAVE );
if (dialog.ShowModal() == wxID_OK)
{
onExtractInformation( event );
+ int selection = _informationRadiobox->GetSelection();
+ int minZ = _mbarrangeSliceInformation->GetStart();
+ int maxZ = _mbarrangeSliceInformation->GetEnd();
std::string directory=(const char *)(dialog.GetDirectory().mb_str());
std::string namefile=(const char *)(dialog.GetFilename().mb_str());
std::string filename = (const char *)(dialog.GetPath().mb_str() );
int typeContourGroup = _radiolstboxContourGroup->GetSelection();
- interfMainPanel::getInstance()->onSaveResults(directory, namefile, filename, typeContourGroup);
+ interfMainPanel::getInstance()->onSaveResults(directory, namefile, filename,
+ typeContourGroup,
+ selection,minZ,maxZ,
+ _XYZValues->GetValue(), _contourImage->GetValue(), _statistics->GetValue());
}
}
//tempString = wxString((*contourthing)->getName().c_str(),wxConvUTF8) ;
tempString = wxString(lstContourThings[ii].c_str(),wxConvUTF8) ;
_grid->SetCellValue( z, ii, tempString );
- }
- }
+ } // for ii
+ }// for z
+
+ // Last line
+ _grid->SetRowLabelValue(sizeZ, _T(" ") );
+ for (ii=0 ; ii<sizeLstContourThings ; ii++)
+ {
+ _grid->SetCellValue( sizeZ, ii, _T(" ") );
+ } // for ii
+
}
void interfInformationPanel::setStringInfoPanel(wxString tmpString){
wxString interfInformationPanel::getCellValue(int j,int i){
return _grid->GetCellValue( j , i );
-}
\ No newline at end of file
+}
+