IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 22, 2005, 2:04:36 PM (21 years ago)
Author:
drobbin
Message:

Added and update PixelGet/Set, ImageGet/Set, and test fxns

Location:
trunk/psLib/src/mathtypes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/mathtypes/psImage.c

    r5064 r5101  
    99 *  @author Ross Harman, MHPCC
    1010 *
    11  *  @version $Revision: 1.83 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2005-09-16 23:56:51 $
     11 *  @version $Revision: 1.84 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2005-09-23 00:04:36 $
    1313 *
    1414 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    267267}
    268268
     269bool psImageSet(const psImage *image,
     270                int x,
     271                int y,
     272                complex value)
     273{
     274    if (image == NULL)
     275        return false;
     276    if (x >= image->numRows || y >= image->numCols)
     277        return false;
     278    if(x < 0)
     279        x += image->numRows;
     280    if(y < 0)
     281        y += image->numCols;
     282
     283    switch (image->type.type) {
     284    case PS_TYPE_U8:
     285        *(psU8*)&image->data.U8[x][y] = value;
     286        break;
     287    case PS_TYPE_U16:
     288        *(psU16*)&image->data.U16[x][y] = value;
     289        break;
     290    case PS_TYPE_U32:
     291        *(psU32*)&image->data.U32[x][y] = value;
     292        break;
     293    case PS_TYPE_U64:
     294        *(psU64*)&image->data.U64[x][y] = value;
     295        break;
     296    case PS_TYPE_S8:
     297        *(psS8*)&image->data.S8[x][y] = value;
     298        break;
     299    case PS_TYPE_S16:
     300        *(psS16*)&image->data.S16[x][y] = value;
     301        break;
     302    case PS_TYPE_S32:
     303        *(psS32*)&image->data.S32[x][y] = value;
     304        break;
     305    case PS_TYPE_S64:
     306        *(psS64*)&image->data.S64[x][y] = value;
     307        break;
     308    case PS_TYPE_F32:
     309        *(psF32*)&image->data.F32[x][y] = value;
     310        break;
     311    case PS_TYPE_F64:
     312        *(psF64*)&image->data.F64[x][y] = value;
     313        break;
     314    case PS_TYPE_C32:
     315        *(psC32*)&image->data.C32[x][y] = value;
     316        break;
     317    case PS_TYPE_C64:
     318        *(psC64*)&image->data.C64[x][y] = value;
     319        break;
     320    default:
     321        psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Invalid psImage Data Type\n");
     322        return false;
     323    }
     324
     325    return true;
     326}
     327
     328complex psImageGet(const psImage *image,
     329                   int x,
     330                   int y)
     331{
     332    if (image == NULL)
     333        return NAN;
     334    if (x >= image->numRows || y >= image->numCols)
     335        return NAN;
     336    if(x < 0)
     337        x += image->numRows;
     338    if(y < 0)
     339        y += image->numCols;
     340
     341    switch (image->type.type) {
     342    case PS_TYPE_U8:
     343        return image->data.U8[x][y];
     344        break;
     345    case PS_TYPE_U16:
     346        return image->data.U16[x][y];
     347        break;
     348    case PS_TYPE_U32:
     349        return image->data.U32[x][y];
     350        break;
     351    case PS_TYPE_U64:
     352        return image->data.U64[x][y];
     353        break;
     354    case PS_TYPE_S8:
     355        return image->data.S8[x][y];
     356        break;
     357    case PS_TYPE_S16:
     358        return image->data.S16[x][y];
     359        break;
     360    case PS_TYPE_S32:
     361        return image->data.S32[x][y];
     362        break;
     363    case PS_TYPE_S64:
     364        return image->data.S64[x][y];
     365        break;
     366    case PS_TYPE_F32:
     367        return image->data.F32[x][y];
     368        break;
     369    case PS_TYPE_F64:
     370        return image->data.F64[x][y];
     371        break;
     372    case PS_TYPE_C32:
     373        return image->data.C32[x][y];
     374        break;
     375    case PS_TYPE_C64:
     376        return image->data.C64[x][y];
     377        break;
     378    default:
     379        return NAN;
     380    }
     381}
    269382
    270383psImage* psImageRecycle(psImage* old,
  • trunk/psLib/src/mathtypes/psImage.h

    r5070 r5101  
    1111 *  @author Ross Harman, MHPCC
    1212 *
    13  *  @version $Revision: 1.70 $ $Name: not supported by cvs2svn $
    14  *  @date $Date: 2005-09-19 22:50:29 $
     13 *  @version $Revision: 1.71 $ $Name: not supported by cvs2svn $
     14 *  @date $Date: 2005-09-23 00:04:36 $
    1515 *
    1616 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    193193);
    194194
     195/** Sets the value of the image at the specified x,y position to value.
     196 *
     197 *  A negative value for the x or y positions means index from the end.
     198 *
     199 *  @return bool:       True on success, otherwise false.
     200 */
     201bool psImageSet(
     202    const psImage *image,              ///< the image to set
     203    int x,                             ///< x-position
     204    int y,                             ///< y-position
     205    complex value                      ///< specified value to set
     206);
     207
     208/** Returns the value of the image at the specified x,y position.
     209 *
     210 *  A negative value for the x or y positions means index from the end.
     211 *
     212 *  @return complex:        The value at the specified x,y position.
     213 */
     214complex psImageGet(
     215    const psImage *image,              ///< the image from which to get
     216    int x,                             ///< x-position
     217    int y                              ///< y-position
     218);
     219
    195220/** Resize a given image to the given size/type.
    196221 *
  • trunk/psLib/src/mathtypes/psVector.c

    r5089 r5101  
    99*  @author Robert DeSonia, MHPCC
    1010*
    11 *  @version $Revision: 1.54 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2005-09-22 02:32:00 $
     11*  @version $Revision: 1.55 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2005-09-23 00:04:36 $
    1313*
    1414*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    863863    default:
    864864        psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Invalid psVector Data Type\n");
     865        return false;
    865866    }
    866867
Note: See TracChangeset for help on using the changeset viewer.