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;
}
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();
#if VTK_MAJOR_VERSION <= 5
writer->SetInput( cpd->GetOutput() );
#else
- writer->SetInputData( cpd->GetOutput() );
+ writer->SetInputConnection( cpd->GetOutputPort() );
#endif
filename =prefix;
writer->Write();
writer->Delete();
-
filtro->Delete();
cpd->Delete();
pdcf->Delete();