#include "ImageMatQueue.h" #include "ImageApplyHeaders.h" #include "stdarg.h" ImageMatQueue::ImageMatQueue() { } void ImageMatQueue::addProcess(ImageProcessMode option, ...) { va_list arg_ptr; switch (option) { case AdjustColors: va_start(arg_ptr, option); m_list_proc.push_back(new CImageApplyOutHole(static_cast(va_arg(arg_ptr, double)), static_cast(va_arg(arg_ptr, double)), va_arg(arg_ptr, int))); break; case AutoContrast: break; case AutoCrop: break; case BWBinaray: break; case Channel: break; case CustomCrop: break; case CustomGamma: break; case DetachNoise: break; case DiscardBlank: break; case OutHole: break; case RefuseInflow: break; case Resize: break; case Rotation: break; case Sharpen: break; case Split: break; case TextureRemoval: break; } //va_arg(arg_ptr, int); va_end(arg_ptr); } void ImageMatQueue::applyProcess(std::vector& mats) { for (size_t i = 0, length = m_list_proc.size(); i < length; i++) m_list_proc[i]->apply(mats, true); } void ImageMatQueue::clearProcess() { for (CImageApply*& apply : m_list_proc) delete apply; m_list_proc.clear(); }