1 /** 2 * @file StitchingExecutor.h 3 * @brief interface of CommandQueue creating for stitching engine 4 * 5 * @author T. Modes 6 */ 7 8 /* This is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public 10 * License as published by the Free Software Foundation; either 11 * version 2 of the License, or (at your option) any later version. 12 * 13 * This software is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public 19 * License along with this software. If not, see 20 * <http://www.gnu.org/licenses/>. 21 * 22 */ 23 24 #ifndef STITCHINGEXECUTOR_H 25 #define STITCHINGEXECUTOR_H 26 27 #include <hugin_shared.h> 28 #include <panodata/Panorama.h> 29 #include <wx/arrstr.h> 30 #include "Executor.h" 31 #include <ostream> 32 33 namespace HuginQueue 34 { 35 /** generates the command queue for stitching a pano 36 it will also generate the necessary exiftool argfiles 37 @param[in] pano panorama structure containing the input project 38 @param[in] ExePath ExePath base path to all used utilities 39 @param[in] project name of the project file, which contains the pano data (should by in sync with pano, to prevent double loading of the data) 40 @param[in] prefix prefix of the output, should only contain the filename part 41 @param[out] statusText contains a short status text, can be printed before the queue is actually executed, useful for bug reports 42 @param[out] outputFiles array of all output files, contains also the temporary files created during stitching (used for detecting of overwritting files) 43 @param[out] tempFilesDelete array with all temporary files which should be deleted at the end 44 @param errStream output stream on which the error should be written 45 @return pointer to CommandQueue 46 */ 47 WXIMPEX CommandQueue* GetStitchingCommandQueue(const HuginBase::Panorama & pano, const wxString& ExePath, const wxString& project, const wxString& prefix, wxString& statusText, wxArrayString& outputFiles, wxArrayString& tempFilesDelete, std::ostream& errStream); 48 /** generates the command queue for stitching a pano, the commands are parsed from the given executor output file 49 @param[in] pano panorama structure containing the input project 50 @param[in] ExePath ExePath base path to all used utilities 51 @param[in] project name of the project file, which contains the pano data (should by in sync with pano, to prevent double loading of the data) 52 @param[in] prefix prefix of the output, should only contain the filename part 53 @param[in] outputSettings read the output sequence from this file 54 @param[out] statusText contains a short status text, can be printed before the queue is actually executed, useful for bug reports 55 @param[out] outputFiles array of all output files, contains also the temporary files created during stitching (used for detecting of overwritting files) 56 @param[out] tempFilesDelete array with all temporary files which should be deleted at the end 57 @param errStream output stream on which the error should be written 58 @return pointer to CommandQueue 59 */ 60 WXIMPEX CommandQueue* GetStitchingCommandQueueUserOutput(const HuginBase::Panorama & pano, const wxString& ExePath, const wxString& project, const wxString& prefix, const wxString& outputSettings, wxString& statusText, wxArrayString& outputFiles, wxArrayString& tempFilesDelete, std::ostream& errStream); 61 /** return a single string of all given files quoted */ 62 WXIMPEX wxString GetQuotedFilenamesString(const wxArrayString& files); 63 64 }; // namespace 65 66 #endif 67