AnimGraphInstance.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. namespace EMotionFX
  9. {
  10. class AnimGraphInstance
  11. {
  12. public:
  13. virtual ~AnimGraphInstance() = default;
  14. //void Output(Pose* outputPose);
  15. //void Start();
  16. //void Stop();
  17. //ActorInstance* GetActorInstance() const;
  18. //AnimGraph* GetAnimGraph() const;
  19. //MotionSet* GetMotionSet() const;
  20. //void SetParentAnimGraphInstance(AnimGraphInstance* parentAnimGraphInstance);
  21. //AnimGraphInstance* GetParentAnimGraphInstance() const;
  22. //void RemoveChildAnimGraphInstance(AnimGraphInstance* childAnimGraphInstance);
  23. //bool GetParameterValueAsFloat(const char* paramName, float* outValue);
  24. //bool GetParameterValueAsBool(const char* paramName, bool* outValue);
  25. //bool GetParameterValueAsInt(const char* paramName, int32* outValue);
  26. //bool GetVector2ParameterValue(const char* paramName, AZ::Vector2* outValue);
  27. //bool GetVector3ParameterValue(const char* paramName, AZ::Vector3* outValue);
  28. //bool GetVector4ParameterValue(const char* paramName, AZ::Vector4* outValue);
  29. //bool GetRotationParameterValue(const char* paramName, MCore::Quaternion* outRotation);
  30. //bool GetParameterValueAsFloat(size_t paramIndex, float* outValue);
  31. //bool GetParameterValueAsBool(size_t paramIndex, bool* outValue);
  32. //bool GetParameterValueAsInt(size_t paramIndex, int32* outValue);
  33. //bool GetVector2ParameterValue(size_t paramIndex, AZ::Vector2* outValue);
  34. //bool GetVector3ParameterValue(size_t paramIndex, AZ::Vector3* outValue);
  35. //bool GetVector4ParameterValue(size_t paramIndex, AZ::Vector4* outValue);
  36. //bool GetRotationParameterValue(size_t paramIndex, MCore::Quaternion* outRotation);
  37. //void SetMotionSet(MotionSet* motionSet);
  38. //void CreateParameterValues();
  39. MOCK_METHOD0(AddMissingParameterValues, void());
  40. MOCK_METHOD1(ReInitParameterValue, void(size_t index));
  41. MOCK_METHOD0(ReInitParameterValues, void());
  42. MOCK_METHOD2(RemoveParameterValueImpl, void(size_t index, bool delFromMem));
  43. virtual void RemoveParameterValue(size_t index, bool delFromMem = true) { RemoveParameterValueImpl(index, delFromMem); }
  44. //void AddParameterValue();
  45. MOCK_METHOD2(MoveParameterValue, void(size_t oldIndex, size_t newIndex));
  46. MOCK_METHOD1(InsertParameterValue, void(size_t index));
  47. //void RemoveAllParameters(bool delFromMem);
  48. //template <typename T>
  49. //T* GetParameterValueChecked(size_t index) const;
  50. //MCore::Attribute* GetParameterValue(size_t index) const;
  51. //MCore::Attribute* FindParameter(const AZStd::string& name) const;
  52. //AZ::Outcome<size_t> FindParameterIndex(const AZStd::string& name) const;
  53. //bool SwitchToState(const char* stateName);
  54. //bool TransitionToState(const char* stateName);
  55. //void ResetUniqueData();
  56. //void UpdateUniqueData();
  57. //void ApplyMotionExtraction();
  58. //void RecursiveResetFlags(uint32 flagsToDisable);
  59. //void ResetFlagsForAllObjects(uint32 flagsToDisable);
  60. //void ResetFlagsForAllNodes(uint32 flagsToDisable);
  61. //void ResetFlagsForAllObjects();
  62. //void ResetPoseRefCountsForAllNodes();
  63. //void ResetRefDataRefCountsForAllNodes();
  64. //void InitInternalAttributes();
  65. //size_t GetNumInternalAttributes() const;
  66. //MCore::Attribute* GetInternalAttribute(size_t attribIndex) const;
  67. //void RemoveAllInternalAttributes();
  68. //void ReserveInternalAttributes(size_t totalNumInternalAttributes);
  69. //void RemoveInternalAttribute(size_t index, bool delFromMem = true);
  70. //uint32 AddInternalAttribute(MCore::Attribute* attribute);
  71. //void AddUniqueObjectData();
  72. //void RegisterUniqueObjectData(AnimGraphObjectData* data);
  73. //AnimGraphObjectData* GetUniqueObjectData(size_t index);
  74. //size_t GetNumUniqueObjectDatas() const;
  75. //void SetUniqueObjectData(size_t index, AnimGraphObjectData* data);
  76. //void RemoveUniqueObjectData(size_t index, bool delFromMem);
  77. //void RemoveUniqueObjectData(AnimGraphObjectData* uniqueData, bool delFromMem);
  78. //void RemoveAllObjectData(bool delFromMem);
  79. //void Update(float timePassedInSeconds);
  80. //void OutputEvents();
  81. //void SetAutoUnregisterEnabled(bool enabled);
  82. //bool GetAutoUnregisterEnabled() const;
  83. //void SetIsOwnedByRuntime(bool isOwnedByRuntime);
  84. //bool GetIsOwnedByRuntime() const;
  85. //ActorInstance* FindActorInstanceFromParentDepth(uint32 parentDepth) const;
  86. //void SetVisualizeScale(float scale);
  87. //float GetVisualizeScale() const;
  88. //void SetVisualizationEnabled(bool enabled);
  89. //bool GetVisualizationEnabled() const;
  90. //bool GetRetargetingEnabled() const;
  91. //void SetRetargetingEnabled(bool enabled);
  92. //AnimGraphNode* GetRootNode() const;
  93. //void AddEventHandler(AnimGraphInstanceEventHandler* eventHandler);
  94. //void RemoveEventHandler(AnimGraphInstanceEventHandler* eventHandler);
  95. //void RemoveAllEventHandlers();
  96. //void OnStateEnter(AnimGraphNode* state);
  97. //void OnStateEntering(AnimGraphNode* state);
  98. //void OnStateExit(AnimGraphNode* state);
  99. //void OnStateEnd(AnimGraphNode* state);
  100. //void OnStartTransition(AnimGraphStateTransition* transition);
  101. //void OnEndTransition(AnimGraphStateTransition* transition);
  102. //void CollectActiveAnimGraphNodes(AZStd::vector<AnimGraphNode*>* outNodes, const AZ::TypeId& nodeType = AZ::TypeId::CreateNull());
  103. //void CollectActiveNetTimeSyncNodes(AZStd::vector<AnimGraphNode*>* outNodes);
  104. //uint32 GetObjectFlags(uint32 objectIndex) const;
  105. //void SetObjectFlags(uint32 objectIndex, uint32 flags);
  106. //void EnableObjectFlags(uint32 objectIndex, uint32 flagsToEnable);
  107. //void DisableObjectFlags(uint32 objectIndex, uint32 flagsToDisable);
  108. //void SetObjectFlags(uint32 objectIndex, uint32 flags, bool enabled);
  109. //bool GetIsObjectFlagEnabled(uint32 objectIndex, uint32 flag) const;
  110. //bool GetIsOutputReady(uint32 objectIndex) const;
  111. //void SetIsOutputReady(uint32 objectIndex, bool isReady);
  112. //bool GetIsSynced(uint32 objectIndex) const;
  113. //void SetIsSynced(uint32 objectIndex, bool isSynced);
  114. //bool GetIsResynced(uint32 objectIndex) const;
  115. //void SetIsResynced(uint32 objectIndex, bool isResynced);
  116. //bool GetIsUpdateReady(uint32 objectIndex) const;
  117. //void SetIsUpdateReady(uint32 objectIndex, bool isReady);
  118. //bool GetIsTopDownUpdateReady(uint32 objectIndex) const;
  119. //void SetIsTopDownUpdateReady(uint32 objectIndex, bool isReady);
  120. //bool GetIsPostUpdateReady(uint32 objectIndex) const;
  121. //void SetIsPostUpdateReady(uint32 objectIndex, bool isReady);
  122. //const InitSettings& GetInitSettings() const;
  123. //const AnimGraphEventBuffer& GetEventBuffer() const;
  124. //void AddFollowerGraph(AnimGraphInstance* follower, bool registerLeaderInsideFollower);
  125. //void RemoveFollowerGraph(AnimGraphInstance* follower, bool removeLeaderFromFollower);
  126. //AZStd::vector<AnimGraphInstance*>& GetFollowerGraphs();
  127. //void CreateSnapshot(bool authoritative);
  128. //void SetSnapshotSerializer(AZStd::shared_ptr<Network::AnimGraphSnapshotSerializer> serializer);
  129. //void SetSnapshotChunkSerializer(AZStd::shared_ptr<Network::AnimGraphSnapshotChunkSerializer> serializer);
  130. //const AZStd::shared_ptr<AnimGraphSnapshot> GetSnapshot() const;
  131. //bool IsNetworkEnabled() const;
  132. //MCore::LcgRandom& GetLcgRandom();
  133. //void OnNetworkConnected();
  134. //void OnNetworkParamUpdate(const AttributeContainer& parameters);
  135. //void OnNetworkActiveNodesUpdate(const AZStd::vector<AZ::u32>& activeNodes);
  136. //void OnNetworkMotionNodePlaytimesUpdate(const MotionNodePlaytimeContainer& motionNodePlaytimes);
  137. //void SetAutoReleaseRefDatas(bool automaticallyFreeRefDatas);
  138. //void SetAutoReleasePoses(bool automaticallyFreePoses);
  139. //void ReleaseRefDatas();
  140. //void ReleasePoses();
  141. };
  142. } // namespace EMotionFX