IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 11, 2010, 5:08:29 PM (16 years ago)
Author:
eugene
Message:

updates to support psphotStack

Location:
trunk/psModules
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules

  • trunk/psModules/src/objects/Makefile.am

    r27531 r27657  
    2020        pmModelUtils.c \
    2121        pmSource.c \
     22        pmPhotObj.c \
    2223        pmSourceMasks.c \
    2324        pmSourceMoments.c \
     
    8081        pmModelUtils.h \
    8182        pmSource.h \
     83        pmPhotObj.h \
    8284        pmSourceMasks.h \
    8385        pmSourceDiffStats.h \
  • trunk/psModules/src/objects/pmPeaks.h

    r20945 r27657  
    6363    bool assigned;                      ///< is peak assigned to a source?
    6464    pmPeakType type;                    ///< Description of peak.
    65     pmFootprint *footprint;     ///< reference to containing footprint
     65    pmFootprint *footprint;             ///< reference to containing footprint
    6666}
    6767pmPeak;
  • trunk/psModules/src/objects/pmPhotObj.c

    r26893 r27657  
    1717#include <pslib.h>
    1818#include "pmPhotObj.h"
     19#include "pmSource.h"
    1920
    2021static void pmPhotObjFree (pmPhotObj *tmp)
     
    3839}
    3940
     41bool pmPhotObjAddSource(pmPhotObj *object, pmSource *source) {
     42
     43    psAssert (source, "programming error: NULL source");
     44    if (!source->peak) {
     45        psError(PS_ERR_UNKNOWN, true, "source missing peak");
     46        return false;
     47    }
     48    if (!finite(source->peak->xf)) {
     49        psError(PS_ERR_UNKNOWN, true, "NAN peak coordinate");
     50        return false;
     51    }
     52    if (!finite(source->peak->yf)) {
     53        psError(PS_ERR_UNKNOWN, true, "NAN peak coordinate");
     54        return false;
     55    }
     56
     57    // XXX we should probably use the fitted position if it exists
     58    if (!object->sources) {
     59        object->sources = psArrayAllocEmpty(1);
     60        object->x = source->peak->xf;
     61        object->y = source->peak->yf;
     62    }
     63    psArrayAdd (object->sources, 1, source);
     64    return true;
     65}
  • trunk/psModules/src/objects/pmPhotObj.h

    r26893 r27657  
    3434 */
    3535typedef struct {
    36   int seq;                            ///< ID for output (generated on write OR set on read)
    37   psArray *sources;
     36    int id;                            ///< ID for output (generated on write OR set on read)
     37    psArray *sources;
     38    int flags;
     39    float x;
     40    float y;
    3841} pmPhotObj;
     42
     43bool pmPhotObjAddSource(pmPhotObj *object, pmSource *source);
     44pmPhotObj *pmPhotObjAlloc(void);
    3945
    4046/// @}
    4147# endif /* PM_PHOT_OBJ_H */
     48
  • trunk/psModules/src/objects/pmSource.c

    r27531 r27657  
    180180    source->type = in->type;
    181181    source->mode = in->mode;
     182    source->imageID = in->imageID;
    182183
    183184    return(source);
     
    10581059    psF32 fA = (A->peak == NULL) ? 0 : A->peak->y;
    10591060    psF32 fB = (B->peak == NULL) ? 0 : B->peak->y;
     1061
     1062    psF32 diff = fA - fB;
     1063    if (diff > FLT_EPSILON) return (+1);
     1064    if (diff < FLT_EPSILON) return (-1);
     1065    return (0);
     1066}
     1067
     1068// sort by X (ascending)
     1069int pmSourceSortByX (const void **a, const void **b)
     1070{
     1071    pmSource *A = *(pmSource **)a;
     1072    pmSource *B = *(pmSource **)b;
     1073
     1074    psF32 fA = (A->peak == NULL) ? 0 : A->peak->x;
     1075    psF32 fB = (B->peak == NULL) ? 0 : B->peak->x;
    10601076
    10611077    psF32 diff = fA - fB;
  • trunk/psModules/src/objects/pmSource.h

    r27531 r27657  
    4343    PM_SOURCE_TMPF_SIZE_MEASURED     = 0x0004,
    4444    PM_SOURCE_TMPF_SIZE_CR_CANDIDATE = 0x0008,
     45    PM_SOURCE_TMPF_MOMENTS_MEASURED  = 0x0010,
    4546} pmSourceTmpF;
    4647
     
    9091    pmSourceExtendedPars *extpars;      ///< extended source parameters
    9192    pmSourceDiffStats *diffStats;       ///< extra parameters for difference detections
     93    int imageID;
    9294};
    9395
     
    245247int  pmSourceSortBySN (const void **a, const void **b);
    246248int  pmSourceSortByY (const void **a, const void **b);
     249int  pmSourceSortByX (const void **a, const void **b);
    247250int  pmSourceSortBySeq (const void **a, const void **b);
    248251
Note: See TracChangeset for help on using the changeset viewer.