src/model.h

changeset 135
d384df40c8e7
parent 133
e39326ee48dc
child 136
e8444e0d7f1a
equal deleted inserted replaced
134:f77d2230e87c 135:d384df40c8e7
35 public: 35 public:
36 class EditContext; 36 class EditContext;
37 Model(QObject* parent = nullptr); 37 Model(QObject* parent = nullptr);
38 Model(const Model&) = delete; 38 Model(const Model&) = delete;
39 int size() const; 39 int size() const;
40 ldraw::id_t at(int index) const;
40 EditContext edit(); 41 EditContext edit();
41 int rowCount(const QModelIndex&) const override; 42 int rowCount(const QModelIndex&) const override;
42 QVariant data(const QModelIndex& index, int role) const override; 43 QVariant data(const QModelIndex& index, int role) const override;
43 QVariant getHeaderProperty(const HeaderProperty property); 44 QVariant getHeaderProperty(const HeaderProperty property);
44 const QString& getName() const; 45 const QString& getName() const;
86 } 87 }
87 void getObjectPolygons( 88 void getObjectPolygons(
88 const int index, 89 const int index,
89 std::vector<gl::Polygon>& polygons_out, 90 std::vector<gl::Polygon>& polygons_out,
90 ldraw::GetPolygonsContext* context) const; 91 ldraw::GetPolygonsContext* context) const;
92 void editFinished();
93 void objectModified(ldraw::id_t id);
91 bool modified = false; 94 bool modified = false;
92 QString path; 95 QString path;
93 LDHeader header; 96 LDHeader header;
94 std::vector<ModelObjectPointer> body; 97 std::vector<ModelObjectPointer> body;
95 std::map<ldraw::id_t, ldraw::Object*> objectsById; 98 std::map<ldraw::id_t, ldraw::Object*> objectsById;
96 mutable std::vector<gl::Polygon> cachedPolygons; 99 mutable std::vector<gl::Polygon> cachedPolygons;
97 mutable bool needRecache = true; 100 mutable bool needRecache = true;
101 int editCounter = 0;
98 }; 102 };
99 103
100 /** 104 /**
101 * \brief Call @c f for all objects of type \c R 105 * \brief Call @c f for all objects of type \c R
102 */ 106 */

mercurial