Index: trunk/psLib/src/image/psImageManip.h
===================================================================
--- trunk/psLib/src/image/psImageManip.h	(revision 3264)
+++ trunk/psLib/src/image/psImageManip.h	(revision 3476)
@@ -11,6 +11,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-02-17 19:26:24 $
+ *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-03-22 21:52:49 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -20,4 +20,5 @@
 
 #include "psImage.h"
+#include "psCoord.h"
 
 /// @addtogroup Image
@@ -180,3 +181,34 @@
 );
 
+/** 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
+ *  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.
+ *
+ *  @return psImage*    The transformed image.
+ */
+psImage* psImageTransform(
+    psImage *output,                   ///< psImage to recycle, or NULL
+    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
+);
+
 #endif
