From: Eduardo DAVILA Date: Sun, 31 Mar 2019 07:58:32 +0000 (+0200) Subject: #3245 creaMaracasVisu Bug New Normal - vtkClosePolyData migration vtk 5 -> 6 Confli... X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=26602dbd774eb346068faea73004618887508484;p=creaMaracasVisu.git #3245 creaMaracasVisu Bug New Normal - vtkClosePolyData migration vtk 5 -> 6 Conflict with pipeline update --- diff --git a/bbtk/src/bbcreaMaracasVisuSetPosition.cxx b/bbtk/src/bbcreaMaracasVisuSetPosition.cxx index a76bc22..d9a57e1 100644 --- a/bbtk/src/bbcreaMaracasVisuSetPosition.cxx +++ b/bbtk/src/bbcreaMaracasVisuSetPosition.cxx @@ -32,6 +32,7 @@ void SetPosition::Process() // bbSetOutputOut( bbGetInputIn() ); // std::cout << "Output value = " <GetVtkBaseData()); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx index 9073c5d..06e6316 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx @@ -130,43 +130,55 @@ vtkClosePolyData::~vtkClosePolyData() int vtkClosePolyData::RequestData( vtkInformation *vtkNotUsed(request), vtkInformationVector **inputVector, vtkInformationVector *outputVector) { // get the info objects - vtkInformation *inInfo = inputVector[0]->GetInformationObject(0); - vtkInformation *outInfo = outputVector->GetInformationObject(0); + vtkInformation *inInfo = inputVector[0]->GetInformationObject(0); + vtkInformation *outInfo = outputVector->GetInformationObject(0); // get the input and output - vtkPolyData *input = vtkPolyData::SafeDownCast( inInfo->Get(vtkDataObject::DATA_OBJECT())); - vtkPolyData *output = vtkPolyData::SafeDownCast( outInfo->Get(vtkDataObject::DATA_OBJECT())); + vtkPolyData *input = vtkPolyData::SafeDownCast( inInfo->Get(vtkDataObject::DATA_OBJECT())); + vtkPolyData *output = vtkPolyData::SafeDownCast( outInfo->Get(vtkDataObject::DATA_OBJECT())); //#closing the polydata see : close.py for details - vtkFeatureEdges *boundary = vtkFeatureEdges::New(); + + vtkFeatureEdges *boundary = vtkFeatureEdges::New(); boundary->SetInputData( input ); boundary->BoundaryEdgesOn (); boundary->FeatureEdgesOff (); boundary->NonManifoldEdgesOff (); boundary->ManifoldEdgesOff (); - //boundary->ColoringOff (); + // boundary->ColoringOff (); + boundary->Update(); + vtkStripper *stripper = vtkStripper::New(); - stripper->SetInputData( boundary->GetOutput() ); + stripper->SetInputConnection( boundary->GetOutputPort() ); stripper->Update(); //important - boundary->Delete(); + vtkPolyData *pd = vtkPolyData::New(); pd->SetPoints ( stripper->GetOutput()->GetPoints() ); pd->SetPolys ( stripper->GetOutput()->GetLines() ); - stripper->Delete(); //vtkGLUTesselatorTriangleFilter *triangle = vtkGLUTesselatorTriangleFilter::New(); + vtkTriangleFilter *triangle = vtkTriangleFilter::New(); triangle->SetInputData( pd ); - pd->Delete(); + triangle->Update( ); + vtkAppendPolyData *append = vtkAppendPolyData::New(); append->AddInputData( input ); - append->AddInputData( triangle->GetOutput() ); - triangle->Delete(); + append->AddInputConnection( triangle->GetOutputPort() ); + append->Update(); + vtkCleanPolyData *clean = vtkCleanPolyData::New(); - clean->SetInputData( append->GetOutput()); - append->Delete(); + clean->SetInputConnection( append->GetOutputPort()); // When all optimizations are complete, this squeeze will be unecessary. // (But it does not seem to cost much.) clean->Update(); //important before ShallowCopy + output->ShallowCopy( clean->GetOutput() ); - clean->Delete(); + + append -> Delete(); + clean -> Delete(); + boundary -> Delete(); + stripper -> Delete(); + pd -> Delete(); + triangle -> Delete(); + return 1; } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DViewCntrlPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DViewCntrlPanel.cxx index bc26bfb..2425948 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DViewCntrlPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DViewCntrlPanel.cxx @@ -545,12 +545,12 @@ void wxVtkClipping3DViewCntrlPanel::OnBtnCreateFileSTL(wxCommandEvent& event) pdcf->SetInput( filtro->GetOutput() ); cpd->SetInput( pdcf->GetOutput() ); #else - filtro->SetInputData( this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetTissueClipper(idTissue)->GetOutput() ); - pdcf->SetInputData( filtro->GetOutput() ); - cpd->SetInputData( pdcf->GetOutput() ); + filtro->SetInputConnection( this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetTissueClipper(idTissue)->GetOutputPort() ); + pdcf->SetInputConnection( filtro->GetOutputPort() ); + cpd->SetInputConnection( pdcf->GetOutputPort() ); #endif - // 1.2 se escribe a disco el archivo stl de la superficie interna + // 1.2 Write the stl file cpd->Update(); vtkSTLWriter *writer = vtkSTLWriter::New(); @@ -558,7 +558,7 @@ void wxVtkClipping3DViewCntrlPanel::OnBtnCreateFileSTL(wxCommandEvent& event) #if VTK_MAJOR_VERSION <= 5 writer->SetInput( cpd->GetOutput() ); #else - writer->SetInputData( cpd->GetOutput() ); + writer->SetInputConnection( cpd->GetOutputPort() ); #endif filename =prefix; @@ -567,7 +567,6 @@ void wxVtkClipping3DViewCntrlPanel::OnBtnCreateFileSTL(wxCommandEvent& event) writer->Write(); writer->Delete(); - filtro->Delete(); cpd->Delete(); pdcf->Delete();