#ifndef DUST3D_POSE_PREVIEWS_GENERATOR_H #define DUST3D_POSE_PREVIEWS_GENERATOR_H #include #include #include #include #include "model.h" #include "rigger.h" #include "outcome.h" #include "rigtype.h" class PosePreviewsGenerator : public QObject { Q_OBJECT public: PosePreviewsGenerator(RigType rigType, const std::vector *rigBones, const std::map *rigWeights, const Outcome &outcome); ~PosePreviewsGenerator(); void addPose(std::pair idAndFrame, const std::map> &pose); const std::set> &generatedPreviewPoseIdAndFrames(); Model *takePreview(std::pair idAndFrame); signals: void finished(); public slots: void process(); private: RigType m_rigType = RigType::None; std::vector m_rigBones; std::map m_rigWeights; Outcome *m_outcome = nullptr; std::vector, std::map>>> m_poses; std::map, Model *> m_previews; std::set> m_generatedPoseIdAndFrames; }; #endif