Tue, 28 Jun 2022 19:25:45 +0300
cleanup version.h
#ifndef VERTEXMAP_H #define VERTEXMAP_H #include <set> #include "src/basics.h" #include "src/model.h" /** * @brief Collects a map of all vertices in a model to all objects that use the specified vertex. */ class VertexMap : public QObject { Q_OBJECT public: struct VertexInfo { glm::vec3 point; std::set<ModelId> objects; bool transformSet = false; glm::mat4 transform; }; using ApplyFunction = std::function<void(const glm::vec3&, const VertexInfo&)>; VertexMap(const Model *model); Q_SLOT void build(); void apply(ApplyFunction fn) const; Q_SIGNALS: Q_SIGNAL void verticesChanged(); private: const Model* const model; QSet<hash_t> vertexHashes; std::vector<glm::vec3> vertices; std::map<hash_t, VertexInfo> map; }; #endif // VERTEXMAP_H