src/linetypes/polygon.cpp

changeset 14
20d2ed3af73d
parent 13
6e838748867b
equal deleted inserted replaced
13:6e838748867b 14:20d2ed3af73d
1 #include "polygon.h"
2
3 linetypes::Triangle::Triangle(
4 const Vertex& point_1,
5 const Vertex& point_2,
6 const Vertex& point_3,
7 Color color_index) :
8 ColoredObject{color_index},
9 points{point_1, point_2, point_3}
10 {
11 }
12
13 linetypes::Triangle::Triangle(const QVector<Vertex>& vertices, const Color color) :
14 ColoredObject{color},
15 points{vertices[0], vertices[1], vertices[2]}
16 {
17 }
18
19 QVariant linetypes::Triangle::getProperty(const Property id) const
20 {
21 switch (id)
22 {
23 case Property::Point1:
24 return points[0];
25 case Property::Point2:
26 return points[1];
27 case Property::Point3:
28 return points[2];
29 default:
30 return ColoredObject::getProperty(id);
31 }
32 }
33
34 auto linetypes::Triangle::setProperty(Property id, const QVariant& value)
35 -> SetPropertyResult
36 {
37 switch (id)
38 {
39 case Property::Point1:
40 points[0] = value.value<Vertex>();
41 return SetPropertyResult::Success;
42 case Property::Point2:
43 points[1] = value.value<Vertex>();
44 return SetPropertyResult::Success;
45 case Property::Point3:
46 points[2] = value.value<Vertex>();
47 return SetPropertyResult::Success;
48 default:
49 return ColoredObject::setProperty(id, value);
50 }
51 }
52
53 QString linetypes::Triangle::textRepresentation() const
54 {
55 return utility::format("%1 %2 %3",
56 vertexToStringParens(points[0]),
57 vertexToStringParens(points[1]),
58 vertexToStringParens(points[2]));
59 }
60
61 linetypes::Quadrilateral::Quadrilateral(
62 const Vertex& point_1,
63 const Vertex& point_2,
64 const Vertex& point_3,
65 const Vertex& point_4,
66 Color color_index) :
67 ColoredObject{color_index},
68 points{point_1, point_2, point_3, point_4}
69 {
70 }
71
72 linetypes::Quadrilateral::Quadrilateral(const QVector<Vertex>& vertices, const Color color) :
73 ColoredObject{color},
74 points{vertices[0], vertices[1], vertices[2], vertices[3]}
75 {
76 }
77
78 QVariant linetypes::Quadrilateral::getProperty(const Property id) const
79 {
80 switch (id)
81 {
82 case Property::Point1:
83 return points[0];
84 case Property::Point2:
85 return points[1];
86 case Property::Point3:
87 return points[2];
88 case Property::Point4:
89 return points[3];
90 default:
91 return ColoredObject::getProperty(id);
92 }
93 }
94
95 auto linetypes::Quadrilateral::setProperty(
96 const Property id,
97 const QVariant& value)
98 -> SetPropertyResult
99 {
100 switch (id)
101 {
102 case Property::Point1:
103 points[0] = value.value<Vertex>();
104 return SetPropertyResult::Success;
105 case Property::Point2:
106 points[1] = value.value<Vertex>();
107 return SetPropertyResult::Success;
108 case Property::Point3:
109 points[2] = value.value<Vertex>();
110 return SetPropertyResult::Success;
111 case Property::Point4:
112 points[3] = value.value<Vertex>();
113 return SetPropertyResult::Success;
114 default:
115 return ColoredObject::setProperty(id, value);
116 }
117 }
118
119 QString linetypes::Quadrilateral::textRepresentation() const
120 {
121 return utility::format("%1 %2 %3 %4",
122 vertexToStringParens(points[0]),
123 vertexToStringParens(points[1]),
124 vertexToStringParens(points[2]),
125 vertexToStringParens(points[3]));
126 }

mercurial