#ifndef OBJECTS_SKELETON_HPP_ #define OBJECTS_SKELETON_HPP_ #include "../typedefs.hpp" #include #include #include #include #include namespace rigging { struct Rig; struct Pose { std::vector matrices; }; class RigNode { size_t index; std::string name; std::vector> subnodes; public: RigNode(size_t index, std::string name, std::vector> subnodes); size_t getIndex() const { return index; } const auto& getSubnodes() const { return subnodes; } }; class RigConfig { std::unique_ptr root; std::unordered_map indices; std::vector nodes; public: RigConfig(std::unique_ptr root); }; struct Rig { RigConfig* config; Pose pose; std::vector textures; }; }; #endif // OBJECTS_SKELETON_HPP_