IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 13, 2014, 8:35:36 AM (12 years ago)
Author:
eugene
Message:

remove pmModel class functions from pmModel and replace with a pointer to the class; call model->class->function instead of model->function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/objects/pmModelUtils.c

    r36623 r36859  
    3232#include "pmMoments.h"
    3333#include "pmModelFuncs.h"
     34#include "pmModelClass.h"
    3435#include "pmModel.h"
    3536#include "pmModelUtils.h"
    36 #include "pmModelClass.h"
    3737#include "pmSourceMasks.h"
    3838#include "pmSourceExtendedPars.h"
     
    4646#include "pmErrorCodes.h"
    4747
    48 // XX static bool useModelVar = false;
    49 // XX
    50 // XX void pmModelSetModelVarOption (bool option) {
    51 // XX   useModelVar = option;
    52 // XX }
    53 // XX bool pmModelGetModelVarOption (void) {
    54 // XX   return useModelVar;
    55 // XX }
    56 
    5748/*****************************************************************************
    5849pmModelFromPSF (*modelEXT, *psf):  use the model position parameters to
     
    6859
    6960    // set model parameters for this source based on PSF information
    70     if (!modelEXT->modelFromPSF (modelPSF, modelEXT, psf)) {
     61    if (!modelEXT->class->modelFromPSF (modelPSF, modelEXT, psf)) {
    7162        psTrace ("psModules.objects", 3, "Failed to set model params from PSF");
    7263        psFree(modelPSF);
     
    8980
    9081    // set model parameters for this source based on PSF information
    91     if (!modelPSF->modelParamsFromPSF (modelPSF, psf, Xo, Yo, Io)) {
     82    if (!modelPSF->class->modelParamsFromPSF (modelPSF, psf, Xo, Yo, Io)) {
    9283        psFree(modelPSF);
    9384        return NULL;
     
    109100
    110101    // determine the normalized flux
    111     float normFlux = model->modelFlux (model->params);
     102    float normFlux = model->class->modelFlux (model->params);
    112103    assert (isfinite(normFlux));
    113104    assert (normFlux > 0);
     
    120111
    121112bool pmModelUseReff (pmModelType type) {
    122     bool useReff = false;
    123     useReff |= (type == pmModelClassGetType ("PS_MODEL_SERSIC"));
    124     useReff |= (type == pmModelClassGetType ("PS_MODEL_DEV"));
    125     useReff |= (type == pmModelClassGetType ("PS_MODEL_EXP"));
     113
     114    pmModelClass *class = pmModelClassSelect (type);
     115    psAssert (class, "undefined model class?");
     116    bool useReff = class->useReff;
    126117    return useReff;
    127118}
Note: See TracChangeset for help on using the changeset viewer.