Engine
Frameworkcreatedbymeusableforthecreationofsimplegames.CurrentlysupportsOpenGL(Verysimple)andVulkan.
AnimationComponent.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Engine/api.hpp"
6 
7 #include <ThirdParty/EASTL-master/include/EASTL/shared_ptr.h>
8 
9 namespace Engine {
10 
12  {
13  public:
15 
20  eastl::vector<eastl::weak_ptr<ModelComponent>> GetEntityModels() const;
21 
27  eastl::vector<eastl::string> GetModelAnimations(eastl::weak_ptr<ModelComponent> modelComponent);
28 
34  eastl::vector<eastl::string> GetModelAnimations(size_t index);
35 
42  void SetModelAnimation(eastl::weak_ptr<ModelComponent> modelComponent, eastl::string name, bool resetTime);
43 
50  void SetModelAnimation(size_t index, eastl::string name, bool resetTime);
51 
57  eastl::string GetModelCurrentAnimation(eastl::weak_ptr<ModelComponent> modelComponent);
58 
64  eastl::string GetModelCurrentAnimation(size_t index);
65 
70  void ResetModelAnimation(eastl::weak_ptr<ModelComponent> modelComponent);
71 
76  void ResetModelAnimation(size_t index);
77 
83  void SetModelAnimationTime(eastl::weak_ptr<ModelComponent> modelComponent, float time);
84 
90  void SetModelAnimationTime(size_t index, float time);
91 
97  float GetModelAnimationTime(eastl::weak_ptr<ModelComponent> modelComponent);
98 
104  float GetModelAnimationTime(size_t index);
105 
111  float GetModelAnimationDuration(eastl::weak_ptr<ModelComponent> modelComponent);
112 
118  float GetModelAnimationDuration(size_t index);
119 
125  void SetModelAnimationPaused(eastl::weak_ptr<ModelComponent> modelComponent, bool paused);
126 
132  void SetModelAnimationPaused(size_t index, bool paused);
133 
139  bool isModelAnimationPaused(eastl::weak_ptr<ModelComponent> modelComponent);
140 
146  bool isModelAnimationPaused(size_t index);
147 
153  void SetModelAnimationLooping(eastl::weak_ptr<ModelComponent> modelComponent, bool looping);
154 
160  void SetModelAnimationLooping(size_t index, bool looping);
161 
167  bool IsModelAnimationLooping(eastl::weak_ptr<ModelComponent> modelComponent);
168 
174  bool IsModelAnimationLooping(size_t index);
175 
181  void SetModelAnimationSpeed(eastl::weak_ptr<ModelComponent> modelComponent, float speed);
182 
188  void SetModelAnimationSpeed(size_t index, float speed);
189 
195  float GetModelAnimationSpeed(eastl::weak_ptr<ModelComponent> modelComponent);
196 
202  float GetModelAnimationSpeed(size_t index);
203 
204 
205  private:
206  friend class Entity;
207 
208  explicit AnimationComponent() noexcept;
209 
210  void InitializeComponent() override;
211 
212  void Update() override;
213 
214  void OnComponentAdded(eastl::weak_ptr<Component> addedComponent) override;
215  void OnComponentRemoved(eastl::weak_ptr<Component> removedComponent) override;
216 
217  eastl::vector<eastl::weak_ptr<ModelComponent>> entityModels;
218  };
219 
220 }
This component is used to keep track of the meshes and textures to render. NOTE: only the Entity clas...
This is the base class for components. NOTE: only the Entity class is allowed to create this object...
Definition: Component.hpp:16
This object is able a holder object for components. NOTE: only the EntitySystem is allowed to create ...
Definition: Entity.hpp:13
#define ENGINE_API
Definition: api.hpp:25