X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkClosePolyData.cxx;h=06e631622e47d38cd0d7b43053dc2f6bc02acc16;hb=88000c43d09de22761bb0ca9e19995e72dc2ebce;hp=bb2446879b5eb843d376177c9025c20f0508eefb;hpb=94a6229aed777e2270a361e3d1721a14daa50d25;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx index bb24468..06e6316 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClosePolyData.cxx @@ -126,73 +126,58 @@ vtkClosePolyData::~vtkClosePolyData() } #else -/* - int vtkClosePolyData::ProcessRequest( vtkInformation *request, - vtkInformationVector **inputVector, - vtkInformationVector *outputVector) - { -printf("EED Warning ERROR ! vtkClosePolyData::ProcessRequest not implemented VTK7 migration"); - // generate the data - if(request->Has(vtkDemandDrivenPipeline::REQUEST_INFORMATION())) - { - // specify that the output (only one for this filter) will be double - vtkInformation* outInfo = outputVector->GetInformationObject(0); - outInfo->Set(vtkDataObject::SCALAR_TYPE(),VTK_DOUBLE); - return 1; - } - return this->Superclass::ProcessRequest(request,inputVector,outputVector); - } -*/ -int vtkClosePolyData::RequestData( vtkInformation *vtkNotUsed(request), vtkInformationVector **inputVector, vtkInformationVector *outputVector) +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(); - + pd->SetPolys ( stripper->GetOutput()->GetLines() ); //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; }