/* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #if !defined MergePageDescription_h #define MergePageDescription_h #include "Transformation.h" #include #include namespace merge_lib { struct MergePageDescription { //members: double outPageWidth; // output page width double outPageHeight; // output page height unsigned int basePageNumber; std::string baseDocumentName; TransformationDescription basePageTransformation; unsigned int overlayPageNumber; TransformationDescription overlayPageTransformation; bool skipOverlayPage; bool skipBasePage; //methods: //constructor MergePageDescription(double outputPageWidth, double outputPageHeight, unsigned int basePageNum, const char * baseDocName, const TransformationDescription & baseTrans, unsigned int overlayPageNum, const TransformationDescription & overlayTrans, bool omitOverlayPage = false, bool omitBasePage = false ): outPageWidth(outputPageWidth), outPageHeight(outputPageHeight), basePageNumber(basePageNum), baseDocumentName(baseDocName), basePageTransformation(baseTrans), overlayPageNumber(overlayPageNum), overlayPageTransformation(overlayTrans), skipOverlayPage(omitOverlayPage), skipBasePage(omitBasePage) { } MergePageDescription(double outputPageWidth, double outputPageHeight, unsigned int basePageNum, const char * baseDocName, const TransformationDescription & baseTrans ): outPageWidth(outputPageWidth), outPageHeight(outputPageHeight), basePageNumber(basePageNum), baseDocumentName(baseDocName), basePageTransformation(baseTrans), overlayPageNumber(0), overlayPageTransformation(), skipOverlayPage(true), skipBasePage(false) { } MergePageDescription(const MergePageDescription & copy) { *this = copy; } MergePageDescription& operator = (const MergePageDescription ©) { if( this != © ) { baseDocumentName = copy.baseDocumentName; basePageNumber = copy.basePageNumber; skipBasePage = copy.skipBasePage; skipOverlayPage = copy.skipOverlayPage; outPageHeight = copy.outPageHeight; outPageWidth = copy.outPageWidth; basePageTransformation = copy.basePageTransformation; overlayPageNumber = copy.overlayPageNumber; overlayPageTransformation = copy.overlayPageTransformation; } return *this; } ~MergePageDescription() { } }; // array of merge descriptions - allows to merge selected pages typedef std::vector MergeDescription; } #endif