X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourMainFrame.cxx;h=888e51f73d4667e880cb2de76254a5a9f0bf9ad5;hb=5de11be0bfc76094782cbd5ddf61c80c78b41df3;hp=6e93fadb4224064ba277a8404199059646aae5ef;hpb=2324e69fae89eb2cd267c14c087db68e96c9b88b;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx index 6e93fad..888e51f 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx @@ -126,12 +126,22 @@ char wxContourMainFrame::COPY = 'C'; _performingOperation = new PerformingOperation(); if(images.size() > 0) { - this->setVectImages(images); + this->configure(images); } _contourextractdata = NULL; } -void wxContourMainFrame::setVectImages(std::vector imgs) + +void wxContourMainFrame::changeImage(int id, vtkImageData *img) +{ + if ( id<_images.size() ) _images[id]=img; + kernelManager->changeImage(id,img); + _theViewPanel->changeImage(img); +// updateInstantImageData(); + +} + +void wxContourMainFrame::configure(std::vector imgs) { _images = imgs; #if defined(_WIN32) @@ -159,7 +169,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) } - wxContourMainFrame* wxContourMainFrame :: getInstance(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style,std::string datadir ) + wxContourMainFrame* wxContourMainFrame::getInstance(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style,std::string datadir ) { if(instance == NULL) { @@ -214,9 +224,9 @@ void wxContourMainFrame::setVectImages(std::vector imgs) // wxAuiNotebook * wxContourMainFrame::createNotebook() { - wxSize client_size = GetClientSize(); + wxSize client_size = GetClientSize(); wxAuiNotebook* noteBook = new wxAuiNotebook(this, -1, wxPoint(client_size.x, client_size.y), wxSize(430,200), m_notebook_style); - wxBitmap page_bmp = wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, wxSize(16,16)); + wxBitmap page_bmp = wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, wxSize(16,16)); return noteBook; } @@ -734,7 +744,6 @@ void wxContourMainFrame::updateInstantImageData() { std::vector inst; _instantPanel->getInstant(inst); - vtkImageData* img = kernelManager->getImageAtInstant(inst); if(img!=NULL) { @@ -863,7 +872,7 @@ void wxContourMainFrame ::loadState(std::string filename) onLoadContours(filename,false); } -void wxContourMainFrame::onLoad() +void wxContourMainFrame::onLoad(bool interactiveInterface) // interactiveInterface default true { std::string fileNameContourROI = GetFileLocation(); //CMRU 03-09-09----------------------------------------------------------------------------------------------- @@ -881,7 +890,7 @@ void wxContourMainFrame::onLoad() fileNameContourROI = (const char *)(dialog.GetPath().mb_str()); } // if dialog } // if FileLocation - onLoadContours(fileNameContourROI,true); + onLoadContours(fileNameContourROI, interactiveInterface ); } void wxContourMainFrame::SetZForAllContours(int pz) @@ -894,7 +903,6 @@ void wxContourMainFrame::SetZForAllContours(int pz) sizeLstNameThings = lstNameThings.size(); for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); sizeLstPoints = manualModel->GetSizeLstPoints(); for (ii=0 ; iiGetDimensions(dimRange); - fprintf(pFile,"ImageDimensions %d %d %d\n", dimRange[0], dimRange[1], dimRange[2] ); - double spaRange[3]; image->GetSpacing(spaRange); - fprintf(pFile,"ImageSpacing %f %f %f\n", spaRange[0], spaRange[1], spaRange[2] ); - // Normal Contours - lstNameThings = kernelManager->GetLstNameThings(); sizeLstNameThings = lstNameThings.size(); fprintf(pFile,"NumberOfContours %d\n", sizeLstNameThings ); - //CMRU 03-09-09----------------------------------------------------------------------------------------------- fprintf(pFileData,"NumberOfContours %d\n", sizeLstNameThings ); //------------------------------------------------------------------------------------------------------------ - - // EED 2017-05-30 double spc[3]; spc[0]=1; spc[1]=1; - spc[2]=1; - + spc[2]=1; for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); - // EED 2017-05-30 // double sizeInPixel = manualModel ->GetPathSize( ); double sizeInPixel = manualModel ->GetPathSize( spc ); - double realContourSize = sizeInPixel*_onePixelSize; manualModel ->SetRealSize(realContourSize); //------------------------------------------------------------------------------------------------------------ - //int size= kernelManager->GetLstNameThings().size(); - kernelManager->SaveThingName( pFile, pFileData, lstNameThings[i] ); _theViewPanel->getSceneManager()->SaveThingName( pFile, lstNameThings[i] ); }// for i - //-- Static Contours - // fprintf(pFile,"ImageDimensions %d %d %d\n", dimRange[0], dimRange[1], dimRange[2] ); // fprintf(pFile,"ImageSpacing %f %f %f\n", spaRange[0], spaRange[1], spaRange[2] ); - lstNameThings = kernelManager->GetLstNameThingsStatic(); sizeLstNameThings = lstNameThings.size(); fprintf(pFile,"NumberOfContoursStatic %d\n", sizeLstNameThings ); - //CMRU 03-09-09----------------------------------------------------------------------------------------------- fprintf(pFileData,"NumberOfContoursStatic %d\n", sizeLstNameThings ); //------------------------------------------------------------------------------------------------------------ - for (i=0 ; iSaveThingName( pFile, pFileData, lstNameThings[i] ); @@ -1211,7 +1198,6 @@ void wxContourMainFrame::readDimSpc(FILE *pFile, bool interactiveOption) //AD:04-06-09 void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, bool staticContour ) { -printf ("EED wxContourMainFrame::openContours Start \n"); char tmp[255]; vtkImageData *image = _images[0]; @@ -1373,8 +1359,6 @@ printf ("EED wxContourMainFrame::openContours Start \n"); /* } */ -printf ("EED wxContourMainFrame::openContours END \n"); - } void wxContourMainFrame::RefreshInterface() @@ -1726,7 +1710,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d } -void wxContourMainFrame::onSegmentationOneSlice(int isovalue,int sampling,int method){ +void wxContourMainFrame::onSegmentationOneSlice(double isovalue,int sampling,int method){ //JCP 20-10-08 Undo redo implementation saveState(); @@ -1736,20 +1720,17 @@ void wxContourMainFrame::onSegmentationOneSlice(int isovalue,int sampling,int me int x = _theViewPanel->GetX(); int y = _theViewPanel->GetY(); int z = _theViewPanel->GetZ(); - SegmentationOneSlice( x,y,z,isovalue, sampling, method ); + SegmentationOneSlice( x,y,z,isovalue, sampling, method , getImageData() ); RefreshInterface(); } -void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue, int sampling, int method ) +void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, double isovalue, int sampling, int method , vtkImageData *imagedata) { - -//printf("EED wxContourMainFrame::SegmentationOneSlice Start=%d %d\n",sampling,method ); -//printf("EED wxContourMainFrame::SegmentationOneSlice %d %d %d \n",x,y,z ); - int typeofcontour = 1; //--Extracting Contour - vtkImageData *imagedata = getImageData(); +// 2024-01-09 +// vtkImageData *imagedata = getImageData(); vtkImageReslice *imageReslice = vtkImageReslice::New(); //EED @@ -1996,7 +1977,41 @@ void wxContourMainFrame::GetImageDataRange(double *range) _theViewPanel->GetImageDataRange(range); } -void wxContourMainFrame::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method) +// Used from wxContourMainFrame_tool bbtk box +void wxContourMainFrame::onSegmentationAllSlices2(int step ,double isovalue,int sampling,int method,int minZ, int maxZ,vtkImageData* imagedata) +{ + //JCP 20-10-08 Undo redo implementation + saveState(); + //JCP 20-10-08 Undo redo implementation + wxBusyCursor wait; +// int x = _theViewPanel->GetX(); +// int y = _theViewPanel->GetY(); + int z; +// double porcent; +// wxString tmpString; +// double totalZ = maxZ-minZ+1; + int ext[6]; + imagedata->GetExtent(ext); + int sizeZ = ext[5]-ext[4]+1; + if (minZ<0) { minZ=0; } + if (maxZ>=sizeZ) { maxZ=sizeZ-1; } + if (step>=1) { + int _minZ = minZ/step; + _minZ=_minZ*step; + for( z=_minZ ; z<=maxZ ; z=z+step ) + { + // porcent = 100.0* (z-minZ)/totalZ; + // tmpString.Printf(_T(" %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ,z ); + // interfMainPanel::getInstance()->setLabelSegmentationPanelVTK(tmpString); + //_staticTextSegmentation->SetLabel(tmpString); + SegmentationOneSlice( 100,100,z,isovalue, sampling,method , imagedata ); + } + // interfMainPanel::getInstance()->setLabelSegmentationPanelVTK(_T(" ")); + RefreshInterface(); + } // if step +} + +void wxContourMainFrame::onSegmentationAllSlices(int minZ,int maxZ,double isovalue,int sampling,int method) { //JCP 20-10-08 Undo redo implementation saveState(); @@ -2015,7 +2030,7 @@ void wxContourMainFrame::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,i tmpString.Printf(_T(" %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ,z ); interfMainPanel::getInstance()->setLabelSegmentationPanelVTK(tmpString); //_staticTextSegmentation->SetLabel(tmpString); - SegmentationOneSlice( x,y,z,isovalue, sampling,method ); + SegmentationOneSlice( x,y,z,isovalue, sampling,method , getImageData() ); } interfMainPanel::getInstance()->setLabelSegmentationPanelVTK(_T(" ")); RefreshInterface(); @@ -2237,7 +2252,6 @@ int wxContourMainFrame::getWindowLevel() void wxContourMainFrame::onBrigthnessColorWindowLevel(int colorwindow,int windowlevel) { _theViewPanel->onBrigthnessColorWindowLevel(colorwindow, windowlevel); - RefreshInterface(); } @@ -3090,7 +3104,6 @@ void wxContourMainFrame::onSnakePressed(){ void wxContourMainFrame::saveFileWithContoursAutomatique() { -printf("EED wxContourMainFrame::saveFileWithContoursAutomatique \n"); std::string filename = kernelManager->getCurrentFileName(); if(filename.compare("")!=0){ saveFileWithContours(filename); @@ -3098,22 +3111,19 @@ printf("EED wxContourMainFrame::saveFileWithContoursAutomatique \n"); onSave(); } } + void wxContourMainFrame::ShowToolsPanel(bool show) { _pannew->Show(show); } - - void wxContourMainFrame::SetContourGroup(int contourGroup) { _contourGroup = contourGroup; } - wxPanel *wxContourMainFrame::getMaskImageViewPanel(wxWindow *parent) { - if (_viewMaskImagePanel==NULL) { _contourextractdata = new ContourExtractData(true);