// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "../common.hpp" #include "libvideostitch/config.hpp" #include "libvideostitch/logging.hpp" #include "libvideostitch/panoDef.hpp" #include "version.hpp" #include <cassert> #include <fstream> #include <iostream> #include <memory> namespace VideoStitch { namespace Ptv { class Value; } } // namespace VideoStitch namespace VideoStitch { namespace Helper { class VS_GUI_EXPORT PtvMerger { public: /** * Gets the Value obtain by applying a template to currentProject; */ static std::unique_ptr<Ptv::Value> getMergedValue(const std::string ¤tPtv, const std::string &templatePtv); /** * Apply a template to currentPtv, and saves it on outputPtv. By default outputPtv = currentPtv. */ static void saveMergedPtv(const std::string ¤tPtv, const std::string &templatePtv, const std::string &outputPtv); static void mergeValue(Ptv::Value *originalValue, Ptv::Value *templateValue); static void removeFrom(Ptv::Value *originalValue, Ptv::Value *toRemove); }; } // namespace Helper } // namespace VideoStitch