Index: trunk/psLib/src/sys/psType.h
===================================================================
--- trunk/psLib/src/sys/psType.h	(revision 20835)
+++ trunk/psLib/src/sys/psType.h	(revision 21183)
@@ -10,6 +10,6 @@
 *  @author Ross Harman, MHPCC
 *
-*  @version $Revision: 1.62 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2007-08-09 03:30:47 $
+*  @version $Revision: 1.63 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2009-01-27 06:39:38 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -141,9 +141,35 @@
 } psDataType;
 
+// macros to abstract the generic mask type : these values must be consistent 
 #define PS_TYPE_MASK PS_TYPE_U8        /**< the psElemType to use for mask image */
 #define PS_TYPE_MASK_DATA U8           /**< the data member to use for mask image */
 #define PS_TYPE_MASK_NAME "psU8"       /**< the data type for mask as a string */
-
+#define PS_MIN_MASK_TYPE 0             /**< minimum valid Mask value */
+#define PS_MAX_MASK_TYPE UINT8_MAX     /**< maximum valid Mask value */
 typedef psU8 psMaskType;               ///< the C datatype for a mask image
+#define PS_NOT_MASK(A)(UINT8_MAX-(A))
+
+// alternate versions if needed
+// #define PS_NOT_MASK(A)(UINT16_MAX-(A))
+// #define PS_NOT_MASK(A)(UINT32_MAX-(A)) 
+// #define PS_NOT_MASK(A)(UINT64_MAX-(A))
+
+// macros to abstract the vector mask type : these values must be consistent 
+#define PS_TYPE_VECTOR_MASK PS_TYPE_U8        /**< the psElemType to use for mask image */
+#define PS_TYPE_VECTOR_MASK_DATA U8           /**< the data member to use for mask image */
+#define PS_TYPE_VECTOR_MASK_NAME "psU8"       /**< the data type for mask as a string */
+#define PS_MIN_VECTOR_MASK_TYPE 0             /**< minimum valid Vector Mask value */
+#define PS_MAX_VECTOR_MASK_TYPE UINT8_MAX     /**< maximum valid Vector Mask value */
+typedef psU8 psVectorMaskType;			  ///< the C datatype for a mask image
+#define PS_NOT_VECTOR_MASK(A)(UINT8_MAX-(A))
+
+// macros to abstract the image mask type : these values must be consistent 
+#define PS_TYPE_IMAGE_MASK PS_TYPE_U16	     /**< the psElemType to use for mask image */
+#define PS_TYPE_IMAGE_MASK_DATA U16	     /**< the data member to use for mask image */
+#define PS_TYPE_IMAGE_MASK_NAME "psU16"	     /**< the data type for mask as a string */
+#define PS_MIN_IMAGE_MASK_TYPE 0             /**< minimum valid Image Mask value */
+#define PS_MAX_IMAGE_MASK_TYPE UINT16_MAX    /**< maximum valid Image Mask value */
+typedef psU16 psImageMaskType;               ///< the C datatype for a mask image
+#define PS_NOT_IMAGE_MASK(A)(UINT16_MAX-(A))
 
 #define PS_MIN_S8        INT8_MIN      /**< minimum valid psS8 value */
