Seamly2D
Code documentation
vpiecepath_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  ** @file vpiecepath_p.h
3  ** @author Douglas S Caskey
4  ** @date Dec 11, 2022
5  **
6  ** @copyright
7  ** Copyright (C) 2017 - 2022 Seamly, LLC
8  ** https://github.com/fashionfreedom/seamly2d
9  **
10  ** @brief
11  ** Seamly2D is free software: you can redistribute it and/or modify
12  ** it under the terms of the GNU General Public License as published by
13  ** the Free Software Foundation, either version 3 of the License, or
14  ** (at your option) any later version.
15  **
16  ** Seamly2D is distributed in the hope that it will be useful,
17  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
18  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  ** GNU General Public License for more details.
20  **
21  ** You should have received a copy of the GNU General Public License
22  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
23  **************************************************************************/
24 
25 /************************************************************************
26  **
27  ** @file
28  ** @author Roman Telezhynskyi <dismine(at)gmail.com>
29  ** @date 22 11, 2016
30  **
31  ** @brief
32  ** @copyright
33  ** This source code is part of the Valentina project, a pattern making
34  ** program, whose allow create and modeling patterns of clothing.
35  ** Copyright (C) 2016 Valentina project
36  ** <https://bitbucket.org/dismine/valentina> All Rights Reserved.
37  **
38  ** Valentina is free software: you can redistribute it and/or modify
39  ** it under the terms of the GNU General Public License as published by
40  ** the Free Software Foundation, either version 3 of the License, or
41  ** (at your option) any later version.
42  **
43  ** Valentina is distributed in the hope that it will be useful,
44  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
45  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
46  ** GNU General Public License for more details.
47  **
48  ** You should have received a copy of the GNU General Public License
49  ** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
50  **
51  *************************************************************************/
52 
53 #ifndef VPIECEPATH_P_H
54 #define VPIECEPATH_P_H
55 
56 #include <QSharedData>
57 #include <QVector>
58 
59 #include "../vmisc/diagnostic.h"
60 #include "vpiecenode.h"
61 
62 QT_WARNING_PUSH
63 QT_WARNING_DISABLE_GCC("-Weffc++")
64 QT_WARNING_DISABLE_GCC("-Wnon-virtual-dtor")
65 
66 class VPiecePathData : public QSharedData
67 {
68 public:
70  : m_nodes()
71  , m_type(PiecePathType::Unknown)
72  , m_name()
73  , m_penType(Qt::SolidLine)
74  , m_cut(false)
75  {}
76 
78  : m_nodes()
79  , m_type(type)
80  , m_name()
81  , m_penType(Qt::SolidLine)
82  , m_cut(false)
83  {}
84 
86  : QSharedData(path)
87  , m_nodes(path.m_nodes)
88  , m_type(path.m_type)
89  , m_penType(path.m_penType)
90  , m_cut(path.m_cut)
91  {}
92 
93  ~VPiecePathData();
94 
97  QString m_name;
98  Qt::PenStyle m_penType;
99  bool m_cut;
100 
101 private:
102  VPiecePathData &operator=(const VPiecePathData &) Q_DECL_EQ_DELETE;
103 };
104 
106 {}
107 
109 
110 #endif // VPIECEPATH_P_H
QVector< VPieceNode > m_nodes
Definition: vpiecepath_p.h:95
QString m_name
Definition: vpiecepath_p.h:97
PiecePathType m_type
Definition: vpiecepath_p.h:96
VPiecePathData & operator=(const VPiecePathData &) Q_DECL_EQ_DELETE
VPiecePathData(PiecePathType type)
Definition: vpiecepath_p.h:77
Qt::PenStyle m_penType
Definition: vpiecepath_p.h:98
VPiecePathData(const VPiecePathData &path)
Definition: vpiecepath_p.h:85
PiecePathType
Definition: def.h:157