Index: trunk/psModules/src/pmFlatField.h
===================================================================
--- trunk/psModules/src/pmFlatField.h	(revision 1786)
+++ trunk/psModules/src/pmFlatField.h	(revision 1802)
@@ -1,12 +1,20 @@
 /** @file  pmFlatField.h
  *
- *  @brief Contains the definitions for ...
+ *  @brief Given an input image and a flat-field image, pmFlatField shall divide the input image by the flat-field image.
  *
- *  Detailed Description goes here.
+ *  The input image, in, and the flat-field image, flat, need not be the same size, since the input image may already have
+ *  been trimmed (following overscan subtraction), but the function shall use the offsets in the image (in->x0
+ *  and in->y0) to determine the appropriate offsets to obtain the correct pixel on the flat-field. In the event that the flat
+ *  image is too small (i.e., pixels on the input image refer to pixels outside the range of the flat image), the function shall
+ *  generate an error. Pixels which are negative or zero in the flat shall be masked in the input image with the value PM_MASK_FLAT
+ *  Negative pixels in the flat may be set to zero so that they are treated identically to zeroes. Any pixels masked in the flat
+ *  shall be masked with corresponding values in the output. The function shall not normalize the flat; this responsibility is
+ *  left to the caller. This function is basically equivalent to a divide (with psImageOp), but with care for the region that is
+ *  divided, checking for negative pixels, and copying of the mask from the flat to the output.
  *
- *  @author Robert DeSonia, MHPCC
+ *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-10 23:42:18 $
+ *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-14 02:29:33 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -15,4 +23,12 @@
 #include "pslib.h"
 
-void pmFlatField(psVector* test);
+/** Mask values */
+typedef enum {
+    PM_MASK_TRAP    = 0x0001,   ///< The pixel is a charge trap
+    PM_MASK_BADCOL  = 0x0002,   ///< The pixel is a bad column
+    PM_MASK_SAT     = 0x0004,   ///< The pixel is saturated
+    PM_MASK_FLAT    = 0x0008    ///< The pixel is non-positive in the flat-field
+} pmMaskValue;
 
+psReadout *pmFlatField(psReadout *in, psReadout *inMask, const psReadout *flat, const psReadout *flatMask);
+
