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 );
+ sizer -> Add( new wxStaticText(this,-1, _T("Contour width")) , 1, wxGROW );
sizer -> Add( _withOfContourLine , 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T("Brightness of the image")) , 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T("--Window level--")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T("Brightness of the image")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T("--Window level--")) , 1, wxGROW );
sizer -> Add( _brithtnessWindowLevel , 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T("--Color level--")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T("--Color level--")) , 1, wxGROW );
sizer -> Add( _brithtnessColorLevel, 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW );
- sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
+ sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
sizer -> Add( _interpolationCheckBox , 1, wxGROW );
this->SetSizer( sizer );
int colorwindow = _brithtnessColorLevel->GetValue();
int windowlevel = _brithtnessWindowLevel->GetValue();
-
interfMainPanel::getInstance()->onBrigthnessColorWindowLevel(colorwindow, windowlevel);
}
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[1]=_T("OR");
lstOptContOperation[2]=_T("XOR");
lstOptContOperation[3]=_T("ALL");
- _radiolstboxContourGroup = new wxRadioBox(this, -1, _T("Contour group"), wxDefaultPosition, wxSize(270,45), 4 , lstOptContOperation, 4, wxRA_SPECIFY_COLS);
-
+ _radiolstboxContourGroup = new wxRadioBox(this, -1, _T("Contour group"), wxDefaultPosition, wxSize(270,45), 4 , lstOptContOperation, 4, wxRA_SPECIFY_COLS);
+ _radiolstboxContourGroup->SetSelection(1);
+ Connect( _radiolstboxContourGroup->GetId(), wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction) &interfInformationPanel::onContourGroup );
+
+
_XYZValues = new wxCheckBox(this, -1, _T("Save Contour Values") );
_XYZValues->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) );
+ 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 );
- wxButton *statisticsContourBtn = new wxButton(this,-1,_T("Contour statistics"),wxDefaultPosition, wxSize(140,35) );
+ wxButton *statisticsContourBtn = new wxButton(this,-1,_T("Contour statistics"),wxDefaultPosition, wxSize(140,35) );
statisticsContourBtn->SetEventHandler( this );
Connect( statisticsContourBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onExtractInformation );
- wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save 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 = new mBarRange(this,65,65);
_mbarrangeSliceInformation->SetMin(0);
_mbarrangeSliceInformation->SetStart(0);
_mbarrangeSliceInformation-> SetOrientation( true );
_mbarrangeSliceInformation-> SetStart( 0 );
_mbarrangeSliceInformation-> SetEnd( sizeZ-1 );
+
+
double range[2];
interfMainPanel::getInstance()->getImageRange(range);
_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( min , max );
- _mbarrangeRangeInformation-> setDeviceBlitStart(10,10);
- _mbarrangeRangeInformation-> setIfWithActualDrawed( false );
- _mbarrangeRangeInformation-> SetStart( min );
- _mbarrangeRangeInformation-> SetEnd( max );
+ _mbarrangeRangeInformation->SetOrientation( true );
+ _mbarrangeRangeInformation->setActiveStateTo(true);
+ _mbarrangeRangeInformation->setVisibleLabels( true );
+ _mbarrangeRangeInformation->setDeviceEndMargin(10);
+ _mbarrangeRangeInformation->setRepresentedValues( min , max );
+ _mbarrangeRangeInformation->setDeviceBlitStart(10,10);
+ _mbarrangeRangeInformation->setIfWithActualDrawed( false );
+ _mbarrangeRangeInformation->SetStart( min );
+ _mbarrangeRangeInformation->SetEnd( max );
+
+// _mbarrangeSliceInformation->PushEventHandler(this);
+// Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
+// Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
+ Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
+ Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
+// Connect(_mbarrangeRangeInformation->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
+ Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
+
_staticTextInformation = new wxStaticText(this,-1,_T(" "));
wxPoint( 0, 0 ),
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);
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 );
+ 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 );
+ 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,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, wxEXPAND , 0 );
- sizer->Add( _staticTextInformation , 1, wxEXPAND , 0 );
- sizer->Add( _grid , 1, wxEXPAND , 0 );
+ 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, wxEXPAND , 0 );
+ sizer->Add( _staticTextInformation , 1, wxEXPAND , 0 );
+ sizer->Add( _grid , 1, wxEXPAND , 0 );
this->SetSizer( sizer );
this->SetSize( wxSize(1500,1500) );
this->Layout();
//return panel;
}
-interfInformationPanel::~interfInformationPanel(){
+
+interfInformationPanel::~interfInformationPanel()
+{
+}
+
+
+void interfInformationPanel::onRangeSliceInformation(wxCommandEvent& event)
+{
+ int grayRangeMin = _mbarrangeRangeInformation->GetStart();
+ int grayRangeMax = _mbarrangeRangeInformation->GetEnd();
+ interfMainPanel::getInstance()->SetScalarRange(grayRangeMin,grayRangeMax);
+ interfMainPanel::getInstance()->RefreshInterface();
}
+
void interfInformationPanel::onInformationContourLabels(wxCommandEvent& event){
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 filename"), _T(""), _T(""), wxFileSelectorDefaultWildcardStr, wxSAVE );
if (dialog.ShowModal() == wxID_OK)
{
onExtractInformation( event );
- 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();
+ 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, _XYZValues->GetValue(), _contourImage->GetValue(), _statistics->GetValue());
+ 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){
return _grid->GetCellValue( j , i );
}
+void interfInformationPanel::onContourGroup(wxCommandEvent& event)
+{
+ printf("EED interfInformationPanel::onContourGroup \n");
+ int contourGroup=_radiolstboxContourGroup->GetSelection();
+ if (contourGroup==3)
+ {
+ contourGroup=0;
+ }
+ interfMainPanel::getInstance()->SetContourGroup( _radiolstboxContourGroup->GetSelection() );
+}
+
+//CMRU 29-08-09-----------------------------------------------------------------------------------------------
+interfCalibrationPanel:: interfCalibrationPanel(wxWindow * parent)
+: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
+{
+ double range[2];
+ interfMainPanel::getInstance()->getImageRange(range);
+
+ //Radio buttons
+ wxString options[3];
+ options[0]=_T("mm");
+ options[1]=_T("cm");
+ options[2]=_T("inch");
+
+ _unitsRadiobox = new wxRadioBox(this, -1, _T("Unit of measurement"), wxPoint(2, 25), wxSize(145,45), 3 , options, 3, wxRA_SPECIFY_COLS);
+ _unitsRadiobox->SetSelection(0);
+
+ //The label
+ new wxStaticText(this, wxID_ANY, wxT("Real Size: "), wxPoint(2, 5));
+
+ //Text Control
+ _size = new wxTextCtrl(this, wxID_ANY, wxT(""), wxPoint(78,3), wxSize(70, 20), 0, wxDefaultValidator, wxTextCtrlNameStr);
+
+ //The button
+ new wxButton(this, 1, wxT("Calibrate"), wxPoint(78, 70), wxSize(70, 25), 0, wxDefaultValidator, wxT("button"));
+
+ //Conexion del boton con su respectivo manejador
+ Connect(1, wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction) &interfCalibrationPanel::onCalibrate);
+
+}
+
+interfCalibrationPanel:: ~interfCalibrationPanel()
+{
+}
+
+void interfCalibrationPanel::onCalibrate(wxCommandEvent& event)
+{
+ wxString size =_size->GetValue();
+ int unit = _unitsRadiobox->GetSelection();
+ interfMainPanel::getInstance()->onCalibration(size, unit);
+}
+//------------------------------------------------------------------------------------------------------------
+