X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxSTLWidget_03.cxx;h=94735f1d7d0c8f1a6ac6b0ef7bfe3550d6d18857;hb=94a6229aed777e2270a361e3d1721a14daa50d25;hp=7af1e6888d1ac0ca6bef704b6a38a9e85bb18aff;hpb=a9d9fb67805b906ffb5912f56eae5578a7c432ca;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxSTLWidget_03.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxSTLWidget_03.cxx index 7af1e68..94735f1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxSTLWidget_03.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxSTLWidget_03.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #include "vtkObjectFactory.h" @@ -65,10 +90,45 @@ wxSTLWidget_03::wxSTLWidget_03(wxWindow *parent)//, marInterface* mar) : wxPanel( parent, -1) { - _wxMaracasMPR = NULL; + _imagedata=NULL; + cast2=NULL; + cast3=NULL; + cast4=NULL; // binary segmentation result + _thresh=NULL; + _thresh2=NULL; + _cast=NULL; + _connect=NULL; + _connect2=NULL; + _2_mapfinal=NULL; + _2_stripfinal=NULL; + _2_isoMapperMC6=NULL; + _2_isoActorMC6=NULL; + _2_isoMC6=NULL; + _loadSTLMapper=NULL; + _loadActorSTL=NULL; + sl_barrange_segmentation=NULL; + _imageviewer3D=NULL; + _wxMaracasMPR=NULL; + stlInterna=NULL; + stlExterna=NULL; + stlSliderDeltaGauss=NULL; + stlSliderMarchingCubes=NULL; + dsm1=NULL; + actorInternal=NULL; + stlSliderOpacityInternal=NULL; + dsm2=NULL; + actorExternal=NULL; + stlSliderOpacityExternal=NULL; + stlExtractor=NULL; + _sl_opacity_STL_file=NULL; + arteryImageData=NULL; + joiner=NULL; + joinMarchingCubes=NULL; + joinMapper=NULL; + joinActor=NULL; _maxSize = 2000; _minSize = 300; - + _stlMarchingCubesLevel = 128; _stlDeltaGaussLevel = 100; @@ -99,35 +159,49 @@ wxSTLWidget_03::wxSTLWidget_03(wxWindow *parent)//, marInterface* mar) // pnlSplitter -> SplitVertically( viewPanel, new wxPanel(pnlSplitter,-1) , 600 ); this -> SetSizer(sizer); - - // Result 2: Volume + Axis -// _2_prgov = NULL; - _2_mapfinal = NULL; - _2_stripfinal = NULL; - _2_isoMapperMC6 = NULL; - _2_isoActorMC6 = NULL; - _2_isoMC6 = NULL; - - //DHC STL SURFACES - stlInterna = NULL; - stlExterna = NULL; - - _loadSTLMapper = NULL; - _loadActorSTL = NULL; - - //JOIN REGIONS - arteryImageData = NULL; - joinMarchingCubes = NULL; - joinMapper = NULL; - joinActor = NULL; } //------------------------------------------------------------------- wxSTLWidget_03::~wxSTLWidget_03(){ - ResetTree2_JF(); - Reset_vtk_STLFile(); + //ResetTree2_JF(); + //Reset_vtk_STLFile(); + + if(_imagedata!=NULL){ + _imagedata->Delete(); + } + if(cast2){cast2->Delete();} + if(cast3){cast3->Delete();} + if(cast4){cast4->Delete();} + if(_thresh){_thresh->Delete();} + if(_thresh2){_thresh2->Delete();} + if(_cast){_cast->Delete();} + if(_connect){_connect->Delete();} + if(_connect2){_connect2->Delete();} + if(_2_mapfinal){_2_mapfinal->Delete();} + if(_2_stripfinal){_2_stripfinal->Delete();} + if(_2_isoMapperMC6){_2_isoMapperMC6->Delete();} + if(_2_isoActorMC6){_2_isoActorMC6->Delete();} + if(_2_isoMC6){_2_isoMC6->Delete();} + // Load STL file + if(_loadSTLMapper){_loadSTLMapper->Delete();} + if(_loadActorSTL){_loadActorSTL->Delete();} + if(sl_barrange_segmentation){delete sl_barrange_segmentation;} + if(_imageviewer3D){delete _imageviewer3D;} + if(_wxMaracasMPR){delete _wxMaracasMPR;} + if(stlInterna){stlInterna->Delete();} + if(stlExterna){stlExterna->Delete();} + if(dsm1){dsm1->Delete();} + if(actorInternal){actorInternal->Delete();} + if(dsm2){dsm2->Delete();} + if(actorExternal){actorExternal->Delete();} + //if(stlExtractor){stlExtractor->Delete();} + if(arteryImageData){arteryImageData->Delete();} + if(joiner){delete joiner;} + if(joinMarchingCubes){joinMarchingCubes->Delete();} + if(joinMapper){joinMapper->Delete(); } + if(joinActor){joinActor->Delete();} } //------------------------------------------------------------------- wxPanel* wxSTLWidget_03::CreateViewPanel(wxWindow *parent) @@ -153,9 +227,16 @@ wxPanel* wxSTLWidget_03::CreateViewPanel(wxWindow *parent) void wxSTLWidget_03::setImage(vtkImageData* img){ - - _wxMaracasMPR->setMarImage(new marImageData(img), 1); + _wxMaracasMPR->setImageData(img, 1); _wxMaracasMPR->ConfigureVTK(); + + + this->ConfigureProcessing(img,0,0,0); + this->ConfigureSTL(); + + _wxMaracasMPR->Refresh(); + + //this->Refresh(); } //------------------------------------------------------------------- wxWindow* wxSTLWidget_03::CreateSelectAPointPanel(wxWindow *parent) @@ -410,14 +491,11 @@ void wxSTLWidget_03::Refresh() //------------------------------------------------------------------------ -void wxSTLWidget_03::ConfigureProcessing(marImageData *marimagedata, int x, int y, int z) +void wxSTLWidget_03::ConfigureProcessing(vtkImageData *img, int x, int y, int z) { wxBusyCursor wait; - _imagedata=marimagedata->GetImageData(); // image t=0 - _imagedata->UpdateInformation(); - _imagedata->SetUpdateExtent(_imagedata->GetWholeExtent()); - _imagedata->Update(); + _imagedata=img; double puntoactualprov[3]; @@ -463,63 +541,115 @@ void wxSTLWidget_03::ConfigureProcessing(marImageData *marimagedata, int x, int // _zslice->SetRange(extprin[4], extprin[5]); // _zslice->SetValue(extprin[5]/2); - - _thresh = vtkImageThreshold::New(); - _thresh->SetInput(_imagedata); - //_thresh->ReleaseDataFlagOff(); - _thresh->SetInValue(255); - _thresh->SetOutputScalarTypeToUnsignedShort(); - _thresh->SetOutValue(0); - //_thresh->ThresholdBetween(_sl_minSize->GetValue(), _range[1]); - //SIL// - _thresh->ThresholdBetween(sl_barrange_segmentation->GetStart(), sl_barrange_segmentation->GetEnd()); - - vtkImageCast *cast = vtkImageCast::New(); - cast->SetInput(_thresh->GetOutput()); - cast->SetOutputScalarTypeToUnsignedChar(); - cast->Update(); - - - _connect = vtkImageSeedConnectivity::New(); - _connect->SetInput(cast->GetOutput()); - _connect->SetInputConnectValue(255); - _connect->SetOutputConnectedValue(255); - _connect->SetOutputUnconnectedValue(0); + + if(_thresh==NULL){ + _thresh = vtkImageThreshold::New(); + //_thresh->ReleaseDataFlagOff(); + _thresh->SetInValue(255); + _thresh->SetOutputScalarTypeToUnsignedShort(); + _thresh->SetOutValue(0); + //_thresh->ThresholdBetween(_sl_minSize->GetValue(), _range[1]); + //SIL// + _cast = vtkImageCast::New(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _cast->SetInput(_thresh->GetOutput()); +#else + _cast->SetInputData(_thresh->GetOutput()); +#endif + + _cast->SetOutputScalarTypeToUnsignedChar(); + + _connect = vtkImageSeedConnectivity::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _connect->SetInput(_cast->GetOutput()); +#else + _connect->SetInputData(_cast->GetOutput()); +#endif + _connect->SetInputConnectValue(255); + _connect->SetOutputConnectedValue(255); + _connect->SetOutputUnconnectedValue(0); + + cast3 = vtkImageCast::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + cast3->SetInput(_connect->GetOutput()); +#else + cast3->SetInputData(_connect->GetOutput()); +#endif + cast3->SetOutputScalarTypeToUnsignedShort(); + + _thresh2 = vtkImageThreshold::New(); + //_thresh2->ReleaseDataFlagOff(); + _thresh2->SetInValue(255); + _thresh2->SetOutputScalarTypeToUnsignedShort(); + _thresh2->SetOutValue(0); + //SIL//_thresh2->ThresholdBetween(_sl_minSize->GetValue(), _sl_maxSize->GetValue()); + + cast2 = vtkImageCast::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + cast2->SetInput(_thresh2->GetOutput()); +#else + cast2->SetInputData(_thresh2->GetOutput()); +#endif + cast2->SetOutputScalarTypeToUnsignedChar(); + _connect2 = vtkImageSeedConnectivity::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _connect2->SetInput(cast2->GetOutput()); +#else + _connect2->SetInputData(cast2->GetOutput()); +#endif + _connect2->SetInputConnectValue(255); + _connect2->SetOutputConnectedValue(255); + _connect2->SetOutputUnconnectedValue(0); + + cast4 = vtkImageCast::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + cast4->SetInput(_connect2->GetOutput()); +#else + cast4->SetInputData(_connect2->GetOutput()); +#endif + cast4->SetOutputScalarTypeToUnsignedShort(); + } + _thresh->RemoveAllInputs(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _thresh->SetInput(_imagedata); +#else + _thresh->SetInputData(_imagedata); +#endif + _thresh->ThresholdBetween(sl_barrange_segmentation->GetStart(), sl_barrange_segmentation->GetEnd()); + _thresh->Update(); + + _cast->Update(); + + + _connect->RemoveAllSeeds(); _connect->AddSeed((int)(puntoactualprov[0]), (int)(puntoactualprov[1]), (int)(puntoactualprov[2])); -// _connect->Update(); + //_connect->Update(); + //cast3->Update(); +//SIL// + _thresh2->RemoveAllInputs(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _thresh2->SetInput(_imagedata); +#else + _thresh2->SetInputData(_imagedata); +#endif - cast3 = vtkImageCast::New(); - cast3->SetInput(_connect->GetOutput()); - cast3->SetOutputScalarTypeToUnsignedShort(); - cast3->Update(); -//SIL// - - _thresh2 = vtkImageThreshold::New(); - _thresh2->SetInput(_imagedata); - //_thresh2->ReleaseDataFlagOff(); - _thresh2->SetInValue(255); - _thresh2->SetOutputScalarTypeToUnsignedShort(); - _thresh2->SetOutValue(0); - //SIL//_thresh2->ThresholdBetween(_sl_minSize->GetValue(), _sl_maxSize->GetValue()); _thresh2->ThresholdBetween(sl_barrange_segmentation->GetStart(), sl_barrange_segmentation->GetEnd()); - - cast2 = vtkImageCast::New(); - cast2->SetInput(_thresh2->GetOutput()); - cast2->SetOutputScalarTypeToUnsignedChar(); + _thresh2->Update(); cast2->Update(); - - _connect2 = vtkImageSeedConnectivity::New(); - _connect2->SetInput(cast2->GetOutput()); - _connect2->SetInputConnectValue(255); - _connect2->SetOutputConnectedValue(255); - _connect2->SetOutputUnconnectedValue(0); + _connect2->RemoveAllSeeds(); _connect2->AddSeed( (int)(puntoactualprov[0]), (int)(puntoactualprov[1]), (int)(puntoactualprov[2])); - _connect2->Update(); - - cast4 = vtkImageCast::New(); - cast4->SetInput(_connect2->GetOutput()); - cast4->SetOutputScalarTypeToUnsignedShort(); - cast4->Update(); + //_connect2->Update(); + //cast4->Update(); } //------------------------------------------------------------------------ @@ -530,11 +660,11 @@ void wxSTLWidget_03::ConfigureVTK() { wxBusyCursor wait; // vtkImageData *imagedata = _mar->_experiment->getDynData( )->getVolume( )->castVtk(); - marImageData *marimagedata;// = _mar->_experiment->getDynData( )->GetMarImageData(); + //marImageData *marimagedata;// = _mar->_experiment->getDynData( )->GetMarImageData(); //CONFIGURACION ADICIONAL this->ConfigureSTL(); - this->ConfigureProcessing(marimagedata,0,0,0); + //this->ConfigureProcessing(marimagedata,0,0,0); } @@ -543,30 +673,41 @@ void wxSTLWidget_03::ConfigureVTK() void wxSTLWidget_03::ResetTree2_JF() { // Remove - vtkRenderer *ren = _wxMaracasMPR->GetWxvtkmpr3Dview_BB()->GetWxvtk3Dbaseview()->GetRenderer(); - if (_2_isoActorMC6){ - ren->RemoveActor(_2_isoActorMC6); - } - if (_2_stripfinal){ - ren->RemoveActor(_2_stripfinal); + try{ + + + + // Delete + // if (_2_prgov ) { _2_prgov -> Delete(); } + if (_2_mapfinal ) { _2_mapfinal -> Delete(); } + if (_2_stripfinal ) { _2_stripfinal -> Delete(); } + if (_2_isoMapperMC6 ) { _2_isoMapperMC6 -> Delete(); } + if (_2_isoActorMC6 ) { _2_isoActorMC6 -> Delete(); } + if (_2_isoMC6 ) { _2_isoMC6 -> Delete(); } + + // Init + // _2_prgov = NULL; + _2_mapfinal = NULL; + _2_stripfinal = NULL; + _2_isoMapperMC6 = NULL; + _2_isoActorMC6 = NULL; + _2_isoMC6 = NULL; + + + //vtkRenderer *ren = _wxMaracasMPR->GetWxvtkmpr3Dview_BB()->GetWxvtk3Dbaseview()->GetRenderer(); + + /*if (_2_isoActorMC6){ + ren->RemoveActor(_2_isoActorMC6); + } + if (_2_stripfinal){ + ren->RemoveActor(_2_stripfinal); + }*/ + + + }catch(char* e){ + std::cout< Delete(); } - if (_2_mapfinal ) { _2_mapfinal -> Delete(); } - if (_2_stripfinal ) { _2_stripfinal -> Delete(); } - if (_2_isoMapperMC6 ) { _2_isoMapperMC6 -> Delete(); } - if (_2_isoActorMC6 ) { _2_isoActorMC6 -> Delete(); } - if (_2_isoMC6 ) { _2_isoMC6 -> Delete(); } - - // Init -// _2_prgov = NULL; - _2_mapfinal = NULL; - _2_stripfinal = NULL; - _2_isoMapperMC6 = NULL; - _2_isoActorMC6 = NULL; - _2_isoMC6 = NULL; } @@ -590,9 +731,14 @@ void wxSTLWidget_03::ExtractSurface(int x, int y, int z) puntoactualprov[1] = y; puntoactualprov[2] = z; +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _imagedata->UpdateInformation(); _imagedata->SetUpdateExtent(_imagedata->GetWholeExtent()); _imagedata->Update(); +#else + // .. +#endif _imagedata->GetSpacing(espprin); _imagedata->GetExtent(extprin); @@ -630,13 +776,26 @@ void wxSTLWidget_03::ExtractSurface(int x, int y, int z) // Visualisation - result volume _2_isoMC6 = vtkMarchingCubes::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _2_isoMC6->SetInput(cast4->GetOutput()); +#else + _2_isoMC6->SetInputData(cast4->GetOutput()); +#endif _2_isoMC6->SetValue(0, 128); _2_isoMC6->Update(); _2_isoMapperMC6 = vtkPolyDataMapper::New(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _2_isoMapperMC6->SetInput(_2_isoMC6->GetOutput()); +#else + _2_isoMapperMC6->SetInputData(_2_isoMC6->GetOutput()); +#endif + + _2_isoMapperMC6->ScalarVisibilityOff(); _2_isoMapperMC6->ImmediateModeRenderingOn(); @@ -714,7 +873,7 @@ void wxSTLWidget_03::OnRangeSpin ( wxScrollEvent & event ) wxSlider *sl_B=_sl_RangeSizeSpin; int value = lastResizeRef_Value; - int delta = (int)pow( 4 , sl_B->GetValue() ); + int delta = (int)pow((double) 4 , (double)sl_B->GetValue() ); int startResized = value - delta/2; int endResized = value + delta/2; @@ -757,7 +916,12 @@ void wxSTLWidget_03::OnBtnSaveBinaryFile(wxCommandEvent& event) { vtkMetaImageWriter *writer= vtkMetaImageWriter::New(); writer->SetFileName( dialog.GetPath().mb_str(wxConvUTF8) ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 writer->SetInput(cast4->GetOutput()); +#else + writer->SetInputData(cast4->GetOutput()); +#endif writer->Write(); writer->Delete(); } @@ -806,19 +970,23 @@ void wxSTLWidget_03::OnOpacitySTLFile(wxScrollEvent& event) void wxSTLWidget_03::Reset_vtk_STLFile() { // Remove - vtkRenderer *ren = _wxMaracasMPR->GetWxvtkmpr3Dview_BB()->GetWxvtk3Dbaseview()->GetRenderer(); - if (_loadActorSTL){ - ren->RemoveActor(_loadActorSTL); + try{ + vtkRenderer *ren = _wxMaracasMPR->GetWxvtkmpr3Dview_BB()->GetWxvtk3Dbaseview()->GetRenderer(); + if (_loadActorSTL){ + ren->RemoveActor(_loadActorSTL); + } + + // Delete + if (_loadSTLMapper ) { _loadSTLMapper -> Delete(); } + if (_loadActorSTL ) { _loadActorSTL -> Delete(); } + + // Init + _loadSTLMapper = NULL; + _loadActorSTL = NULL; + }catch(char * e){ + std::cout< Delete(); } - if (_loadActorSTL ) { _loadActorSTL -> Delete(); } - - // Init - _loadSTLMapper = NULL; - _loadActorSTL = NULL; - } //------------------------------------------------------------------------ void wxSTLWidget_03::OnBtnSTLFileErase(wxCommandEvent& event) @@ -841,7 +1009,12 @@ void wxSTLWidget_03::OnBtnSTLFileLoad(wxCommandEvent& event) vtkSTLReader *imgReader= vtkSTLReader::New(); imgReader->SetFileName( dialog.GetPath().mb_str(wxConvUTF8) ); _loadSTLMapper = vtkPolyDataMapper::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _loadSTLMapper->SetInput(imgReader->GetOutput()); +#else + _loadSTLMapper->SetInputData(imgReader->GetOutput()); +#endif _loadActorSTL = vtkActor::New(); _loadActorSTL->SetMapper(_loadSTLMapper); _loadActorSTL->GetProperty()->SetColor( 1, 0, 0); @@ -867,31 +1040,49 @@ void wxSTLWidget_03::OnBtnSTLFileLoad(wxCommandEvent& event) void wxSTLWidget_03::ConfigureSTL() { - stlExterna = vtkPolyData::New(); - stlInterna = vtkPolyData::New(); - dsm1 = vtkPolyDataMapper ::New(); - dsm1->SetInput (stlInterna); - dsm1->ScalarVisibilityOff(); + if(stlExterna == NULL){ + stlExterna = vtkPolyData::New(); + stlInterna = vtkPolyData::New(); - actorInternal = vtkActor::New(); - actorInternal->SetMapper (dsm1); - actorInternal->GetProperty()->SetColor (0,1,0); + dsm1 = vtkPolyDataMapper ::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + dsm1->SetInput(stlInterna); +#else + dsm1->SetInputData(stlInterna); +#endif + dsm1->ScalarVisibilityOff(); - dsm2 = vtkPolyDataMapper ::New(); - dsm2->SetInput (stlExterna); - dsm2->ScalarVisibilityOff(); + actorInternal = vtkActor::New(); + actorInternal->SetMapper (dsm1); + actorInternal->GetProperty()->SetColor (0,1,0); - actorExternal= vtkActor::New(); - actorExternal->SetMapper (dsm2); - actorExternal->GetProperty()->SetRepresentationToWireframe(); + dsm2 = vtkPolyDataMapper ::New(); -// vtkRenderer *ren = _maracasSurfaceWidget->GetVtk3DSurfaceWidget()->GetRenderer(); - vtkRenderer *ren = _wxMaracasMPR->GetWxvtkmpr3Dview_BB()->GetWxvtk3Dbaseview()->GetRenderer(); - ren->AddActor(actorInternal); - ren->AddActor(actorExternal); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + dsm2->SetInput(stlExterna); +#else + dsm2->SetInputData(stlExterna); +#endif + + dsm2->ScalarVisibilityOff(); + + actorExternal= vtkActor::New(); + actorExternal->SetMapper (dsm2); + actorExternal->GetProperty()->SetRepresentationToWireframe(); + + // vtkRenderer *ren = _maracasSurfaceWidget->GetVtk3DSurfaceWidget()->GetRenderer(); + vtkRenderer *ren = _wxMaracasMPR->GetWxvtkmpr3Dview_BB()->GetWxvtk3Dbaseview()->GetRenderer(); + ren->AddActor(actorInternal); + ren->AddActor(actorExternal); + + stlExtractor = new vtkSTLExtractor(); - stlExtractor = new vtkSTLExtractor(); + } + + } void wxSTLWidget_03::generateSTLSurfaces() @@ -947,17 +1138,29 @@ void wxSTLWidget_03::OnBtnCreateFileSTL(wxCommandEvent& event) // 1.1. Se hace un filtro triangular puesto que el stl writer solo recibe poligonos triangulares. - vtkTriangleFilter *filtro = vtkTriangleFilter::New(); + vtkClosePolyData *cpd = vtkClosePolyData::New(); + vtkTriangleFilter *filtro = vtkTriangleFilter::New(); + vtkPolyDataConnectivityFilter *pdcf = vtkPolyDataConnectivityFilter::New(); + + // 1.2 se escribe a disco el archivo stl de la superficie interna +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 filtro->SetInput(stlInterna); - vtkPolyDataConnectivityFilter *pdcf = vtkPolyDataConnectivityFilter::New(); pdcf->SetInput( filtro->GetOutput() ); - vtkClosePolyData *cpd = vtkClosePolyData::New(); cpd->SetInput( pdcf->GetOutput() ); - - // 1.2 se escribe a disco el archivo stl de la superficie interna cpd->Update(); +#else + filtro->SetInputData(stlInterna); + pdcf->SetInputData( filtro->GetOutput() ); + cpd->SetInputData( pdcf->GetOutput() ); +#endif vtkSTLWriter *writerI = vtkSTLWriter::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 writerI->SetInput( cpd->GetOutput() ); +#else + writerI->SetInputData( cpd->GetOutput() ); +#endif // prefix = fileprefix; filename=prefix+"_internal.stl"; writerI->SetFileName(filename.c_str()); @@ -966,10 +1169,20 @@ void wxSTLWidget_03::OnBtnCreateFileSTL(wxCommandEvent& event) writerI->Delete(); // 1.3 se escribe a disco el archivo stl de la superficie externa +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 filtro->SetInput(stlExterna); +#else + filtro->SetInputData(stlExterna); +#endif cpd->Update(); vtkSTLWriter *writerE = vtkSTLWriter::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 writerE->SetInput( cpd->GetOutput() ); +#else + writerE->SetInputData( cpd->GetOutput() ); +#endif // prefix = fileprefix; filename=prefix+"_external.stl"; writerE->SetFileName( filename.c_str() );