Index: trunk/psLib/src/image/psImageManip.h
===================================================================
--- trunk/psLib/src/image/psImageManip.h	(revision 3737)
+++ trunk/psLib/src/image/psImageManip.h	(revision 3880)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-04-21 21:18:23 $
+ *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-05-11 02:29:39 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -21,4 +21,5 @@
 #include "psCoord.h"
 #include "psStats.h"
+#include "psPixels.h"
 
 /// @addtogroup Image
@@ -183,20 +184,25 @@
 /** Transform the input image according the supplied transformation.
  *
- *  Transform the input image according the supplied transformation. In the
- *  event that the output is NULL, the smallest possible image capable of
- *  containing the entire transformed input image is to be returned; otherwise
- *  only the image size specified in the output image is to be used. If the
- *  inputMask is not NULL, those pixels in the inputMask matching inputMaskVal
+ *  Transform the input image according the supplied transformation. The size
+ *  of the transformed image is deï¬ned by the supplied output image, if
+ *  non-NULL, or the region otherwise (size region.x1 - region.x0 by region.y1
+ *  region.y0, with out->x0 = region.x0 and out->y0 = region.y0). If the
+ *  inputMask is non-NULL, those pixels in the inputMask matching inputMaskVal
  *  are to be ignored in the transformation. The inputMask must be of type
  *  psU8, and of the same size as the input, otherwise the function shall
- *  generate an error and return NULL. The transformation outToIn specifies
- *  the coordinates in the input image of a pixel in the output image - note
- *  that this is the reverse of what might be naively expected, but it is what
- *  is required in order to use psImagePixelInterpolate. If combineMask is not
- *  NULL, then those pixels that match combineMaskVal are not transformed.
- *  combineMask must be of type psU8 and of the same size as the output,
- *  otherwise the function shall generate an error and return NULL. This
- *  function must be capable of handling the following types for the input
- *  (with corresponding types for the output): psF32, psF64.
+ *  generate an error and return NULL. The transformation outToIn speciï¬es the
+ *  coordinates in the input image of a pixel in the output image â note that
+ *  this is the reverse of what might be naively expected, but it is what is
+ *  required in order to use psImagePixelInterpolate. If the pixels array is
+ *  non-NULL, it shall consist of psPixelCoords, and only those pixels in the
+ *  output image shall be transformed; otherwise, the entire image is
+ *  generated. The interpolation is performed using the speciï¬ed interpolation
+ *  mode. Where a pixel in the output image does not correspond to a pixel in
+ *  the input image (or all appropriate pixels in the input image are
+ *  masked), the value shall be set to exposed, and the pixel added to the
+ *  appropriate list of pixels (psPixels) in the array of blankPixels for
+ *  return to the user. This function must be capable of handling the following
+ *  types for the input (with corresponding types for the output): psF32, psF64.
+ 
  *
  *  @return psImage*    The transformed image.
@@ -204,10 +210,13 @@
 psImage* psImageTransform(
     psImage *output,                   ///< psImage to recycle, or NULL
+    psArray** blankPixels,             ///<
     const psImage *input,              ///< psImage to apply transform to
     const psImage *inputMask,          ///< if not NULL, mask of input psImage
     int inputMaskVal,                  ///< masking value for inputMask
     const psPlaneTransform *outToIn,   ///< the transform to apply
-    const psImage *combineMask,        ///< if not NULL, mask of pixels not to be transformed
-    int combineMaskVal                 ///< masking value for combineMask
+    const psRegion region,             ///<
+    const psPixels* pixels,            ///<
+    psImageInterpolateMode mode,       ///<
+    int exposedValue                   ///<
 );
 
