src/model.h

changeset 51
1a9eac27698d
parent 35
98906a94732f
child 73
97df974b5ed5
equal deleted inserted replaced
50:0f80a2e5e42b 51:1a9eac27698d
42 QVariant data(const QModelIndex& index, int role) const override; 42 QVariant data(const QModelIndex& index, int role) const override;
43 QVariant getHeaderProperty(const HeaderProperty property); 43 QVariant getHeaderProperty(const HeaderProperty property);
44 const QString& getName() const; 44 const QString& getName() const;
45 QVariant getObjectProperty(const int index, const ldraw::Property property) const; 45 QVariant getObjectProperty(const int index, const ldraw::Property property) const;
46 std::vector<gl::Polygon> getPolygons(class DocumentManager* documents) const; 46 std::vector<gl::Polygon> getPolygons(class DocumentManager* documents) const;
47 void getObjectPolygons(const int index, std::vector<gl::Polygon>& polygons_out, ldraw::GetPolygonsContext* context) const; 47 QModelIndex lookup(ldraw::Id id) const;
48 ldraw::Id resolve(const QModelIndex& index) const;
48 signals: 49 signals:
49 void objectAdded(ldraw::Id id, int position); 50 void objectAdded(ldraw::Id id, int position);
50 private: 51 private:
51 using ModelObjectPointer = std::unique_ptr<ldraw::Object>; 52 using ModelObjectPointer = std::unique_ptr<ldraw::Object>;
52 template<typename T, typename... Args> 53 template<typename T, typename... Args>
53 ldraw::Id append(Args&&... args); 54 ldraw::Id append(Args&&... args);
54 void append(ModelObjectPointer&& object); 55 void append(ModelObjectPointer&& object);
55 template<typename T, typename... Args> 56 template<typename T, typename... Args>
56 ldraw::Id insert(int position, Args&&... args); 57 ldraw::Id insert(int position, Args&&... args);
58 ldraw::Object* objectAt(const QModelIndex& index);
59 const ldraw::Object* objectAt(const QModelIndex& index) const;
60 void getObjectPolygons(
61 const int index,
62 std::vector<gl::Polygon>& polygons_out,
63 ldraw::GetPolygonsContext* context) const;
57 bool modified = false; 64 bool modified = false;
58 QString path; 65 QString path;
59 LDHeader header; 66 LDHeader header;
60 std::vector<ModelObjectPointer> body; 67 std::vector<ModelObjectPointer> body;
61 std::map<ldraw::Id, ldraw::Object*> objectsById; 68 std::map<ldraw::Id, ldraw::Object*> objectsById;

mercurial