Plasma Engine  2.0
Loading...
Searching...
No Matches
AnimGraphResource.h
1#pragma once
2
3#include <RendererCore/RendererCoreDLL.h>
4
5#include <Core/ResourceManager/Resource.h>
6#include <Foundation/Containers/DynamicArray.h>
7#include <Foundation/Memory/InstanceDataAllocator.h>
8#include <Foundation/Types/UniquePtr.h>
9#include <RendererCore/AnimationSystem/AnimGraph/AnimGraph.h>
10
12class plAnimGraphNode;
13
15
17
18struct PL_RENDERERCORE_DLL plAnimationClipMapping : public plReflectedClass
19{
20 PL_ADD_DYNAMIC_REFLECTION(plAnimationClipMapping, plReflectedClass);
21
22 plHashedString m_sClipName;
24
25 const char* GetClipName() const { return m_sClipName.GetData(); }
26 void SetClipName(const char* szName) { m_sClipName.Assign(szName); }
27
28 const char* GetClip() const;
29 void SetClip(const char* szName);
30};
31
32class PL_RENDERERCORE_DLL plAnimGraphResource : public plResource
33{
34 PL_ADD_DYNAMIC_REFLECTION(plAnimGraphResource, plResource);
35 PL_RESOURCE_DECLARE_COMMON_CODE(plAnimGraphResource);
36
37public:
40
41 const plAnimGraph& GetAnimationGraph() const { return m_AnimGraph; }
42
43 plArrayPtr<const plString> GetIncludeGraphs() const { return m_IncludeGraphs; }
44 const plDynamicArray<plAnimationClipMapping>& GetAnimationClipMapping() const { return m_AnimationClipMapping; }
45
46private:
47 virtual plResourceLoadDesc UnloadData(Unload WhatToUnload) override;
48 virtual plResourceLoadDesc UpdateContent(plStreamReader* Stream) override;
49 virtual void UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) override;
50
51 plDynamicArray<plString> m_IncludeGraphs;
52 plDynamicArray<plAnimationClipMapping> m_AnimationClipMapping;
53 plAnimGraph m_AnimGraph;
54};
Definition AnimGraph.h:11
Definition AnimGraphInstance.h:15
Base class for all nodes in an plAnimGraphInstance.
Definition AnimGraphNode.h:36
Definition AnimGraphResource.h:33
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition DynamicArray.h:81
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
void Assign(const char(&string)[N])
Assigning a new string from a string constant is a slow operation, but the hash computation can happe...
const char * GetData() const
Gives access to the actual string data, so you can do all the typical (read-only) string operations o...
Definition HashedString_inl.h:110
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
The base class for all resources.
Definition Resource.h:10
Interface for binary in (read) streams.
Definition Stream.h:22
Definition AnimGraphResource.h:19
Definition Resource.h:34
Describes in which loading state a resource currently is, and how many different quality levels there...
Definition Declarations.h:102