MCPcopy Create free account
hub / github.com/Kitware/VTK / TransformPoints

Method TransformPoints

Common/Transforms/vtkLinearTransform.cxx:228–258  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

226
227//------------------------------------------------------------------------------
228void vtkLinearTransform::TransformPoints(vtkPoints* inPts, vtkPoints* outPts)
229{
230 vtkIdType n = inPts->GetNumberOfPoints();
231 vtkIdType m = outPts->GetNumberOfPoints();
232 double(*matrix)[4] = this->Matrix->Element;
233
234 this->Update();
235
236 // operate directly on the memory to avoid GetPoint()/SetPoint() calls.
237 vtkDataArray* inArray = inPts->GetData();
238 vtkDataArray* outArray = outPts->GetData();
239 outArray->WriteVoidPointer(3 * m, 3 * n);
240
241 vtkLinearTransformPointsWorker worker;
242 if (!vtkArrayDispatch::Dispatch2ByArray<vtkArrayDispatch::AOSPointArrays,
243 vtkArrayDispatch::AOSPointArrays>::Execute(inArray, outArray, worker, m, matrix))
244 {
245 // for anything that isn't float or double
246 vtkSMPTools::For(0, n, vtkSMPTools::THRESHOLD,
247 [&](vtkIdType ptId, vtkIdType endPtId)
248 {
249 double point[3];
250 for (; ptId < endPtId; ++ptId)
251 {
252 inPts->GetPoint(ptId, point);
253 vtkLinearTransformPoint(matrix, point, point);
254 outPts->SetPoint(m + ptId, point);
255 }
256 });
257 }
258}
259
260//------------------------------------------------------------------------------
261void vtkLinearTransform::TransformNormals(vtkDataArray* inNms, vtkDataArray* outNms)

Callers 1

Calls 8

vtkLinearTransformPointFunction · 0.85
ExecuteFunction · 0.50
ForFunction · 0.50
GetNumberOfPointsMethod · 0.45
UpdateMethod · 0.45
GetDataMethod · 0.45
GetPointMethod · 0.45
SetPointMethod · 0.45

Tested by

no test coverage detected