[vtkusers] How to use vtkTransform with vtkImagePlaneWidget
Dean Inglis
dean.inglis at sympatico.ca
Thu Aug 7 08:12:31 EDT 2008
Hi Uril,
If you look at the doxygen documentation for this class,
you will see that you can recover the center and normal of the plane,
GetCenter GetNormal, as well as the three points defining a pair of
orthonormal axes corresponding to its bottom and left side edges:
GetOrigin, GetPoint1, GetPoint2. vtkTransform can be used
to rotate those points around the plane normal,
as long as you know the origin of the image data that it slices through:
vtkImagePlaneWidget widget
widget->GetPoint1(pt1);
widget->GetPoint2(pt2);
widget->GetOrigin(wo);
widget->GetNormal(n);
vtkImageData image
image->GetOrigin(io);
vtkTransform transform
// may have to be transform->PreMultiply() or transform->PostMultiply() here
. I always forget
transform->Translate(io);
transform->RotateWXYZ(angle,n[0], n[1], n[2]);
transform->Translate(-io[0], -io[1], -io[2]);
vtkPoints points
points->InsertNextPoint(pt1);
points->InsertNextPoint(pt2);
points->InsertNextPoint(wo);
vtkPoints newpoints
transform->TransformPoints(points,newpoints);
widget->SetPoint1(newpoints->GetPoint(0));
widget->SetPoint2(newpoints->GetPoint(1));
widget->SetOrigin(newpoints->GetPoint(2));
widget->UpdatePlacement();
Dean
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080807/a70a8694/attachment.htm>
More information about the vtkusers
mailing list