Proposals:InverseTransform

From KitwarePublic
Revision as of 17:10, 10 October 2005 by Koshevoy (talk | contribs)
Jump to navigationJump to search

Proposal

A more flexible inverse transform API in needed in order to support numeric inverse transformation for transforms which do not have an analytical inverse.

Existing API

Currently, the inverse transformations are available via the GetInverse method and the deprecated BackTransform API (analogous to the TransformPoint, TransformVector and TransformCovariantVector forward transform API). The GetInverse method is not virtual, even though it is declared in the base class. The GetInverse method expects as its parameter a pointer to the transform object. The GetInverse method fills in the parameters that define the inverse transform.

Existing limitations

Two limitations of the current inverse transform API are apparent.

  • Since the GetInverse method requires that the type of the inverse transform must be the same as the type of the forward transform, the possibility of a numeric inverse transform is automatically precluded.
  • The fact that there is no virtual method for inverse transformations is a big limitation and inconvenience.