[Insight-developers] Vectors: Algorithms Call: 02/16/01
Stephen R. Aylward
aylward@unc.edu
Fri, 16 Feb 2001 21:31:39 -0500
The use of vectors, points, etc (and even matricies) needs to be
organized for the two expected user groups of itk: plug-and-players and
method developers
Right now, to designate an ND vector-ish thing, we have 9 options:
itkArray, itkPoint, itkVector, itkCovariant, itkIndex, itkSize,
itkOffset, vnlVector, vnlFixedVector, vnlMatrix (a 1xN matrix)
- vnlVector has an 8 byte overhead per instance, so most agree that a
different base storage class was needed.
- The multiple types are proposed since transforming a point is done
differently than transforming a vector, normal, or offset.
So, the idea is to make different types available for users to use if
they want, but methods that operate on the base type should also be
available for when the user wants to self-manage or ignore the meaning.
2a) 2-level class hierarchy
itkPoint
itkIndex
itkSize
itkOffset
itkVector
itkCovarientVector
itkPoint contains conversion methods to/from vnlVectors
2b) Transform Methods
itkTransform contains the methods
TransformPoint(itkPoint *)
TransformIndex(itkPoint *)
TransformOffset(itkPoint *)
TransformVector(itkPoint *)
TransformCovarientVector(itkPoint *)
Transform(itkPoint *)
Transform(itkIndex *)
Transform(itkOffset *)
Transform(itkVector *)
transform(itkCovarientVector *)
--
===============================================
Stephen R. Aylward
Assistant Professor of Radiology
Adjunct Assistant Professor of Computer Science
http://www.cs.unc.edu/~aylward
aylward@unc.edu
(919) 966-9695