File indexing completed on 2024-05-12 15:56:59

0001 /*
0002  *  SPDX-FileCopyrightText: 2020 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "KisBezierMesh.h"
0008 
0009 #include <QDebug>
0010 
0011 #include "kis_dom_utils.h"
0012 
0013 QDebug KisBezierMeshDetails::operator<<(QDebug dbg, const BaseMeshNode &n) {
0014     dbg.nospace() << "Node " << n.node << " "
0015                   << "(lC: " << n.leftControl << " "
0016                   << "tC: " << n.topControl << " "
0017                   << "rC: " << n.rightControl << " "
0018                   << "bC: " << n.bottomControl << ") ";
0019     return dbg.nospace();
0020 }
0021 
0022 
0023 
0024 void KisBezierMeshDetails::saveValue(QDomElement *parent, const QString &tag, const KisBezierMeshDetails::BaseMeshNode &node)
0025 {
0026     QDomDocument doc = parent->ownerDocument();
0027     QDomElement e = doc.createElement(tag);
0028     parent->appendChild(e);
0029 
0030     e.setAttribute("type", "mesh-node");
0031     KisDomUtils::saveValue(&e, "node", node.node);
0032     KisDomUtils::saveValue(&e, "left-control", node.leftControl);
0033     KisDomUtils::saveValue(&e, "right-control", node.rightControl);
0034     KisDomUtils::saveValue(&e, "top-control", node.topControl);
0035     KisDomUtils::saveValue(&e, "bottom-control", node.bottomControl);
0036 }
0037 
0038 bool KisBezierMeshDetails::loadValue(const QDomElement &parent, KisBezierMeshDetails::BaseMeshNode *node)
0039 {
0040     if (!KisDomUtils::Private::checkType(parent, "mesh-node")) return false;
0041 
0042     KisDomUtils::loadValue(parent, "node", &node->node);
0043     KisDomUtils::loadValue(parent, "left-control", &node->leftControl);
0044     KisDomUtils::loadValue(parent, "right-control", &node->rightControl);
0045     KisDomUtils::loadValue(parent, "top-control", &node->topControl);
0046     KisDomUtils::loadValue(parent, "bottom-control", &node->bottomControl);
0047 
0048     return true;
0049 }