Index: trunk/psModules/src/astrom/pmAstrometryDistortion.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryDistortion.c	(revision 13653)
+++ trunk/psModules/src/astrom/pmAstrometryDistortion.c	(revision 15254)
@@ -7,6 +7,6 @@
 *  @author EAM, IfA
 *
-*  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2007-06-06 00:43:19 $
+*  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2007-10-09 19:27:04 $
 *
 *  Copyright 2006 Institute for Astronomy, University of Hawaii
@@ -62,5 +62,5 @@
 
     psPolynomial2D *local = psPolynomial2DAlloc (PS_POLYNOMIAL_ORD, 1, 1);
-    local->mask[1][1] = 1;
+    local->coeffMask[1][1] = PS_POLY_MASK_SET;
 
     // measure gradient for fractional chip regions
@@ -211,12 +211,10 @@
     for (int i = 0; i <= fpa->toTPA->x->nX; i++) {
         for (int j = 0; j <= fpa->toTPA->x->nY; j++) {
-            if (fpa->toTPA->x->mask[i][j]) {
-                if ((i > 0) && (i <= fpa->toTPA->x->nX)) {
-                    localX->mask[i-1][j] = 1;
-                }
-                if ((j > 0) && (j <= fpa->toTPA->x->nY)) {
-                    localY->mask[i][j-1] = 1;
-                }
-            }
+	    if ((i > 0) && (i <= fpa->toTPA->x->nX)) {
+		localX->coeffMask[i-1][j] = fpa->toTPA->x->coeffMask[i][j];
+	    }
+	    if ((j > 0) && (j <= fpa->toTPA->x->nY)) {
+		localY->coeffMask[i][j-1] = fpa->toTPA->x->coeffMask[i][j];
+	    }
         }
     }
@@ -240,18 +238,21 @@
     fpa->toTPA->x->coeff[0][0] = 0;
     for (int i = 1; i <= fpa->toTPA->x->nX; i++) {
-        if (!fpa->toTPA->x->mask[i][0]) {
-            fpa->toTPA->x->coeff[i][0] = localX->coeff[i-1][0] / i;
-        }
+        if (fpa->toTPA->x->coeffMask[i][0] & PS_POLY_MASK_SET) {
+	    continue;
+	}
+	fpa->toTPA->x->coeff[i][0] = localX->coeff[i-1][0] / i;
     }
     for (int j = 1; j <= fpa->toTPA->x->nY; j++) {
-        if (!fpa->toTPA->x->mask[0][j]) {
-            fpa->toTPA->x->coeff[0][j] = localY->coeff[0][j-1] / j;
-        }
+        if (fpa->toTPA->x->coeffMask[0][j] & PS_POLY_MASK_SET) {
+	    continue;
+	}
+	fpa->toTPA->x->coeff[0][j] = localY->coeff[0][j-1] / j;
     }
     for (int i = 1; i <= fpa->toTPA->x->nX; i++) {
         for (int j = 1; j <= fpa->toTPA->x->nY; j++) {
-            if (!fpa->toTPA->x->mask[i][j]) {
-                fpa->toTPA->x->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
-            }
+            if (fpa->toTPA->x->coeffMask[i][j] & PS_POLY_MASK_SET) {
+		continue;
+	    }
+	    fpa->toTPA->x->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
         }
     }
@@ -268,12 +269,10 @@
     for (int i = 0; i < fpa->toTPA->y->nX; i++) {
         for (int j = 0; j < fpa->toTPA->y->nY; j++) {
-            if (fpa->toTPA->y->mask[i][j]) {
-                if ((i > 0) && (i <= fpa->toTPA->y->nX)) {
-                    localX->mask[i-1][j] = 1;
-                }
-                if ((j > 0) && (j <= fpa->toTPA->y->nY)) {
-                    localY->mask[i][j-1] = 1;
-                }
-            }
+	    if ((i > 0) && (i <= fpa->toTPA->y->nX)) {
+		localX->coeffMask[i-1][j] = fpa->toTPA->y->coeffMask[i][j];
+	    }
+	    if ((j > 0) && (j <= fpa->toTPA->y->nY)) {
+		localY->coeffMask[i][j-1] = fpa->toTPA->y->coeffMask[i][j];
+	    }
         }
     }
@@ -286,18 +285,21 @@
     fpa->toTPA->y->coeff[0][0] = 0;
     for (int i = 1; i <= fpa->toTPA->y->nX; i++) {
-        if (!fpa->toTPA->y->mask[i][0]) {
-            fpa->toTPA->y->coeff[i][0] = localX->coeff[i-1][0] / i;
-        }
+        if (fpa->toTPA->y->coeffMask[i][0] & PS_POLY_MASK_SET) {
+	    continue;
+        }
+	fpa->toTPA->y->coeff[i][0] = localX->coeff[i-1][0] / i;
     }
     for (int j = 1; j <= fpa->toTPA->y->nY; j++) {
-        if (!fpa->toTPA->y->mask[0][j]) {
-            fpa->toTPA->y->coeff[0][j] = localY->coeff[0][j-1] / j;
-        }
+        if (fpa->toTPA->y->coeffMask[0][j] & PS_POLY_MASK_SET) {
+	    continue;
+        }
+	fpa->toTPA->y->coeff[0][j] = localY->coeff[0][j-1] / j;
     }
     for (int i = 1; i <= fpa->toTPA->y->nX; i++) {
         for (int j = 1; j <= fpa->toTPA->y->nY; j++) {
-            if (!fpa->toTPA->y->mask[i][j]) {
-                fpa->toTPA->y->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
+            if (fpa->toTPA->y->coeffMask[i][j] & PS_POLY_MASK_SET) {
+		continue;
             }
+	    fpa->toTPA->y->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
         }
     }
