| 2811 | // Threaded creation to generate array of originating point ids. |
| 2812 | template <typename TInputIdType> |
| 2813 | void PassPointIds(const char* name, vtkIdType numInputPts, vtkIdType numOutputPts, |
| 2814 | TInputIdType* ptMap, vtkPointData* outPD) |
| 2815 | { |
| 2816 | vtkNew<vtkIdTypeArray> origPtIds; |
| 2817 | origPtIds->SetName(name); |
| 2818 | origPtIds->SetNumberOfComponents(1); |
| 2819 | origPtIds->SetNumberOfTuples(numOutputPts); |
| 2820 | outPD->AddArray(origPtIds); |
| 2821 | vtkIdType* origIds = origPtIds->GetPointer(0); |
| 2822 | |
| 2823 | // Now threaded populate the array |
| 2824 | vtkSMPTools::For(0, numInputPts, |
| 2825 | [&origIds, &ptMap](vtkIdType ptId, vtkIdType endPtId) |
| 2826 | { |
| 2827 | for (; ptId < endPtId; ++ptId) |
| 2828 | { |
| 2829 | if (ptMap[ptId] >= 0) |
| 2830 | { |
| 2831 | origIds[ptMap[ptId]] = ptId; |
| 2832 | } |
| 2833 | } |
| 2834 | }); |
| 2835 | } |
| 2836 | |
| 2837 | //------------------------------------------------------------------------------ |
| 2838 | // Threaded compositing of originating cell ids. |
no test coverage detected