[vtkusers] Internal vtkLandmarkTransform matrix

David Gobbi dgobbi at irus.rri.on.ca
Fri Feb 16 11:56:00 EST 2001


Hi George,

The vtkLandmarkTransform only provides you with a 4x4 matrix, and it
is up to you to decompose that matrix into rotations about the three
axes.  Internally, vtkLandmarkTransform uses a quaternion (not rotations
about the three axes) to represent the 3D orientation.

You can copy the matrix from the vtkLandmarkTransform into a vtkTransform,
and then use GetOrientation() to get the three rotation angles.

-----

Here's something I'd like to throw out to all the other VTK developers:
The 'order of rotations' has always been a nasty issue in 3D geometry,
and it is particularly nasty in VTK because the order of rotations used
is not always documented (!!!).

Perhaps the GetOrienation/SetOrientation methods in VTK should eventually
be replaced with less ambiguous 
  SetOrientationXYZ()
  GetOrientationXYZ()
or whatever the usual order of rotation in VTK actually is.

 - David

On Fri, 16 Feb 2001, George Kamucha wrote:

> Hi all,
> I am using the vtksbIterativeClosestPointTransform to obtain a
> registration transform between two data sets. When I  provide a rotation
> or a translation to one data set in a particular direction (either a
> long X, Y or Z), I am able to analyse the resulting transformations from
> the internal LandmarkTransform matrix, and the program is working
> wonderfully.  But when I use a data set which has to be rotated along
> all the three axis in the registration process, I obtain a matrix which
> I have not been able to resolve in order to obtain the particular
> rotations along the three axis:  X, Y and Z . The translation is
> straight forward but how can I get these other parameters? In essence,
> what is the order of rotation in the vtkLandmarkTransform matrix? Please
> assist.
> 
> Regards
> 
> George





More information about the vtkusers mailing list