51 vtkInformationVector** inputVector,
52 vtkInformationVector* outputVector)
62 const std::vector<GeoLib::Point*>* surfacePoints =
63 (*_surfaces)[0]->getPointVec();
64 std::size_t
const nPoints = surfacePoints->size();
66 vtkSmartPointer<vtkInformation> outInfo =
67 outputVector->GetInformationObject(0);
68 vtkSmartPointer<vtkPolyData> output =
69 vtkPolyData::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));
70 if (outInfo->Get(vtkStreamingDemandDrivenPipeline::UPDATE_PIECE_NUMBER()) >
76 vtkSmartPointer<vtkPoints> newPoints = vtkSmartPointer<vtkPoints>::New();
77 newPoints->SetNumberOfPoints(nPoints);
79 vtkSmartPointer<vtkCellArray> newPolygons =
80 vtkSmartPointer<vtkCellArray>::New();
83 vtkSmartPointer<vtkIntArray> sfcIDs = vtkSmartPointer<vtkIntArray>::New();
84 sfcIDs->SetNumberOfComponents(1);
85 sfcIDs->SetName(
"SurfaceIDs");
87 for (std::size_t i = 0; i < nPoints; ++i)
89 newPoints->SetPoint(i, (*surfacePoints)[i]->data());
95 const std::size_t nTriangles = surface->getNumberOfTriangles();
97 for (std::size_t i = 0; i < nTriangles; ++i)
99 vtkTriangle* new_tri = vtkTriangle::New();
100 new_tri->GetPointIds()->SetNumberOfIds(3);
103 for (std::size_t j = 0; j < 3; ++j)
105 new_tri->GetPointIds()->SetId(j, ((*triangle)[j]));
107 newPolygons->InsertNextCell(new_tri);
108 sfcIDs->InsertNextValue(count);
114 output->SetPoints(newPoints);
115 output->SetPolys(newPolygons);
116 output->GetCellData()->AddArray(sfcIDs);
117 output->GetCellData()->SetActiveAttribute(
"SurfaceIDs",
118 vtkDataSetAttributes::SCALARS);