19 #include "itkMatrix.h" 20 #include "itkVector.h" 23 #include <vtkCleanPolyData.h> 24 #include <vtkPolyData.h> 28 this->SetNumberOfIndexedOutputs(1);
39 this->SetNthOutput(0,
nullptr);
40 m_ErrorMessage =
"Error in SurfaceToPointSetFilter: Input is not set correctly.";
46 vtkCleanPolyData *cleaner = vtkCleanPolyData::New();
47 cleaner->PieceInvariantOff();
48 cleaner->ConvertLinesToPointsOff();
49 cleaner->ConvertPolysToLinesOff();
50 cleaner->ConvertStripsToPolysOff();
51 cleaner->PointMergingOn();
52 cleaner->SetInputData(points);
55 vtkPolyData *mergedPoints = cleaner->GetOutput();
58 for (
int i = 0; i < mergedPoints->GetNumberOfPoints(); i++)
61 currentPoint[0] = mergedPoints->GetPoint(i)[0];
62 currentPoint[1] = mergedPoints->GetPoint(i)[1];
63 currentPoint[2] = mergedPoints->GetPoint(i)[2];
64 result->InsertPoint(i, currentPoint);
66 this->SetNthOutput(0, result);
void GenerateData() override
method generating the output of this filter. Called in the updated process of the pipeline...
~SurfaceToPointSetFilter() override
void SetInput(mitk::Surface::Pointer m_InputSurface)
mitk::Surface::Pointer m_InputSurface
SurfaceToPointSetFilter()
std::string GetErrorMessage()
std::string m_ErrorMessage