1 /* 2 3 Pencil2D - Traditional Animation Software 4 Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon 5 Copyright (C) 2012-2020 Matthew Chiawen Chang 6 7 This program is free software; you can redistribute it and/or 8 modify it under the terms of the GNU General Public License 9 as published by the Free Software Foundation; version 2 of the License. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 */ 17 #ifndef LAYERVECTOR_H 18 #define LAYERVECTOR_H 19 20 #include <QImage> 21 #include "layer.h" 22 23 class VectorImage; 24 25 class LayerVector : public Layer 26 { 27 Q_OBJECT 28 29 public: 30 LayerVector(Object* object); 31 ~LayerVector(); 32 33 // method from layerImage 34 void loadImageAtFrame(QString strFileName, int); 35 36 QDomElement createDomElement(QDomDocument& doc) const override; 37 void loadDomElement(const QDomElement& element, QString dataDirPath, ProgressCallback progressStep) override; 38 39 VectorImage* getVectorImageAtFrame(int frameNumber) const; 40 VectorImage* getLastVectorImageAtFrame(int frameNumber, int increment) const; 41 42 bool usesColor(int index); 43 void removeColor(int index); 44 void moveColor(int start, int end); 45 46 protected: 47 Status saveKeyFrameFile(KeyFrame*, QString path) override; 48 KeyFrame* createKeyFrame(int position, Object*) override; 49 50 private: 51 QString fileName(KeyFrame* key) const; 52 bool needSaveFrame(KeyFrame* key, const QString& strSavePath); 53 }; 54 55 #endif 56