src/model.h

changeset 262
dc33f8a707c4
parent 259
c27612f0eac0
child 264
76a025db4948
equal deleted inserted replaced
261:6a875faebde2 262:dc33f8a707c4
212 }; 212 };
213 std::vector<Entry> body; 213 std::vector<Entry> body;
214 std::map<ModelId, std::size_t> positions; 214 std::map<ModelId, std::size_t> positions;
215 ModelId runningId = {1}; 215 ModelId runningId = {1};
216 public: 216 public:
217 Model(QObject* parent); 217 explicit Model(QObject* parent);
218 virtual ~Model(); 218 virtual ~Model();
219 ModelId append(const ModelElement& value); 219 ModelId append(const ModelElement& value);
220 const ModelElement& at(std::size_t position) const; 220 const ModelElement& at(std::size_t position) const;
221 ModelId idAt(std::size_t position) const; 221 ModelId idAt(std::size_t position) const;
222 void assignAt(std::size_t position, const ModelElement& element); 222 void assignAt(std::size_t position, const ModelElement& element);
274 const glm::vec3& p3, 274 const glm::vec3& p3,
275 const glm::vec3& p4) 275 const glm::vec3& p4)
276 { 276 {
277 return Colored<Quadrilateral>{{.p1 = p1, .p2 = p2, .p3 = p3, .p4 = p4}, MAIN_COLOR}; 277 return Colored<Quadrilateral>{{.p1 = p1, .p2 = p2, .p3 = p3, .p4 = p4}, MAIN_COLOR};
278 } 278 }
279
280 struct AppendToModel
281 {
282 ModelElement newElement;
283 };
284
285 struct DeleteFromModel
286 {
287 std::size_t position;
288 };
289
290 struct ModifyModel
291 {
292 std::size_t position;
293 ModelElement newElement;
294 };
295
296 using ModelAction = std::variant<
297 AppendToModel,
298 DeleteFromModel,
299 ModifyModel>;

mercurial