Changeset 16842 for trunk/ppMerge/src/ppMergeOptions.c
- Timestamp:
- Mar 6, 2008, 10:49:03 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ppMerge/src/ppMergeOptions.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppMerge/src/ppMergeOptions.c
r15953 r16842 10 10 #include "ppMerge.h" 11 11 #include "ppMergeOptions.h" 12 13 #define ARRAY_BUFFER 4 // Number of values to add at once 12 14 13 15 ////////////////////////////////////////////////////////////////////////////////////////////////////////////// … … 34 36 options->zero = false; 35 37 options->scale = false; 36 options->dark time= false;38 options->dark = false; 37 39 options->fringe = false; 38 40 options->shutter = false; … … 65 67 options->badMask = 0x00; 66 68 options->growPixels = 0; 69 options->darkOrdinates = NULL; 67 70 return options; 68 71 } … … 174 177 options->zero = false; 175 178 options->scale = false; 176 options->dark time= false;179 options->dark = false; 177 180 options->fringe = false; 178 181 options->shutter = false; … … 181 184 options->zero = false; 182 185 options->scale = false; 183 options->dark time= true;186 options->dark = true; 184 187 options->fringe = false; 185 188 options->shutter = false; … … 188 191 options->zero = false; 189 192 options->scale = true; 190 options->dark time= false;193 options->dark = false; 191 194 options->fringe = false; 192 195 options->shutter = false; … … 195 198 options->zero = false; 196 199 options->scale = true; 197 options->dark time= false;200 options->dark = false; 198 201 options->fringe = false; 199 202 options->shutter = false; … … 202 205 options->zero = false; 203 206 options->scale = true; 204 options->dark time= false;207 options->dark = false; 205 208 options->fringe = false; 206 209 options->shutter = false; … … 209 212 options->zero = true; 210 213 options->scale = true; 211 options->dark time= false;214 options->dark = false; 212 215 options->fringe = true; 213 216 options->shutter = false; … … 216 219 options->zero = false; 217 220 options->scale = false; 218 options->dark time= false;221 options->dark = false; 219 222 options->fringe = false; 220 223 options->shutter = true; … … 225 228 options->zero = false; 226 229 options->scale = false; 227 options->dark time= false;230 options->dark = false; 228 231 options->fringe = false; 229 232 options->shutter = false; … … 255 258 256 259 #if 0 257 // Or you can set them individually258 OPTION_PARSE(options->zero, config->arguments, "-zero", Bool);259 OPTION_PARSE(options->scale, config->arguments, "-scale", Bool);260 OPTION_PARSE(options->darktime, config->arguments, "-exptime", Bool);261 #endif262 263 260 // Number of on/off images 264 261 OPTION_PARSE(options->onOff, config->arguments, "-onoff", S32); 262 #endif 265 263 266 264 // Masking options … … 268 266 options->badMask = pmConfigMask("BAD", config); 269 267 268 if (options->dark) { 269 psMetadata *ordinates = psMetadataLookupMetadata(NULL, recipe, "DARK.ORDINATES"); // Ordinates info 270 options->darkOrdinates = psArrayAllocEmpty(psListLength(ordinates->list)); 271 272 psMetadataIterator *iter = psMetadataIteratorAlloc(ordinates, PS_LIST_HEAD, NULL); // Iterator 273 psMetadataItem *item; // Item from iteration 274 while ((item = psMetadataGetAndIncrement(iter))) { 275 int order = 0; // Polynomial order 276 bool scale = false; // Scale values? 277 float min = NAN, max = NAN; // Minimum and maximum values for scaling 278 switch (item->type) { 279 case PS_TYPE_S32: 280 order = item->data.S32; 281 break; 282 case PS_DATA_METADATA: 283 order = psMetadataLookupS32(NULL, item->data.md, "ORDER"); 284 bool mdok; // Status of MD lookup 285 scale = psMetadataLookupBool(&mdok, item->data.md, "SCALE"); 286 min = psMetadataLookupF32(&mdok, item->data.md, "MIN"); 287 max = psMetadataLookupF32(&mdok, item->data.md, "MAX"); 288 break; 289 default: 290 psError(PS_ERR_BAD_PARAMETER_TYPE, true, 291 "Type of DARK.ORDINATES entry %s (%x) is not METADATA or S32", 292 item->name, item->type); 293 psFree(options); 294 return false; 295 } 296 if (order <= 0) { 297 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "ORDER not positive (%d) for DARK.ORDINATES %s", 298 order, item->name); 299 psFree(options); 300 return false; 301 } 302 303 pmDarkOrdinate *ord = pmDarkOrdinateAlloc(item->name, order); 304 ord->scale = scale; 305 ord->min = min; 306 ord->max = max; 307 psArrayAdd(options->darkOrdinates, options->darkOrdinates->n, ord); 308 psFree(ord); 309 } 310 psFree(iter); 311 } 312 270 313 return options; 271 314 }
Note:
See TracChangeset
for help on using the changeset viewer.
