X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FSkeletons.hpp;h=90affd333d58e0d8891013069f0f1e4b725edd58;hb=bc2806164f55b7ac48dbb6d224b7d4b55683decf;hp=c91abe1c3ef015fa3817b00e717533cab982de9c;hpb=43820582217f7e4b707d98f2e69d969eb77fc7c3;p=blank.git diff --git a/src/model/Skeletons.hpp b/src/model/Skeletons.hpp index c91abe1..90affd3 100644 --- a/src/model/Skeletons.hpp +++ b/src/model/Skeletons.hpp @@ -1,32 +1,43 @@ #ifndef BLANK_MODEL_SKELETONS_HPP_ #define BLANK_MODEL_SKELETONS_HPP_ +#include #include #include namespace blank { -class CompositeModel; -class EntityModel; +class Model; +class EntityMesh; +class ShapeRegistry; +class TextureIndex; class Skeletons { +public: + using size_type = std::size_t; + using reference = Model &; + using const_reference = const Model &; + public: Skeletons(); ~Skeletons(); void LoadHeadless(); - void Load(); + void Load(const ShapeRegistry &, TextureIndex &); + + size_type size() const noexcept { return skeletons.size(); } - std::size_t Size() const noexcept { return skeletons.size(); } + reference operator[](size_type i) noexcept { return *skeletons[i]; } + const_reference operator[](size_type i) const noexcept { return *skeletons[i]; } - CompositeModel &operator[](std::size_t i) noexcept { return *skeletons[i]; } - const CompositeModel &operator[](std::size_t i) const noexcept { return *skeletons[i]; } + Model *ByID(std::uint16_t) noexcept; + const Model *ByID(std::uint16_t) const noexcept; private: - std::vector> skeletons; - std::vector models; + std::vector> skeletons; + std::vector meshes; };