X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourMainFrame.cxx;h=793e05d9ebf18b600e7363c163ef7dbeaa1edb89;hb=refs%2Fheads%2Fvtk8itk4wx3-mingw64;hp=a3f199a412109c5c46f425a5fe230be2e1804256;hpb=87eb16df886e4afe2d53ddf115de54cf8fe25665;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx index a3f199a..793e05d 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx @@ -52,7 +52,7 @@ using namespace std; // Constructors & Destructors //------------------------------------------------------------------------------------------------------------ -wxContourMainFrame* wxContourMainFrame:: instance = NULL; +wxContourMainFrame* wxContourMainFrame::instance=NULL; char wxContourMainFrame::COPY = 'C'; wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) @@ -94,7 +94,6 @@ char wxContourMainFrame::COPY = 'C'; _viewThresholdImage = NULL; _viewThresholdImagePanel = NULL; _viewColorLayerImagePanel = NULL; - _frameShowResultImages = NULL; } @@ -140,10 +139,10 @@ void wxContourMainFrame::setVectImages(std::vector imgs) #elif defined(__GNUC__) std::string str_home(getenv("HOME")); #endif - std::string strCreaContourDataTmp = str_home + "/.creaContourDataTemp/"; - std::vector conceptNameVect; - std::vector conceptSizeVect; - notebook = this->createNotebook(); + std::string strCreaContourDataTmp = str_home + "/.creaContourDataTemp/"; + std::vector conceptNameVect; + std::vector conceptSizeVect; + notebook = this->createNotebook(); kernelManager = new KernelManagerContour( imgs , _datadir+"/data/" , strCreaContourDataTmp ); _instantPanel = new wxInstantChooserPanel( notebook, "Instant Chooser", true, false, "c" ); _theViewPanel = new wxContourViewPanel( kernelManager->getSourceImage(), notebook ); @@ -162,28 +161,29 @@ 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 ) { - if(instance == NULL){ - instance = new wxContourMainFrame(parent, id, title, pos, size, images, style,datadir); + if(instance == NULL) + { + instance=new wxContourMainFrame(parent, id, title, pos, size, images, style,datadir); } return instance; } - std::vector wxContourMainFrame ::getVectImages() + std::vector wxContourMainFrame::getVectImages() { return kernelManager->getVectImages(); } - wxContourMainFrame* wxContourMainFrame :: getInstance() + wxContourMainFrame* wxContourMainFrame::getInstance() { return instance; } - void wxContourMainFrame :: resetInstance() + void wxContourMainFrame::resetInstance() { instance->Destroy(); } - wxContourMainFrame :: ~wxContourMainFrame() + wxContourMainFrame::~wxContourMainFrame() { delete _contourextractdata; deleteAllContours(); @@ -212,7 +212,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) // Creational and initialization methods using WxAui //------------------------------------------------------------------------------------------------------------ // - wxAuiNotebook * wxContourMainFrame :: createNotebook() + wxAuiNotebook * wxContourMainFrame::createNotebook() { wxSize client_size = GetClientSize(); wxAuiNotebook* noteBook = new wxAuiNotebook(this, -1, wxPoint(client_size.x, client_size.y), wxSize(430,200), m_notebook_style); @@ -224,7 +224,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) //------------------------------------------------------------------------------------------------------------ // Creational and initialization methods //------------------------------------------------------------------------------------------------------------ - bool wxContourMainFrame :: configurePanels( ) + bool wxContourMainFrame::configurePanels( ) { bool configured = _theViewPanel!=NULL; @@ -394,12 +394,17 @@ void wxContourMainFrame :: onCreateContourBullEye(wxPanel* panel ) } } -void wxContourMainFrame :: createContour( int typeContour ) +void wxContourMainFrame::createContour( int typeContour ) { //Creating the manualContourModel and including in the model manualBaseModel * manModelContour = kernelManager->factoryManualContourModel(typeContour); std::vector instantVector; _instantPanel->getInstant( instantVector ); + + std::vector tempVector; + getInstantVector( tempVector ); + manModelContour->SetLabel2( std::to_string(tempVector[1]) ); + std::string theName = kernelManager->createOutline(manModelContour, instantVector); /*std::vector instantVector; _instantPanel->getInstant( instantVector ); @@ -548,11 +553,17 @@ void wxContourMainFrame :: deleteContour( std::string theKeyName ) //JCP 21 - 11 - 08 } -void wxContourMainFrame::onDeleteContoursActSlice(){ +void wxContourMainFrame::onDeleteContoursActSlice() +{ //JCP 20-10-08 Undo redo implementation saveState(); //JCP 20-10-08 Undo redo implementation - deleteContours( (std::vector)_theViewPanel->getSceneManager()->GetlstContoursNameActualSlice() ); + + std::vector tempVector; + getInstantVector( tempVector ); + deleteContours( getOutlinesName( tempVector[1] ) ); +// deleteContours( (std::vector)_theViewPanel->getSceneManager()->GetlstContoursNameActualSlice() ); + } void wxContourMainFrame::onDeleteAllContours(){ //JCP 20-10-08 Undo redo implementation @@ -725,13 +736,14 @@ void wxContourMainFrame::updateInstantImageData() _instantPanel->getInstant(inst); vtkImageData* img = kernelManager->getImageAtInstant(inst); - if(img!=NULL){ + if(img!=NULL) + { _theViewPanel->changeImage(img); showAxis(false); }else{ int z = _instantPanel->getConceptDataOf("Axe Depth")->getActualValue(); _theViewPanel->setImageSlice(z); - } + } // if img } void wxContourMainFrame::updateInstantAxes() @@ -840,7 +852,7 @@ void wxContourMainFrame :: createMirrorContourOf ( std::string anExistingKName, mp->SetPointX( vecOut[0] ); mp->SetPointY( vecOut[1] ); mp->SetPointZ( vecOut[2] ); - } + } // for i _theViewPanel->getSceneManager()->createCopyContourOf( anExistingKName, cloneName, manualModel , append ); } @@ -851,7 +863,6 @@ void wxContourMainFrame ::loadState(std::string filename) onLoadContours(filename,false); } - void wxContourMainFrame::onLoad() { std::string fileNameContourROI = GetFileLocation(); @@ -868,20 +879,17 @@ void wxContourMainFrame::onLoad() if (dialog.ShowModal() == wxID_OK) { fileNameContourROI = (const char *)(dialog.GetPath().mb_str()); - } - } - + } // if dialog + } // if FileLocation onLoadContours(fileNameContourROI,true); } - void wxContourMainFrame::SetZForAllContours(int pz) { //-- Normal Contours std::vector< std::string > lstNameThings; int i,sizeLstNameThings; - int ii,sizeLstPoints; - + int ii,sizeLstPoints; lstNameThings = kernelManager->GetLstNameThings(); sizeLstNameThings = lstNameThings.size(); for (i=0 ; igetSceneManager()->removeSceneContours(); changeInstant(); } @@ -993,7 +992,8 @@ void wxContourMainFrame::onImport() filename = dialog.GetPath().mb_str(); filenamecontours = kernelManager->parseOsirixFile(filename); - if(filenamecontours.compare("") != 0){ + if(filenamecontours.compare("") != 0) + { onLoadContours(filenamecontours,true); } // if } // if @@ -1008,7 +1008,6 @@ void wxContourMainFrame::onTest() #else wxFileDialog dialog(NULL, _T("Choose a File"), _T(""), _T(""), _T("*.*"), wxFD_OPEN ); #endif - if (dialog.ShowModal() == wxID_OK) { filename = dialog.GetPath().mb_str(); @@ -1016,9 +1015,9 @@ void wxContourMainFrame::onTest() } // if } - //AD: 29-05-09 -void wxContourMainFrame::onSave(){ +void wxContourMainFrame::onSave() +{ //CMRU 03-09-09----------------------------------------------------------------------------------------------- if(GetFileLocation().empty()) { @@ -1035,10 +1034,7 @@ void wxContourMainFrame::onSave(){ kernelManager->setCurrentFileName(fileNameContourROI); saveFileWithContours( fileNameContourROI ); } - } -//CMRU 03-09-09----------------------------------------------------------------------------------------------- - else - { + } else {//CMRU 03-09-09----------------------------------------------------------------------------------------------- std::cout<<"Nombre del archivo: "<CreateSeparatedButtonSizer(wxOK|wxCANCEL); - wxBoxSizer *dialSizer = new wxBoxSizer(wxVERTICAL); +// wxBoxSizer *dialSizer = new wxBoxSizer(wxVERTICAL); + wxFlexGridSizer *dialSizer = new wxFlexGridSizer(1); wxString lstOptOperation[2]; lstOptOperation[0]=_T("By Dimension"); lstOptOperation[1]=_T("By Spacing"); - wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 2 , lstOptOperation, 2, wxRA_SPECIFY_COLS); + wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,90), 2 , lstOptOperation, 2, wxRA_SPECIFY_COLS); dialSizer->Add( new wxStaticText(dial,-1,_T("The image resolution is not compatible with the ")) , 0, wxGROW ); dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?")) , 0, wxGROW ); @@ -1887,21 +1884,21 @@ void wxContourMainFrame::onSegmentationOneSlice(int isovalue,int sampling,int me void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue, int sampling, int method ) { -printf("EED wxContourMainFrame::SegmentationOneSlice Start\n"); + +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 = _theViewPanel->getSceneManager()->GetImageData(); vtkImageData *imagedata = getImageData(); -// double *range = imagedata->GetScalarRange(); -// double thr = 1; vtkImageReslice *imageReslice = vtkImageReslice::New(); //EED -// double spc[3]; -// imagedata->GetSpacing(spc); -// x = x*spc[0]; -// y = y*spc[1]; -// z = z*spc[3]; + double spc[3]; + imagedata->GetSpacing(spc); + x = x*spc[0]; + y = y*spc[1]; + z = z; //EED 2017-01-01 Migration VTK7 #if VTK_MAJOR_VERSION <= 5 @@ -1911,7 +1908,7 @@ printf("EED wxContourMainFrame::SegmentationOneSlice Start\n"); #endif imageReslice->SetInformationInput(imagedata); imageReslice->SetResliceAxesDirectionCosines(1,0,0, 0,1,0 ,0,0,1); - imageReslice->SetResliceAxesOrigin(0,0,z); + imageReslice->SetResliceAxesOrigin(0,0,z*spc[2]); imageReslice->SetOutputDimensionality(2); imageReslice->SetInterpolationModeToLinear(); @@ -1959,7 +1956,15 @@ printf("EED wxContourMainFrame::SegmentationOneSlice Start\n"); cpd->UpdateInformation(); vtkPolyDataConnectivityFilter* conn = vtkPolyDataConnectivityFilter::New( ); - conn->SetExtractionModeToClosestPointRegion( ); + +// conn->SetExtractionModeToPointSeededRegions(); +// conn->SetExtractionModeToCellSeededRegions(); +// conn->SetExtractionModeToSpecifiedRegions(); +// conn->SetExtractionModeToLargestRegion(); +// conn->SetExtractionModeToAllRegions(); + + conn->SetExtractionModeToClosestPointRegion(); + //conn->SetMaxRecursionDepth( 3000 ); //EED 2017-01-01 Migration VTK7 @@ -1984,12 +1989,15 @@ printf("EED wxContourMainFrame::SegmentationOneSlice Start\n"); cpd2->UpdateInformation(); vtkStripper* vtkstripper = vtkStripper::New( ); +vtkstripper->SetJoinContiguousSegments(true); vtkstripper->SetMaximumLength(20000); //EED 2017-01-01 Migration VTK7 #if VTK_MAJOR_VERSION <= 5 vtkstripper->SetInput( cpd2->GetOutput() ); #else vtkstripper->SetInputData( cpd2->GetOutput() ); +// vtkstripper->SetInputData( cntVTK->GetOutput() ); + #endif vtkstripper->Update(); vtkstripper->UpdateInformation(); @@ -2014,24 +2022,19 @@ myfile << "-------------------------------------\n"; polyDataResult->GetLines()->Print(myfile); myfile.close(); */ - - cntVTK -> Delete(); - cpd2 -> Delete(); - cpd -> Delete(); - conn -> Delete(); - + cntVTK -> Delete(); + cpd2 -> Delete(); + cpd -> Delete(); + conn -> Delete(); //--Calculating control points - std::vector vecX; std::vector vecY; std::vector vecZ; - std::vector vecCtrlPointX; std::vector vecCtrlPointY; std::vector vecCtrlPointZ; - printf("EED wxContourMainFrame::SegmentationOneSlice GetNumberOfLines=%d \n",polyDataResult->GetNumberOfLines() ); int numberOfPointsInCell; @@ -2048,84 +2051,90 @@ printf("EED wxContourMainFrame::SegmentationOneSlice PrintSelf \n"); polyDataResult->PrintSelf( std::cout, vtkIndent(0) ); + if (polyDataResult->GetNumberOfCells()>0) + { + double *p; + printf("EED wxContourMainFrame::SegmentationOneSlice A \n"); + vtkCell* vtkcell = polyDataResult->GetCell( 0 ); + printf("EED wxContourMainFrame::SegmentationOneSlice B \n"); + // int ii,size=polyDataResult->GetNumberOfPoints(); + int ii,size=vtkcell->GetNumberOfPoints(); + printf("EED wxContourMainFrame::SegmentationOneSlice C \n"); + int id; + for (ii=0;iiGetLines()->GetData()->GetValue(ii); + // p = polyDataResult->GetPoint(id); + p = vtkcell->GetPoints()->GetPoint(ii); - double *p; - int ii,size=polyDataResult->GetNumberOfPoints(); - int id; - for (ii=1;ii<=size;ii++) - { - id = polyDataResult->GetLines()->GetData()->GetValue(ii); - p = polyDataResult->GetPoint(id); -printf("EED wxContourMainFrame::SegmentationOneSlice (%d) id=%d px=%f py=%f\n",ii,id, p[0],p[1]); -// double x=p[0]; -// double y=p[1]; - vecX.push_back( p[0] ); - vecY.push_back( p[1] ); -//EED 2017-12-16 - vecZ.push_back( -900 ); -// vecZ.push_back( p[2] ); - } - + printf("EED wxContourMainFrame::SegmentationOneSlice (%d) id=%d px=%f py=%f\n",ii,id, p[0],p[1]); + // double x=p[0]; + // double y=p[1]; + vecX.push_back( p[0] ); + vecY.push_back( p[1] ); + //EED 2017-12-16 + vecZ.push_back( -900 ); + // vecZ.push_back( p[2] ); + } - ExtractControlPoints2D *extractcontrolpoints2d = new ExtractControlPoints2D(); - extractcontrolpoints2d->SetContour( &vecX , &vecY , &vecZ ); + ExtractControlPoints2D *extractcontrolpoints2d = new ExtractControlPoints2D(); + extractcontrolpoints2d->SetContour( &vecX , &vecY , &vecZ ); -//PROOFS - /*if (methodRadiobox->GetSelection()==0){ - extractcontrolpoints2d->GetInitialControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); - } - if (methodRadiobox->GetSelection()==1){ - extractcontrolpoints2d->GetControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); - } - if (methodRadiobox->GetSelection()==2){ - extractcontrolpoints2d->SetSamplingControlPoints( sampling ); - extractcontrolpoints2d->GetSamplingControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); - }*/ + //PROOFS + /*if (methodRadiobox->GetSelection()==0){ + extractcontrolpoints2d->GetInitialControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); + } + if (methodRadiobox->GetSelection()==1){ + extractcontrolpoints2d->GetControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); + } + if (methodRadiobox->GetSelection()==2){ + extractcontrolpoints2d->SetSamplingControlPoints( sampling ); + extractcontrolpoints2d->GetSamplingControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); + }*/ - if (method==0) - { - extractcontrolpoints2d->GetInitialControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); - } else if (method==1){ - extractcontrolpoints2d->GetControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); - } else if (method==2){ - extractcontrolpoints2d->SetSamplingControlPoints( sampling ); - extractcontrolpoints2d->GetSamplingControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); - } + if (method==0) + { + extractcontrolpoints2d->GetInitialControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); + } else if (method==1){ + extractcontrolpoints2d->GetControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); + } else if (method==2){ + extractcontrolpoints2d->SetSamplingControlPoints( sampling ); + extractcontrolpoints2d->GetSamplingControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); + } - //--Adding contour to the system - std::vector actualInstantVector; - _instantPanel->getInstant( actualInstantVector ); - actualInstantVector[1]=z; + //--Adding contour to the system + std::vector actualInstantVector; + _instantPanel->getInstant( actualInstantVector ); + actualInstantVector[1]=z; - int j,sizeCtrPt = vecCtrlPointX.size(); - manualBaseModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour ); -printf("EED wxContourMainFrame::SegmentationOneSlice sizeCtrPt=%d %d %d\n" , sizeCtrPt - , ((sizeCtrPt/100)+1)*100 *2 - , manModelContour->GetNumberOfPointsSpline() - ); - manModelContour->SetNumberOfPointsSpline( ((sizeCtrPt/100)+1)*100 *2 ); - if (sizeCtrPt>=3) - { - for (j=0 ; jAddPoint( vecCtrlPointX[j] , vecCtrlPointY[j] , vecCtrlPointZ[j] ); - } // for - std::string theName; - //theName = _modelManager->createOutline( manModelContour, actualInstantVector ); - theName = kernelManager->createOutline( manModelContour, actualInstantVector ); - bool addedModel = theName.compare("") != 0; - if( addedModel ) + int j,sizeCtrPt = vecCtrlPointX.size(); + manualBaseModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour ); + manModelContour->SetNumberOfPointsSpline( ((sizeCtrPt/100)+1)*100 *2 ); + manModelContour->SetLabel2( std::to_string(z) ); + if (sizeCtrPt>=3) { - double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); - //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure - //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. - _theViewPanel->configureViewControlTo(theName, manModelContour, spc, typeofcontour); - //_theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc, typeofcontour ) ; - } // if addedModel - } // if sizeCtrPt -printf("EED wxContourMainFrame::SegmentationOneSlice End\n"); + for (j=0 ; jAddPoint( vecCtrlPointX[j] / spc[0], vecCtrlPointY[j] / spc[1], vecCtrlPointZ[j] ); + } // for + std::string theName; + //theName = _modelManager->createOutline( manModelContour, actualInstantVector ); + theName = kernelManager->createOutline( manModelContour, actualInstantVector ); + bool addedModel = theName.compare("") != 0; + if( addedModel ) + { + double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default + _theViewPanel->getSpacing(spc); + //Adding the manualContourControler to interface objects structure + //Adding the manualViewContour to interface objects structure + //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. + _theViewPanel->configureViewControlTo(theName, manModelContour, spc, typeofcontour); + //_theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc, typeofcontour ) ; + } // if addedModel + } // if sizeCtrPt + } // if NumberOfCells > 0 + +printf("EED wxContourMainFrame::SegmentationOneSlice End\n"); } int wxContourMainFrame::GetImageDataSizeZ() @@ -2145,12 +2154,12 @@ void wxContourMainFrame::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,i //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 x = _theViewPanel->GetX(); + int y = _theViewPanel->GetY(); + int z; + double porcent; + wxString tmpString; + double totalZ = maxZ-minZ+1; for( z=minZ ; z<=maxZ ; z++ ) { porcent = 100.0* (z-minZ)/totalZ; @@ -2389,18 +2398,44 @@ void wxContourMainFrame::onInterpolation(bool interpolate) RefreshInterface(); } +void wxContourMainFrame::onBeforeAfterContour(bool before,bool after) +{ + _theViewPanel->onBeforeAfterContour(before,after); + RefreshInterface(); +} + +void wxContourMainFrame::onJumpSlice(int step, int shift) +{ + std::vector tempVector; + _instantPanel->getInstant( tempVector ); + int ss = abs(step); + int pos = tempVector[1]; + int maxZ = interfMainPanel::getInstance()->GetImageDataSizeZ(); + pos=(pos/ss)*ss+step+shift; + if ((pos>=0) && (possetInstant( tempVector ); + RefreshInterface(); + } // if pos +} + +void wxContourMainFrame::onShowTextContour(bool show) +{ + _theViewPanel->onShowTextContour(show); + RefreshInterface(); +} + void wxContourMainFrame::onChangeInstant(std::string name,int actual) { _instantPanel->setConceptValue( name, actual ); } - void wxContourMainFrame::resetAppend() { kernelManager->resetAppend(); } - void wxContourMainFrame::onSpreadAdd() { std::vector vecX; @@ -2511,6 +2546,7 @@ void wxContourMainFrame::onSpreadGo(int type) void wxContourMainFrame::getInstantVector(std::vector& tempVector) { + _instantPanel->getInstant( tempVector ); } std::vector wxContourMainFrame::getOutlinesName(int slide) @@ -3115,6 +3151,7 @@ void wxContourMainFrame::SaveImageResult(std::string directory,std::string namef valueChInfo->SetInputData(value); #endif valueChInfo->SetSpacingScale(spc); + valueChInfo->Update(); vtkMetaImageWriter *writerValueImage = vtkMetaImageWriter::New( ); //EED 2017-01-01 Migration VTK7 @@ -3145,6 +3182,7 @@ void wxContourMainFrame::SaveImageResult(std::string directory,std::string namef maskChInfo->SetInputData(mask); #endif maskChInfo->SetSpacingScale(spc); + maskChInfo->Update(); vtkMetaImageWriter *writerMaskImage = vtkMetaImageWriter::New( ); //EED 2017-01-01 Migration VTK7 @@ -3201,7 +3239,9 @@ void wxContourMainFrame::onSnakePressed(){ } -void wxContourMainFrame::saveFileWithContoursAutomatique(){ +void wxContourMainFrame::saveFileWithContoursAutomatique() +{ +printf("EED wxContourMainFrame::saveFileWithContoursAutomatique \n"); std::string filename = kernelManager->getCurrentFileName(); if(filename.compare("")!=0){ saveFileWithContours(filename); @@ -3209,7 +3249,8 @@ void wxContourMainFrame::saveFileWithContoursAutomatique(){ onSave(); } } -void wxContourMainFrame::ShowToolsPanel(bool show){ +void wxContourMainFrame::ShowToolsPanel(bool show) +{ _pannew->Show(show); } @@ -3414,6 +3455,9 @@ void wxContourMainFrame::SetFileLocation(std::string newFileLocation) { _fileLocation = newFileLocation; std::cout<<"GETFILELOCATION:"<<_fileLocation<setCurrentFileName(_fileLocation); } //------------------------------------------------------------------------------------------------------------ @@ -3463,7 +3507,6 @@ void wxContourMainFrame::FlipLstOfContours(std::vector lstNameThing sizeLstNameThings = lstNameThings.size(); for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); if (flipDirection==0) { @@ -3491,8 +3534,6 @@ void wxContourMainFrame::FlipLstOfContours(std::vector lstNameThing void wxContourMainFrame::FlipContours(int typeContourFlip, int flipDirection) { - printf("EED wxContourMainFrame::FlipContours( %d , %d ) \n",typeContourFlip, flipDirection ); - saveState(); if (typeContourFlip==0) // @@ -3512,6 +3553,10 @@ void wxContourMainFrame::FlipContours(int typeContourFlip, int flipDirection) RefreshInterface(); } +void wxContourMainFrame::SetXY(int x, int y) +{ + _theViewPanel->SetXY(x,y); +}