QByteArray RepeaterGenerator::generate(GeneratorStack * const stack) { GeneratorStacker stacker(stack, this); QByteArray generated; for (int i = repeatOffset; i < repeatCount + repeatOffset; ++i) { currentRepeat = i; generated += childGenerator->generate(stack); } return generated; };
/** * \brief Main method for the stacker program */ int main(int argc, char *argv[]) { int c; int longindex; const char *outfilename = NULL; while (EOF != (c = getopt_long(argc, argv, "dh?o:", longopts, &longindex))) { switch (c) { case 'd': debuglevel = LOG_DEBUG; break; case 'o': outfilename = optarg; break; case 'h': case '?': usage(argv[0]); return EXIT_SUCCESS; } } // read all the images ImageSequence images; for (; optind < argc; optind++) { FITSin in(argv[optind]); ImagePtr image = in.read(); images.push_back(image); } debug(LOG_DEBUG, DEBUG_LOG, 0, "found %d images for sequence", images.size()); // now do the stacking astro::image::stacking::Stacker stacker; ImagePtr stackedimage = stacker(images); // write the result image if(NULL != outfilename) { FITSout out(outfilename); out.write(stackedimage); } else { std::cerr << "no output filename, not writing result image" << std::endl; } // that's it return EXIT_SUCCESS; }
QByteArray GroupGenerator::generate(GeneratorStack * const stack) { const int repeatCount = currentCount(stack); GeneratorStacker stacker(stack, this); QByteArray generated; if (repeatCount > 0) generated += prefix->generate(stack); for (int i = 1; i <= repeatCount; ++i) { currentRepeat = i; generated += childGenerator->generate(stack); if (i != repeatCount) generated += separator->generate(stack); } if (repeatCount > 0) generated += postfix->generate(stack); return generated; };