vimt should only provide a re-implementation of a vil image processing function, if the vimt version modifies the transform. This includes operations like crop, sub-sample. Functions like pixel-scaling operate only on the image part of vimt and so do not need to be in vimt. Decision IMS and TFC.
vimt_image
should be not provide access to image size, etc.So far we cannot find a case where the interrogation of an image's size cannot be deferred until you also know its pixel type, etc. At this point you can dereference the concrete image and ask it for the size.
This has various implications such as a need a separate and small vimt3d library. However, many people who want 2d registered images do not need 3d. (The opposite does not apply Users of 3d images will almost certainly want 2d ones as well.) Decision TFC.
vimt_transform
should provide full support up to projective
only.Linear transforms up to projective have nice properties such as being able to
invert them, etc. If you want support for more general transforms, then you can
derive another type from vimt_image
that uses the old vil1_warp.
Decision IMS and TFC.