X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourEventHandler.cxx;h=6121c56f7e56f34b897b7a23b8bc4a0580000d36;hb=28ef036731a2758d1c2efcf4de582d063b4129ec;hp=ace7008429f3afb300c918ad02c90dc04b527e5c;hpb=89db06fc8f04c54d2cee1b07a5abe3ac7ee6cf65;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourEventHandler.cxx b/lib/Interface_ManagerContour_NDimensions/wxContourEventHandler.cxx index ace7008..6121c56 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourEventHandler.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxContourEventHandler.cxx @@ -1,6 +1,6 @@ -/* Diagrama de Secuencia de cambiar un instante +/* Diagrama de Secuaencia de cambiar un instante wxContourEventHandler :: changeInstant() OutlineModelManager :: ->setInstant( _actualInstant ); OutlineModelManager :: updateToActualInstant() @@ -103,7 +103,6 @@ digraph example_0 { #include - //------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------ @@ -119,9 +118,9 @@ PanelBullEyeOptions::PanelBullEyeOptions (wxWindow * parent, wxSize size) : wxString lstOptions[2]; - lstOptions[0]=_T("General options"); - lstOptions[1]=_T("Detail options"); - _radioboxBullEyeGenOpt = new wxRadioBox(panel, -1, _T("General/Detail options"), wxDefaultPosition, wxSize(200,45), 2 , lstOptions, 2, wxRA_SPECIFY_COLS); + lstOptions[0]= wxString("General options",wxConvUTF8); + lstOptions[1]= wxString("Detail options",wxConvUTF8); + _radioboxBullEyeGenOpt = new wxRadioBox(panel, -1, wxString("General/Detail options",wxConvUTF8), wxDefaultPosition, wxSize(200,45), 2 , lstOptions, 2, wxRA_SPECIFY_COLS); _radioboxBullEyeGenOpt->SetSelection(0); _spinctrlBullEyeNumOfCrowns = new wxSpinCtrl( panel , -1,_T("B"),wxDefaultPosition, wxSize(40,20) ); @@ -369,10 +368,11 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) inundo = 0; inredo = 0; stundoredo = "data/temp"; - char buff[3000]; // hope it's enough! - sprintf(buff, "mkdir %s;",stundoredo.c_str()); - system(buff); - //mkdir(stundoredo.c_str()); +#if(WIN32) + mkdir(stundoredo.c_str()); +#else + mkdir(stundoredo.c_str(),755); +#endif stundoredo += "/cont"; } //------------------------------------------------------------------------------------------------------------ @@ -521,7 +521,7 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) void wxContourEventHandler::onSpreadReset( wxCommandEvent& event ) { - _wxtextctrlSpread->SetValue(_T("")); + _wxtextctrlSpread->SetValue(wxString("",wxConvUTF8)); _contourPropagation->resetAppend(); } @@ -545,13 +545,16 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) _contourPropagation->appendContour(&vecX , &vecY , &vecZ); wxString newstring; - newstring.Printf(_T("%s %d -"), - _wxtextctrlSpread->GetValue().c_str(), - actualSlice ); + //newstring.Printf("%s %d -",_wxtextctrlSpread->GetValue(), actualSlice ); + newstring.append(wxString(_wxtextctrlSpread->GetValue(),wxConvUTF8)); + newstring.append(wxString(" ",wxConvUTF8)); + newstring.append(wxString(intToString(actualSlice).c_str(),wxConvUTF8)); _wxtextctrlSpread->SetValue(newstring); } // if } + + //------------------------------------------------------------------------------------------------------------ void wxContourEventHandler::onSpreadGo( wxCommandEvent& event ) { @@ -589,7 +592,11 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) for ( z=(int)minZ ; z<=(int)maxZ ; z++ ) { porcent = 100.0* (z-minZ)/totalZ; - tmpString.Printf( _T(" %d %c %d/%d %d"), (int)porcent , 37 , (int)(z-minZ+1), (int)totalZ,z ); + int numero = (int)(z-minZ+1)/(int)totalZ; + std::string stringtemp = " "+intToString(porcent)+"% "+intToString(numero)+" "+intToString(z); + tmpString.Append(wxString(stringtemp.c_str(),wxConvUTF8)); + + //tmpString.Printf(" %d %c %d/%d %d", (int)porcent , 37 , (int)(z-minZ+1), (int)totalZ,z ); _staticTextSpread->SetLabel(tmpString); if (_contourPropagation->ifSliceKeyContourExist(z)==false) @@ -632,7 +639,7 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) } // if addedModel }// ifSliceKeyContourExist } // for z - _staticTextSpread->SetLabel(_T(" ")); + _staticTextSpread->SetLabel(wxString(" ",wxConvUTF8)); //RefreshInterface(); @@ -703,7 +710,7 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) _contourPropagation = new ContourPropagation(); - wxPanel *panel = new wxPanel(parent,-1,wxDefaultPosition, wxDefaultSize,wxNO_BORDER, /*wxString("")*/ _T("") ); + wxPanel *panel = new wxPanel(parent,-1,wxDefaultPosition, wxDefaultSize,wxNO_BORDER, wxString("",wxConvUTF8)); wxButton *spreadResetBtn = new wxButton(panel,-1,_T("Reset"),wxDefaultPosition, wxDefaultSize ); wxButton *spreadAddBtn = new wxButton(panel,-1,_T("Add"),wxDefaultPosition, wxDefaultSize); @@ -712,13 +719,13 @@ double PanelBullEyeOptions::GetAngDeltaOfCrownSection(int nCrown) lstOptions[0]=_T("A"); lstOptions[1]=_T("B"); lstOptions[2]=_T("C"); - _spreadMethodRadiobox = new wxRadioBox(panel, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxDefaultSize, 3 , lstOptions, 3, wxRA_SPECIFY_COLS); + _spreadMethodRadiobox = new wxRadioBox(panel, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxDefaultSize, 3 , lstOptions, 3, wxRA_SPECIFY_COLS); _spreadMethodRadiobox->SetSelection(2); wxButton *spreadGoBtn = new wxButton(panel,-1,_T("Go"),wxDefaultPosition, wxDefaultSize); _staticTextSpread = new wxStaticText(panel,-1,_T(" ")); - _wxtextctrlSpread = new wxTextCtrl(panel,-1, _T("") ,wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); + _wxtextctrlSpread = new wxTextCtrl(panel,-1, _T(""),wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); Connect( spreadResetBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxContourEventHandler::onSpreadReset ); @@ -1051,7 +1058,7 @@ myfile.close(); lstOptions[0]=_T("A"); lstOptions[1]=_T("B"); lstOptions[2]=_T("C"); - methodRadiobox = new wxRadioBox(panel, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxSize(200,45), 3 , lstOptions, 3, wxRA_SPECIFY_COLS); + methodRadiobox = new wxRadioBox(panel, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxSize(200,45), 3 , lstOptions, 3, wxRA_SPECIFY_COLS); methodRadiobox->SetSelection(2); _staticTextSegmentation = new wxStaticText(panel,-1,_T(" ")); @@ -1109,7 +1116,7 @@ myfile.close(); wxButton *spreadResetBtn = new wxButton(panel,-1,_T("Reset"),wxDefaultPosition, wxSize(80,35) ); wxButton *spreadAddBtn = new wxButton(panel,-1,_T("Add"),wxDefaultPosition, wxSize(80,35)); wxButton *spreadGoBtn = new wxButton(panel,-1,_T("GoA"),wxDefaultPosition, wxSize(80,35)); - _wxtextctrlTest = new wxTextCtrl(panel,-1, _T(""),wxDefaultPosition, wxSize(200,150), wxTE_MULTILINE ); + _wxtextctrlTest = new wxTextCtrl(panel,-1, _T(""),wxDefaultPosition, wxSize(200,150), wxTE_MULTILINE ); _TestFrame->SetEventHandler( this ); Connect( spreadResetBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxContourEventHandler::onTestReset ); @@ -1162,15 +1169,12 @@ myfile.close(); } // for _contourPropagation->appendContour(&vecX , &vecY , &vecZ); - wxString newstring1( _wxtextctrlTest->GetValue().c_str() , wxConvUTF8); - wxString newstring2; - newstring2.Printf(_T(" %d -"), actualSlice ); - wxString newstring; - newstring = newstring1+newstring2; - - //newstring.Printf("%s %d -",_wxtextctrlTest->GetValue(), actualSlice ); - + newstring.append(_wxtextctrlTest->GetValue()); + newstring.append(_T(" ")); + newstring.append(wxString(intToString(actualSlice).c_str(),wxConvUTF8)); + //newstring.Printf(_T("%s %d -"),, ); + newstring.append(_T(" -")); _wxtextctrlTest->SetValue(newstring); } // if } @@ -1256,6 +1260,7 @@ myfile.close(); //------------------------------------------------------------------------------------------------------------ void wxContourEventHandler::FillGridWithContoursInformation() { + wxString tempString; _grid->ClearGrid(); _grid->SetColLabelValue(0, _T("A") ); _grid->SetColLabelValue(1, _T("B") ); @@ -1276,19 +1281,14 @@ myfile.close(); std::vector lstContourThings = this->_modelManager->getOutlinesAtInstant( &instant ); sizeLstContourThings = lstContourThings.size(); - wxString tempString; - tempString.Printf(_T("%d - %d"), - z, - sizeLstContourThings); - + tempString.Printf(_T("%d - %d"),z, sizeLstContourThings); _grid->SetRowLabelValue(z, tempString ); for (ii=0 ; iigetName() ; // Doesn't compile. See Creatis Wiki ! - const wxString tempString2((*contourthing)->getName().c_str(),wxConvUTF8 ); - _grid->SetCellValue( z, ii, tempString2 ); + tempString = wxString((*contourthing)->getName().c_str(),wxConvUTF8) ; + _grid->SetCellValue( z, ii, tempString ); } } @@ -1536,7 +1536,9 @@ myfile.close(); { porcent = 100.0* (z-minZ)/totalZ; - tmpString.Printf(_T("Saving Values %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); + + tmpString.Printf(_T("Saving Values")); + tmpString.Printf(_T(" %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); _staticTextInformation->SetLabel(tmpString); @@ -1588,7 +1590,14 @@ myfile.close(); &pLstValuePosZ); wxString filename; - filename.Printf(_T("%s\\%s-slice%d-cont%d.txt"),directory.c_str(),namefile.c_str(),z,iContourGroup); + filename.Printf(_T("%s"),directory.c_str()); + filename.Printf(_T("\\")); + filename.Printf(_T("%s"),namefile.c_str()); + filename.Printf(_T("-slice")); + filename.Printf(_T("%d"),z); + filename.Printf(_T("-cont")); + filename.Printf(_T("%d"),iContourGroup); + filename.Printf(_T(".txt")); FILE *pFile=fopen((const char *)filename.mb_str(),"w+"); fprintf(pFile,"value \t x \t y \t z\n" ); int iLstValue,sizeLstValue=pLstValue.size(); @@ -1646,7 +1655,8 @@ myfile.close(); { porcent = 100.0* (z-minZ)/totalZ; - tmpString.Printf(_T("Saving Values %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); + tmpString.Printf(_T("Saving Values")); + tmpString.Printf(_T("%d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); _staticTextInformation->SetLabel(tmpString); //Extraction data from contours of each slice @@ -1700,7 +1710,11 @@ myfile.close(); wxString filename; - filename.Printf(_T("%s\\%s-Value.mhd"),directory.c_str(),namefile.c_str(),z); + //filename.Printf(_T("%s\\%s-Value.mhd",directory.c_str(),namefile.c_str(),z); + filename.Printf(_T("%s"),directory.c_str()); + filename.Printf(_T("\\")); + filename.Printf(_T("%s"),namefile.c_str()); + filename.Printf(_T("-Value.mhd")); // Image Value vtkMetaImageWriter *writerValueImage = vtkMetaImageWriter::New( ); @@ -1710,7 +1724,11 @@ myfile.close(); writerValueImage->Write( ); // Image Mask - filename.Printf(_T("%s\\%s-Mask.mhd"),directory.c_str(),namefile.c_str(),z); + // filename.Printf("%s\\%s-Mask.mhd",directory.c_str(),namefile.c_str(),z); + filename.Printf(_T("%s"),directory.c_str()); + filename.Printf(_T("\\")); + filename.Printf(_T("%s"),namefile.c_str()); + filename.Printf(_T("-Mask.mhd")); vtkMetaImageWriter *writerMaskImage = vtkMetaImageWriter::New( ); writerMaskImage->SetInput( contourextractdata->GetVtkImageMaskResult() ); writerMaskImage->SetFileName( (const char *)filename.mb_str() ); @@ -1755,7 +1773,7 @@ myfile.close(); int iTitle,sizeTitle = (maxX / _numberOfVariablesStatistics); for ( iTitle=0; iTitle & keyNamesVector ) + void wxContourEventHandler :: deleteContours( std::vector keyNamesVector ) { int i,size=keyNamesVector.size(); for (i=0;iGetlstContoursNameActualSlice() ); - - ///\TODO : find something less stupid! - - std::vector oops; - oops = _sceneManager->GetlstContoursNameActualSlice(); - deleteContours( oops ); + deleteContours( (std::vector)_sceneManager->GetlstContoursNameActualSlice() ); + } @@ -3035,8 +3048,8 @@ void wxContourEventHandler::OnInterpolation(wxCommandEvent& event) return panel;*/ - wxPanel *panel = new wxPanel(parent,-1,wxDefaultPosition, wxDefaultSize,wxNO_BORDER, _T("")); - _withOfContourLine = new wxSlider(panel, -1, 1 , 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); + wxPanel *panel = new wxPanel(parent,-1,wxDefaultPosition, wxDefaultSize,wxNO_BORDER, wxString(_T(""))); + _withOfContourLine = new wxSlider(panel, -1, 1 , 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); double range[2]; this->_sceneManager->GetImageDataRange(range); @@ -3290,11 +3303,12 @@ void wxContourEventHandler::OnInterpolation(wxCommandEvent& event) inredo = 0; - char str[9000]; + //char str[9000]; //itoa(inundo, str, 10); - sprintf(str, "%d", inundo); + std::string str = intToString(inundo); - std::string temp = stundoredo + *str + ".roi"; + + std::string temp = stundoredo + str + ".roi"; saveFileWithContours(temp); inundo++; @@ -3330,12 +3344,12 @@ void wxContourEventHandler :: onREDO() inredo--; inundo++; - char str[9000]; + //char str[9000]; //itoa(inundo, str, 10); - sprintf(str, "%d", inundo); + std::string str = intToString(inundo); - std::string temp = stundoredo + *str + ".roi"; + std::string temp = stundoredo + str + ".roi"; loadState(temp); @@ -3347,25 +3361,25 @@ void wxContourEventHandler :: onREDO() void wxContourEventHandler :: onUNDO() { if(inundo>0){ - char str[9000]; if(inredo==0){ - + //char str[9000]; //itoa(inundo, str, 10); - sprintf(str, "%d",inundo); + std::string str = intToString(inundo); - std::string temp = stundoredo + *str + ".roi"; + std::string temp = stundoredo + str + ".roi"; saveFileWithContours(temp); } inredo++; inundo--; - + //char str[9000]; //itoa(inundo, str, 10); - sprintf(str, "%d",inundo); + std::string str = intToString(inundo); + - std::string temp = stundoredo + *str + ".roi"; + std::string temp = stundoredo + str + ".roi"; loadState(temp); } @@ -3534,7 +3548,8 @@ void wxContourEventHandler :: onREDO() { porcent = 100.0* (z-minZ)/totalZ; - tmpString.Printf(_T("Saving Values %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); + tmpString.Printf(_T("Saving Values")); + tmpString.Printf(_T(" %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); _staticTextInformation->SetLabel(tmpString); //Extraction data from contours of each slice @@ -3606,7 +3621,7 @@ void wxContourEventHandler :: onREDO() lstOptions[0]=_T("A"); lstOptions[1]=_T("B"); lstOptions[2]=_T("C"); - methodRadiobox = new wxRadioBox(panel, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxSize(200,45), 3 , lstOptions, 3, wxRA_SPECIFY_COLS); + methodRadiobox = new wxRadioBox(panel, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxSize(200,45), 3 , lstOptions, 3, wxRA_SPECIFY_COLS); methodRadiobox->SetSelection(2); _staticTextSegmentation = new wxStaticText(panel,-1,_T(" ")); @@ -3689,9 +3704,9 @@ void wxContourEventHandler :: onREDO() vecZ[i] = actualSlice; } // for - wxDialog* dialog = new wxDialog(parent, -1, _T("Snake")); + wxDialog* dialog = new wxDialog(parent, -1, wxString(_T("Snake"))); wxPanel* panel = new wxPanel(dialog,-1); - wxStaticText* sttext = new wxStaticText(panel, -1, _T("Panel para snake")); + wxStaticText* sttext = new wxStaticText(panel, -1, wxString(_T("Panel para snake"))); dialog->ShowModal(); } // if @@ -3703,4 +3718,19 @@ void wxContourEventHandler :: onREDO() _InformationContourFrame->Show(false); } } + + std::string wxContourEventHandler::intToString(int num){ + std::string result; + if(num == 0){ + result = "0"; + }else{ + int k=num; + while (k > 0){ + char temp = k % 10 + 48; + k = k / 10; + result = temp + result; + } + } + return result; + } //JCP 21 - 10 - 09