I have these points:<br> vtkSmartPointer<vtkPoints> SourcePoints = vtkSmartPointer<vtkPoints>::New();<br> vtkSmartPointer<vtkPoints> TargetPoints = vtkSmartPointer<vtkPoints>::New();<br> // ... fill points ...<br>
<br>If I use them to make a landmark transform:<br><br> LandmarkTransform->SetSourceLandmarks(SourcePoints);<br> LandmarkTransform->SetTargetLandmarks(TargetPoints);<br> LandmarkTransform->SetModeToRigidBody();<br>
<br>and then transform a polydata with the landmark transform:<br><br> vtkSmartPointer<vtkTransformPolyDataFilter> TransFilter = vtkSmartPointer<vtkTransformPolyDataFilter>::New();<br> TransFilter->SetInput(Model.CreatePolydata());<br>
TransFilter->SetTransform(LandmarkTransform);<br> TransFilter->Update();<br> vtkPolyData* polydata = TransFilter->GetOutput();<br><br>Everything works as expected. However, if I try to transform the points directly:<br>
<br> vtkSmartPointer<vtkPoints> TransformedModelPoints = vtkSmartPointer<vtkPoints>::New();<br> LandmarkTransform->TransformPoints(SourcePoints, TransformedModelPoints);<br><br>everything turns into nan, ie<br>
double origpoint[3];<br> SourcePoints->GetPoint(i, origpoint);<br>the result is [nan, nan, nan]<br><br>I'm sure I'm just using the TransformPoints() function wrong - does anyone know how to do it properly?<br>
<br clear="all">Thanks,<br><br>David<br>