| 1 #include "polygoncache.h" |
1 #include "polygoncache.h" |
| 2 #include "documentmanager.h" |
2 #include "documentmanager.h" |
| 3 #include "invert.h" |
3 #include "invert.h" |
| |
4 #include "circularprimitive.h" |
| 4 |
5 |
| 5 Model* resolve(const QString& name, const ModelId callingModelId, DocumentManager* documents) |
6 Model* resolve(const QString& name, const ModelId callingModelId, DocumentManager* documents) |
| 6 { |
7 { |
| 7 return documents->findDependencyByName(callingModelId, name); |
8 return documents->findDependencyByName(callingModelId, name); |
| 8 } |
9 } |
| 74 polygon.id = id; |
75 polygon.id = id; |
| 75 result.push_back(polygon); |
76 result.push_back(polygon); |
| 76 } |
77 } |
| 77 } |
78 } |
| 78 }, |
79 }, |
| |
80 [&result, id](const Colored<CircularPrimitive>& circ) { |
| |
81 rasterize(circ, [&](const ModelElement& element){ |
| |
82 std::visit<void>(overloaded{ |
| |
83 // TODO: :-( |
| |
84 [&](const Colored<LineSegment>& edge) { |
| |
85 result.push_back({{edge, edge.color}, id}); |
| |
86 }, |
| |
87 [&](const Colored<Triangle>& triangle) { |
| |
88 result.push_back({{triangle, triangle.color}, id}); |
| |
89 }, |
| |
90 [&](const Colored<Quadrilateral>& quad) { |
| |
91 result.push_back({{quad, quad.color}, id}); |
| |
92 }, |
| |
93 [&](const Colored<ConditionalEdge>& cedge) { |
| |
94 result.push_back({{cedge, cedge.color}, id}); |
| |
95 }, |
| |
96 [&](const auto&){}, |
| |
97 }, element); |
| |
98 }); |
| |
99 }, |
| 79 [](const ModelElement&) {} |
100 [](const ModelElement&) {} |
| 80 }, element); |
101 }, element); |
| 81 } |
102 } |
| 82 return result; |
103 return result; |
| 83 } |
104 } |