[IGSTK-Developers] Conclusion on igstkTransform issues - David&Patrick
Patrick Cheng
cheng at isis.georgetown.edu
Thu Mar 2 15:37:17 EST 2006
Hi everybody,
This is the conclusion of the discussion between david and me. Welcome
to comment on it.
=======================================================================
Problem 1. We need both static and dynamic transform. (Registration
and calibration transforms should be static, and tracker transforms
should be dynamic)
Solution: Make subclasses of igstk::Transform,
igstk::DynamicTransform and igstk::StaticTransform StaticTransform
which do not have time stamp. In base class we provide pure virtual
fuction:
bool IsStatic()/IsDynamic();
Q? Do we some times have to switch the transform of a object from
dynamic to static or the other way around?
=======================================================================
Problem 2. We currently don't have a simple transform compose method,
and we are not taking care of time stamps in the current
implementation of the transform multiplication.
e.g.
Ta is static transform, Tb is dynamic, and Tc is dynamic.
When we do T = Ta * Tb * Tc
to get the final valid time stamp for T, we should first ignore Ta,
and pick up the earlier expiration time from Tb and Tc, and minus
current time, to get the valid time period for the T, and set a right
time stamp for it.
Solution: Add a simple function or operator such as:
transform = transform1.compose( transform2 )
equals to:
transform = transform1 * transform2
This will avoid the wrong matrix composition, and make code simpler
and cleaner.
Also this compose() method will calculate the correct time stamp
automatically according to predefine rules.
=======================================================================
David, I hope you still agree on these points.
--
Patrick Cheng
cheng at isis.georgetown.edu
IGSTK - Open Source Software Toolkit for Image Guided Surgery
http://www.igstk.org
http://public.kitware.com/IGSTKWIKI
More information about the IGSTK-Developers
mailing list