[Insight-users] Transforms Set/Get Parameters () and alternate methods

Luis Ibanez luis . ibanez at kitware . com
Thu, 14 Aug 2003 09:37:30 -0400


Hi Michael,

The SetParameters() and GetParamters() are mainly intended for the
interaction with the optimizers in the registration framework.

What happens when you set the matrix is that the SetMatrix() method
belongs to the Rigid3DTransform which is the base class of the
QuaternionRigidTransform and the Euler3D transform.

What makes these derived transforms different is the way in which
they encode parameters.  The base class cannot (at this point) update
the parameters of the derived classes.

We should probably add a virtual method like "UpdateParameters()"
in the base class (Rigid3DTransform) and overload this method on
each one of the derived classes.

The Euler3DTransform, for example will have to figure out the angles
equivalent to the currently set matrix. The QuaternionRigidTransform
should also compute the quaternion parameters corresponding to the
current matrix, and so on.


Regards,


   Luis


----------------------
Michael Kuhn wrote:
...

> Another thing about the parameters: If I use SetParameters (METHOD 1) to 
> set the parameters, the "GetParameters() cout" further down in the 
> program shows my parameters. However, if I use SetRotationMatrix (METHOD 
> 2) to set the parameters, the "GetParameters() cout" shows 0 for all 
> parameters. For both methods the rotation looks exactly the same in the 
> visualization. Is this supposed to be like that (that the 
> GetParameters() method only returns the parameters of the transform, if 
> they were set by SetParameters()?
> 
> Thanks,
> 
> Michael
> 
> 
>