// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include #include #include "libvideostitch/status.hpp" #include "maskMerger.hpp" namespace VideoStitch { namespace Core { class VoronoiMaskMerger : public MaskMerger { public: VoronoiMaskMerger() : feather(0) {} ~VoronoiMaskMerger() {} Status setup(const PanoDefinition&, GPU::Buffer inputsMask, const ImageMapping& fromIm, const ImageMerger* const to, GPU::Stream) override; virtual Status updateAsync() override; virtual Status setParameters(const std::vector& params) override; private: int feather; // with one parameter from 0 to 100, be able to provide different settings from sharp to smooth // - blending should not change when pano output size changes // - provide way to limit overlap static std::pair transitionParameters(int feather); }; } // namespace Core } // namespace VideoStitch