Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_spriter_export.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef _KIS_SPRITER_EXPORT_H_
8#define _KIS_SPRITER_EXPORT_H_
9
10#include <QVariant>
11#include <QDomDocument>
12#include <QList>
13
15#include <kis_types.h>
16
18 qreal id {0.0};
19 QString name;
20 QString pathName;
21 QString baseName;
22 QString layerName;
23 qreal width {0.0};
24 qreal height {0.0};
25 qreal x {0.0};
26 qreal y {0.0};
27};
28
29struct Folder {
30 qreal id {0.0};
31 QString name;
32 QString pathName;
33 QString baseName;
34 QString groupName;
36};
37
38struct Bone {
39 qreal id {0.0};
40 const Bone *parentBone {nullptr};
41 QString name;
42 qreal x {0.0};
43 qreal y {0.0};
44 qreal width {0.0};
45 qreal height {0.0};
46 qreal localX {0.0};
47 qreal localY {0.0};
48 qreal localAngle {0.0};
49 qreal localScaleX {0.0};
50 qreal localScaleY {0.0};
51 qreal fixLocalX {0.0};
52 qreal fixLocalY {0.0};
53 qreal fixLocalAngle {0.0};
54 qreal fixLocalScaleX {0.0};
55 qreal fixLocalScaleY {0.0};
57
59 qDeleteAll(bones);
60 bones.clear();
61 }
62};
63
65 QString name;
67};
68
70 qreal id {0.0};
71 qreal folderId {0.0};
72 qreal fileId {0.0};
73 Bone *bone {nullptr};
74 SpriterSlot *slot {nullptr};
75 qreal x {0.0};
76 qreal y {0.0};
77 qreal localX {0.0};
78 qreal localY {0.0};
79 qreal localAngle {0.0};
80 qreal localScaleX {0.0};
81 qreal localScaleY {0.0};
82 qreal fixLocalX {0.0};
83 qreal fixLocalY {0.0};
84 qreal fixLocalAngle {0.0};
85 qreal fixLocalScaleX {0.0};
86 qreal fixLocalScaleY {0.0};
87
89 delete slot;
90 }
91};
92
94{
95 Q_OBJECT
96public:
97 KisSpriterExport(QObject *parent, const QVariantList &);
98 ~KisSpriterExport() override;
99 bool supportsIO() const override { return false; }
100 KisImportExportErrorCode convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration = 0) override;
101 void initializeCapabilities() override;
102private:
103
104 KisImportExportErrorCode savePaintDevice(KisPaintDeviceSP dev, const QString &fileName);
105 KisImportExportErrorCode parseFolder(KisGroupLayerSP parentGroup, const QString &folderName, const QString &basePath, int *folderId = 0);
106 Bone *parseBone(const Bone *parent, KisGroupLayerSP groupLayer);
107 void fixBone(Bone *bone);
108 void fillScml(QDomDocument &scml, const QString &entityName);
109 void writeBoneRef(const Bone *bone, QDomElement &mainline, QDomDocument &scml);
110 void writeBone(const Bone *bone, QDomElement &timeline, QDomDocument &scml);
111
113 qreal m_timelineid {0.0};
115 Bone *m_rootBone {nullptr};
117 KisGroupLayerSP m_rootLayer; // Not the image's root later, but the one that is named "root"
119
120};
121
122#endif
The base class for import and export filters.
KisImportExportErrorCode parseFolder(KisGroupLayerSP parentGroup, const QString &folderName, const QString &basePath, int *folderId=0)
Bone * parseBone(const Bone *parent, KisGroupLayerSP groupLayer)
void fixBone(Bone *bone)
KisGroupLayerSP m_rootLayer
KisImportExportErrorCode convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration=0) override
QList< SpriterObject > m_objects
bool supportsIO() const override
Override and return false for the filters that use a library that cannot handle file handles,...
KisSpriterExport(QObject *parent, const QVariantList &)
void fillScml(QDomDocument &scml, const QString &entityName)
KisImportExportErrorCode savePaintDevice(KisPaintDeviceSP dev, const QString &fileName)
void writeBone(const Bone *bone, QDomElement &timeline, QDomDocument &scml)
void initializeCapabilities() override
void writeBoneRef(const Bone *bone, QDomElement &mainline, QDomDocument &scml)
QList< Folder > m_folders
QString name
qreal localScaleY
const Bone * parentBone
qreal fixLocalScaleX
qreal fixLocalAngle
qreal localAngle
QList< Bone * > bones
qreal fixLocalY
qreal fixLocalX
qreal localScaleX
qreal fixLocalScaleY
QString groupName
QList< SpriterFile > files
QString baseName
QString pathName
SpriterSlot * slot