]> git.localhorst.tv Git - blank.git/blobdiff - src/model/Skeletons.hpp
composite model is the canonical model
[blank.git] / src / model / Skeletons.hpp
index c91abe1c3ef015fa3817b00e717533cab982de9c..8d106d95fefdea2492e23092f1d7dbac2b6f0ca2 100644 (file)
@@ -1,17 +1,23 @@
 #ifndef BLANK_MODEL_SKELETONS_HPP_
 #define BLANK_MODEL_SKELETONS_HPP_
 
+#include <cstdint>
 #include <memory>
 #include <vector>
 
 
 namespace blank {
 
-class CompositeModel;
-class EntityModel;
+class Model;
+class EntityMesh;
 
 class Skeletons {
 
+public:
+       using size_type = std::size_t;
+       using reference = Model &;
+       using const_reference = const Model &;
+
 public:
        Skeletons();
        ~Skeletons();
@@ -19,14 +25,17 @@ public:
        void LoadHeadless();
        void Load();
 
-       std::size_t Size() const noexcept { return skeletons.size(); }
+       size_type 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<std::unique_ptr<CompositeModel>> skeletons;
-       std::vector<EntityModel> models;
+       std::vector<std::unique_ptr<Model>> skeletons;
+       std::vector<EntityMesh> meshes;
 
 };