Tue, 27 Jul 2021 16:29:00 +0300
Add vertex rendering
117 | 1 | #ifndef VERTEXMAP_H |
2 | #define VERTEXMAP_H | |
3 | #include <set> | |
4 | #include "main.h" | |
5 | #include "model.h" | |
6 | ||
118 | 7 | /** |
8 | * @brief Collects a map of all vertices in a model to all objects that use the specified vertex. | |
9 | */ | |
117 | 10 | class VertexMap : public QObject |
11 | { | |
12 | Q_OBJECT | |
13 | public: | |
118 | 14 | using ApplyFunction = std::function<void(const glm::vec3&, const std::set<ldraw::id_t>&)>; |
117 | 15 | VertexMap(const Model *model); |
16 | Q_SLOT void build(); | |
118 | 17 | void apply(ApplyFunction fn) const; |
18 | Q_SIGNALS: | |
19 | Q_SIGNAL void verticesChanged(); | |
117 | 20 | private: |
21 | const Model* const model; | |
118 | 22 | std::map<unsigned int, glm::vec3> vertices; |
117 | 23 | std::map<unsigned int, std::set<ldraw::id_t>> map; |
24 | }; | |
25 | ||
26 | #endif // VERTEXMAP_H |