------------------------------------------------------------------------------
| 109 | |
| 110 | //------------------------------------------------------------------------------ |
| 111 | vtkSmartPointer<vtkDoubleArray> CreatePoints( |
| 112 | const std::vector<HitCellInfo>& intersections, vtkPoints* linePoints, double lengthFactor) |
| 113 | { |
| 114 | linePoints->SetNumberOfPoints(intersections.size() * 2); |
| 115 | auto arclengthArray = vtkSmartPointer<vtkDoubleArray>::New(); |
| 116 | arclengthArray->SetName("arc_length"); |
| 117 | arclengthArray->SetNumberOfValues(linePoints->GetNumberOfPoints()); |
| 118 | vtkSMPTools::For(0, intersections.size(), |
| 119 | [&](vtkIdType begin, vtkIdType end) |
| 120 | { |
| 121 | for (vtkIdType i = begin; i < end; ++i) |
| 122 | { |
| 123 | const auto& inter = intersections[i]; |
| 124 | linePoints->SetPoint(i * 2, inter.InPos.data()); |
| 125 | arclengthArray->SetValue(i * 2, inter.InT * lengthFactor); |
| 126 | |
| 127 | linePoints->SetPoint(i * 2 + 1, inter.OutPos.data()); |
| 128 | arclengthArray->SetValue(i * 2 + 1, inter.OutT * lengthFactor); |
| 129 | } |
| 130 | }); |
| 131 | |
| 132 | return arclengthArray; |
| 133 | } |
| 134 | vtkSmartPointer<vtkAbstractArray> AddAttribute( |
| 135 | vtkAbstractArray* attribute, vtkDataSetAttributes* dsAttributes, vtkIdType npts) |
| 136 | { |
no test coverage detected