Index: trunk/psModules/src/imcombine/pmSubtraction.h
===================================================================
--- trunk/psModules/src/imcombine/pmSubtraction.h	(revision 13340)
+++ trunk/psModules/src/imcombine/pmSubtraction.h	(revision 13735)
@@ -6,6 +6,6 @@
  * @author GLG, MHPCC
  *
- * @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-05-11 02:21:01 $
+ * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2007-06-09 01:04:02 $
  * Copyright 2004-207 Institute for Astronomy, University of Hawaii
  */
@@ -19,4 +19,22 @@
 /// @addtogroup imcombine Image Combinations
 /// @{
+
+typedef enum {
+    PM_SUBTRACTION_MASK_CLEAR     = 0x00, // No masking
+    PM_SUBTRACTION_MASK_REF       = 0x01, // Reference image is bad
+    PM_SUBTRACTION_MASK_INPUT     = 0x02, // Input image is bad
+    PM_SUBTRACTION_MASK_CONVOLVE  = 0x04, // If convolved, would be bad
+    PM_SUBTRACTION_MASK_FOOTPRINT = 0x08, // Bad pixel within the stamp footprint
+    PM_SUBTRACTION_MASK_BORDER    = 0x10, // Image border
+    PM_SUBTRACTION_MASK_REJ       = 0x20, // Previously tried as a stamp, and rejected
+} pmSubtractionMasks;
+
+/// Generate a mask for use in the subtraction process
+psImage *pmSubtractionMask(const psImage *inMask, ///< Mask for the input image
+                           const psImage *refMask, ///< Mask for the reference image (will be convolved)
+                           psMaskType maskVal, ///< Value to mask out
+                           int size, ///< Half-size of the kernel (pmSubtractionKernels.size)
+                           int footprint ///< Half-size of the kernel footprint
+    );
 
 /// Calculate the least-squares equation to match the image quality
@@ -38,6 +56,5 @@
                               const psImage *refImage, ///< Reference image
                               psImage *inImage, ///< Input image
-                              psImage *mask, ///< Mask image
-                              psMaskType badStampMaskVal, ///< Value to use in mask for bad stamp
+                              psImage *subMask, ///< Subtraction mask
                               const psVector *solution, ///< Solution vector
                               int footprint, ///< Region to mask if stamp is bad
@@ -58,6 +75,5 @@
                            const psImage *inImage, ///< Input image
                            const psImage *inWeight, ///< Input weight map (or NULL)
-                           const psImage *inMask, ///< Input mask (or NULL)
-                           psMaskType maskVal, ///< Value to mask
+                           const psImage *subMask, ///< Subtraction mask (or NULL)
                            psMaskType blank, ///< Mask value for blank regions
                            const psVector *solution, ///< The solution vector
