IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 24, 2004, 4:06:12 PM (22 years ago)
Author:
desonia
Message:

added psImageRadialCut. Untested, but compiles.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/collections/psVector.c

    r1820 r1897  
    1010*  @author Robert DeSonia, MHPCC
    1111*
    12 *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2004-09-16 23:47:43 $
     12*  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2004-09-25 02:06:12 $
    1414*
    1515*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    110110}
    111111
     112psVector* psVectorCopy(psVector* out, const psVector* in, psElemType type)
     113{
     114    if (in == NULL) {
     115        psErrorMsg(PS_ERRORNAME_DOMAIN "psVectorSort",
     116                   PS_ERR_BAD_PARAMETER_NULL, true,
     117                   PS_ERRORTEXT_psVector_SORT_NULL);
     118        psFree(out);
     119        return NULL;
     120    }
     121
     122    int nElements = in->n;
     123
     124    out = psVectorRecycle(out, nElements, type);
     125
     126    #define PSVECTOR_COPY(INTYPE,OUTTYPE) { \
     127        ps##INTYPE *inVec = in->data.INTYPE; \
     128        ps##OUTTYPE *outVec = out->data.OUTTYPE; \
     129        for (int col=0;col<nElements;col++) { \
     130            *(outVec++) = *(inVec++); \
     131        } \
     132    }
     133
     134    #define PSVECTOR_COPY_CASE(OUTTYPE) \
     135case PS_TYPE_##OUTTYPE: { \
     136        switch (in->type.type) { \
     137        case PS_TYPE_S8: \
     138            PSVECTOR_COPY(S8,OUTTYPE); \
     139            break; \
     140        case PS_TYPE_S16: \
     141            PSVECTOR_COPY(S16,OUTTYPE); \
     142            break; \
     143        case PS_TYPE_S32: \
     144            PSVECTOR_COPY(S32,OUTTYPE); \
     145            break; \
     146        case PS_TYPE_S64: \
     147            PSVECTOR_COPY(S64,OUTTYPE); \
     148            break; \
     149        case PS_TYPE_U8: \
     150            PSVECTOR_COPY(U8,OUTTYPE); \
     151            break; \
     152        case PS_TYPE_U16: \
     153            PSVECTOR_COPY(U16,OUTTYPE); \
     154            break; \
     155        case PS_TYPE_U32: \
     156            PSVECTOR_COPY(U32,OUTTYPE); \
     157            break; \
     158        case PS_TYPE_U64: \
     159            PSVECTOR_COPY(U64,OUTTYPE); \
     160            break; \
     161        case PS_TYPE_F32: \
     162            PSVECTOR_COPY(F32,OUTTYPE); \
     163            break; \
     164        case PS_TYPE_F64: \
     165            PSVECTOR_COPY(F64,OUTTYPE); \
     166            break; \
     167        case PS_TYPE_C32: \
     168            PSVECTOR_COPY(C32,OUTTYPE); \
     169            break; \
     170        case PS_TYPE_C64: \
     171            PSVECTOR_COPY(C64,OUTTYPE); \
     172            break; \
     173        default: { \
     174                char* typeStr; \
     175                PS_TYPE_NAME(typeStr,type); \
     176                psErrorMsg(PS_ERRORNAME_DOMAIN "psImageCopy", \
     177                           PS_ERR_BAD_PARAMETER_TYPE, true, \
     178                           PS_ERRORTEXT_psVector_UNSUPPORTED_TYPE, \
     179                           typeStr); \
     180                psFree(out); \
     181            } \
     182        } \
     183        break; \
     184    }
     185
     186    switch (type) {
     187        PSVECTOR_COPY_CASE(S8);
     188        PSVECTOR_COPY_CASE(S16);
     189        PSVECTOR_COPY_CASE(S32);
     190        PSVECTOR_COPY_CASE(S64);
     191        PSVECTOR_COPY_CASE(U8);
     192        PSVECTOR_COPY_CASE(U16);
     193        PSVECTOR_COPY_CASE(U32);
     194        PSVECTOR_COPY_CASE(U64);
     195        PSVECTOR_COPY_CASE(F32);
     196        PSVECTOR_COPY_CASE(F64);
     197        PSVECTOR_COPY_CASE(C32);
     198        PSVECTOR_COPY_CASE(C64);
     199    default: {
     200            char* typeStr;
     201            PS_TYPE_NAME(typeStr,type);
     202            psErrorMsg(PS_ERRORNAME_DOMAIN "psImageCopy",
     203                       PS_ERR_BAD_PARAMETER_TYPE, true,
     204                       PS_ERRORTEXT_psVector_UNSUPPORTED_TYPE,
     205                       typeStr);
     206            psFree(out);
     207
     208            break;
     209        }
     210    }
     211    return out;
     212
     213
     214}
     215
    112216psVector* psVectorSort(psVector* restrict outVector, const psVector* restrict inVector)
    113217{
Note: See TracChangeset for help on using the changeset viewer.