- Timestamp:
- Jan 9, 2006, 6:46:03 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_rel9_p0/psModules/src/objects/pmModelGroup.c
r5255 r5958 10 10 #include "models/pmModel_SGAUSS.c" 11 11 12 static pmModelGroup models[] = { 13 {"PS_MODEL_GAUSS", 7, pmModelFunc_GAUSS, pmModelFlux_GAUSS, pmModelRadius_GAUSS, pmModelLimits_GAUSS, pmModelGuess_GAUSS, pmModelFromPSF_GAUSS, pmModelFitStatus_GAUSS}, 14 {"PS_MODEL_PGAUSS", 7, pmModelFunc_PGAUSS, pmModelFlux_PGAUSS, pmModelRadius_PGAUSS, pmModelLimits_PGAUSS, pmModelGuess_PGAUSS, pmModelFromPSF_PGAUSS, pmModelFitStatus_PGAUSS}, 15 {"PS_MODEL_QGAUSS", 8, pmModelFunc_QGAUSS, pmModelFlux_QGAUSS, pmModelRadius_QGAUSS, pmModelLimits_QGAUSS, pmModelGuess_QGAUSS, pmModelFromPSF_QGAUSS, pmModelFitStatus_QGAUSS}, 16 {"PS_MODEL_SGAUSS", 9, pmModelFunc_SGAUSS, pmModelFlux_SGAUSS, pmModelRadius_SGAUSS, pmModelLimits_SGAUSS, pmModelGuess_SGAUSS, pmModelFromPSF_SGAUSS, pmModelFitStatus_SGAUSS}, 17 }; 12 static pmModelGroup defaultModels[] = { 13 {"PS_MODEL_GAUSS", 7, pmModelFunc_GAUSS, pmModelFlux_GAUSS, pmModelRadius_GAUSS, pmModelLimits_GAUSS, pmModelGuess_GAUSS, pmModelFromPSF_GAUSS, pmModelFitStatus_GAUSS}, 14 {"PS_MODEL_PGAUSS", 7, pmModelFunc_PGAUSS, pmModelFlux_PGAUSS, pmModelRadius_PGAUSS, pmModelLimits_PGAUSS, pmModelGuess_PGAUSS, pmModelFromPSF_PGAUSS, pmModelFitStatus_PGAUSS}, 15 {"PS_MODEL_QGAUSS", 8, pmModelFunc_QGAUSS, pmModelFlux_QGAUSS, pmModelRadius_QGAUSS, pmModelLimits_QGAUSS, pmModelGuess_QGAUSS, pmModelFromPSF_QGAUSS, pmModelFitStatus_QGAUSS}, 16 {"PS_MODEL_SGAUSS", 9, pmModelFunc_SGAUSS, pmModelFlux_SGAUSS, pmModelRadius_SGAUSS, pmModelLimits_SGAUSS, pmModelGuess_SGAUSS, pmModelFromPSF_SGAUSS, pmModelFitStatus_SGAUSS}, 17 }; 18 19 static pmModelGroup *models = NULL; 20 static int Nmodels = 0; 21 22 static void ModelGroupFree (pmModelGroup *modelGroup) 23 { 24 25 if (modelGroup == NULL) 26 return; 27 psFree (modelGroup); 28 return; 29 } 30 31 pmModelGroup *pmModelGroupAlloc (int nModels) 32 { 33 34 pmModelGroup *modelGroup = (pmModelGroup *) psAlloc (nModels * sizeof(pmModelGroup)); 35 psMemSetDeallocator(modelGroup, (psFreeFunc) ModelGroupFree); 36 return (modelGroup); 37 } 38 39 void pmModelGroupAdd (pmModelGroup *model) 40 { 41 42 if (models == NULL) { 43 pmModelGroupInit (); 44 } 45 46 Nmodels ++; 47 models = (pmModelGroup *) psRealloc (models, Nmodels*sizeof(pmModelGroup)); 48 models[Nmodels-1] = model[0]; 49 return; 50 } 51 52 void pmModelGroupInit (void) 53 { 54 55 int Nnew = sizeof (defaultModels) / sizeof (pmModelGroup); 56 57 models = pmModelGroupAlloc (Nnew); 58 for (int i = 0; i < Nnew; i++) { 59 models[i] = defaultModels[i]; 60 } 61 Nmodels = Nnew; 62 return; 63 } 18 64 19 65 pmModelFunc pmModelFunc_GetFunction (pmModelType type) 20 66 { 21 int Nmodels = sizeof (models) / sizeof (pmModelGroup);22 67 if ((type < 0) || (type >= Nmodels)) { 23 68 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 29 74 pmModelFlux pmModelFlux_GetFunction (pmModelType type) 30 75 { 31 int Nmodels = sizeof (models) / sizeof (pmModelGroup);32 76 if ((type < 0) || (type >= Nmodels)) { 33 77 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 39 83 pmModelRadius pmModelRadius_GetFunction (pmModelType type) 40 84 { 41 int Nmodels = sizeof (models) / sizeof (pmModelGroup);42 85 if ((type < 0) || (type >= Nmodels)) { 43 86 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 49 92 pmModelLimits pmModelLimits_GetFunction (pmModelType type) 50 93 { 51 int Nmodels = sizeof (models) / sizeof (pmModelGroup);52 94 if ((type < 0) || (type >= Nmodels)) { 53 95 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 59 101 pmModelGuessFunc pmModelGuessFunc_GetFunction (pmModelType type) 60 102 { 61 int Nmodels = sizeof (models) / sizeof (pmModelGroup);62 103 if ((type < 0) || (type >= Nmodels)) { 63 104 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 69 110 pmModelFitStatusFunc pmModelFitStatusFunc_GetFunction (pmModelType type) 70 111 { 71 int Nmodels = sizeof (models) / sizeof (pmModelGroup);72 112 if ((type < 0) || (type >= Nmodels)) { 73 113 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 79 119 pmModelFromPSFFunc pmModelFromPSFFunc_GetFunction (pmModelType type) 80 120 { 81 int Nmodels = sizeof (models) / sizeof (pmModelGroup);82 121 if ((type < 0) || (type >= Nmodels)) { 83 122 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 89 128 psS32 pmModelParameterCount (pmModelType type) 90 129 { 91 int Nmodels = sizeof (models) / sizeof (pmModelGroup);92 130 if ((type < 0) || (type >= Nmodels)) { 93 131 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); … … 99 137 psS32 pmModelSetType (char *name) 100 138 { 101 102 int Nmodels = sizeof (models) / sizeof (pmModelGroup);103 139 for (int i = 0; i < Nmodels; i++) { 104 140 if (!strcmp(models[i].name, name)) { … … 111 147 char *pmModelGetType (pmModelType type) 112 148 { 113 114 int Nmodels = sizeof (models) / sizeof (pmModelGroup);115 149 if ((type < 0) || (type >= Nmodels)) { 116 150 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType");
Note:
See TracChangeset
for help on using the changeset viewer.
