40 } |
40 } |
41 |
41 |
42 QVariant Model::data(const QModelIndex& index, int role) const |
42 QVariant Model::data(const QModelIndex& index, int role) const |
43 { |
43 { |
44 const int row = index.row(); |
44 const int row = index.row(); |
45 linetypes::Object* object = this->body[row].get(); |
45 ldraw::Object* object = this->body[row].get(); |
46 switch(role) |
46 switch(role) |
47 { |
47 { |
48 case Qt::DisplayRole: |
48 case Qt::DisplayRole: |
49 return object->textRepresentation(); |
49 return object->textRepresentation(); |
50 case Qt::ForegroundRole: |
50 case Qt::ForegroundRole: |
67 default: |
67 default: |
68 return {}; |
68 return {}; |
69 } |
69 } |
70 } |
70 } |
71 |
71 |
72 QVariant Model::getObjectProperty(const int index, const linetypes::Property property) const |
72 QVariant Model::getObjectProperty(const int index, const ldraw::Property property) const |
73 { |
73 { |
74 const linetypes::Object* object = this->body[index].get(); |
74 const ldraw::Object* object = this->body[index].get(); |
75 return object->getProperty(property); |
75 return object->getProperty(property); |
76 } |
76 } |
77 |
77 |
78 std::vector<gl::Polygon> Model::getPolygons(DocumentManager* documents) const |
78 std::vector<gl::Polygon> Model::getPolygons(DocumentManager* documents) const |
79 { |
79 { |
80 if (this->needRecache) |
80 if (this->needRecache) |
81 { |
81 { |
82 this->cachedPolygons.clear(); |
82 this->cachedPolygons.clear(); |
83 linetypes::GetPolygonsContext context{documents}; |
83 ldraw::GetPolygonsContext context{documents}; |
84 for (int i = 0; i < this->size(); i += 1) |
84 for (int i = 0; i < this->size(); i += 1) |
85 { |
85 { |
86 this->getObjectPolygons(i, this->cachedPolygons, &context); |
86 this->getObjectPolygons(i, this->cachedPolygons, &context); |
87 } |
87 } |
88 this->needRecache = false; |
88 this->needRecache = false; |
91 } |
91 } |
92 |
92 |
93 void Model::getObjectPolygons( |
93 void Model::getObjectPolygons( |
94 const int index, |
94 const int index, |
95 std::vector<gl::Polygon>& polygons_out, |
95 std::vector<gl::Polygon>& polygons_out, |
96 linetypes::GetPolygonsContext* context) const |
96 ldraw::GetPolygonsContext* context) const |
97 { |
97 { |
98 const linetypes::Object* object = this->body[index].get(); |
98 const ldraw::Object* object = this->body[index].get(); |
99 object->getPolygons(polygons_out, context); |
99 object->getPolygons(polygons_out, context); |
100 } |
100 } |
101 |
101 |
102 void Model::append(ModelObjectPointer&& object) |
102 void Model::append(ModelObjectPointer&& object) |
103 { |
103 { |