113 return std::visit(overloaded{ |
113 return std::visit(overloaded{ |
114 [](const Colored<SubfileReference>& ref) { |
114 [](const Colored<SubfileReference>& ref) { |
115 QString result; |
115 QString result; |
116 result += QStringLiteral("1 %1 %2 %3") |
116 result += QStringLiteral("1 %1 %2 %3") |
117 .arg(ref.color.index) |
117 .arg(ref.color.index) |
118 .arg(transformToString(ref.transformation)) |
118 .arg(transformToString(ref.element.transformation)) |
119 .arg(ref.name); |
119 .arg(ref.element.name); |
120 return result; |
120 return result; |
121 }, |
121 }, |
122 [](const Colored<LineSegment>& seg) { |
122 [](const Colored<LineSegment>& seg) { |
123 return QStringLiteral("2 %1 %2 %3") |
123 return QStringLiteral("2 %1 %2 %3") |
124 .arg(seg.color.index) |
124 .arg(seg.color.index) |
125 .arg(vertexToString(seg.p1)) |
125 .arg(vertexToString(seg.element.p1)) |
126 .arg(vertexToString(seg.p2)); |
126 .arg(vertexToString(seg.element.p2)); |
127 }, |
127 }, |
128 [](const Colored<Triangle>& triangle) { |
128 [](const Colored<Triangle>& triangle) { |
129 return QStringLiteral("3 %1 %2 %3 %4") |
129 return QStringLiteral("3 %1 %2 %3 %4") |
130 .arg(triangle.color.index) |
130 .arg(triangle.color.index) |
131 .arg(vertexToString(triangle.p1)) |
131 .arg(vertexToString(triangle.element.p1)) |
132 .arg(vertexToString(triangle.p2)) |
132 .arg(vertexToString(triangle.element.p2)) |
133 .arg(vertexToString(triangle.p3)); |
133 .arg(vertexToString(triangle.element.p3)); |
134 }, |
134 }, |
135 [](const Colored<Quadrilateral>& quad) { |
135 [](const Colored<Quadrilateral>& quad) { |
136 return QStringLiteral("4 %1 %2 %3 %4 %5") |
136 return QStringLiteral("4 %1 %2 %3 %4 %5") |
137 .arg(quad.color.index) |
137 .arg(quad.color.index) |
138 .arg(vertexToString(quad.p1)) |
138 .arg(vertexToString(quad.element.p1)) |
139 .arg(vertexToString(quad.p2)) |
139 .arg(vertexToString(quad.element.p2)) |
140 .arg(vertexToString(quad.p3)) |
140 .arg(vertexToString(quad.element.p3)) |
141 .arg(vertexToString(quad.p4)); |
141 .arg(vertexToString(quad.element.p4)); |
142 }, |
142 }, |
143 [](const Colored<ConditionalEdge>& cedge) { |
143 [](const Colored<ConditionalEdge>& cedge) { |
144 return QStringLiteral("5 %1 %2 %3 %4 %5") |
144 return QStringLiteral("5 %1 %2 %3 %4 %5") |
145 .arg(cedge.color.index) |
145 .arg(cedge.color.index) |
146 .arg(vertexToString(cedge.p1)) |
146 .arg(vertexToString(cedge.element.p1)) |
147 .arg(vertexToString(cedge.p2)) |
147 .arg(vertexToString(cedge.element.p2)) |
148 .arg(vertexToString(cedge.c1)) |
148 .arg(vertexToString(cedge.element.c1)) |
149 .arg(vertexToString(cedge.c2)); |
149 .arg(vertexToString(cedge.element.c2)); |
150 }, |
150 }, |
151 [](const Colored<CircularPrimitive>& circ) { |
151 [](const Colored<CircularPrimitive>& circ) { |
152 return QStringLiteral("1 %1 %2 %3") |
152 return QStringLiteral("1 %1 %2 %3") |
153 .arg(circ.color.index) |
153 .arg(circ.color.index) |
154 .arg(transformToString(circ.transformation)) |
154 .arg(transformToString(circ.element.transformation)) |
155 .arg(circularPrimitiveFilePath(circ)); |
155 .arg(circularPrimitiveFilePath(circ.element)); |
156 }, |
156 }, |
157 [](const Comment& comment) { |
157 [](const Comment& comment) { |
158 return "0 " + comment.text; |
158 return "0 " + comment.text; |
159 }, |
159 }, |
160 [](const Empty&) { |
160 [](const Empty&) { |