Plasma Engine  2.0
Loading...
Searching...
No Matches
MathAnimNodes.h
1#pragma once
2
3#include <Foundation/CodeUtils/MathExpression.h>
4#include <RendererCore/AnimationSystem/AnimGraph/AnimGraphNode.h>
5
6class PL_RENDERERCORE_DLL plMathExpressionAnimNode : public plAnimGraphNode
7{
8 PL_ADD_DYNAMIC_REFLECTION(plMathExpressionAnimNode, plAnimGraphNode);
9
11 // plAnimGraphNode
12
13protected:
14 virtual plResult SerializeNode(plStreamWriter& stream) const override;
15 virtual plResult DeserializeNode(plStreamReader& stream) override;
16
17 virtual void Step(plAnimController& ref_controller, plAnimGraphInstance& ref_graph, plTime tDiff, const plSkeletonResource* pSkeleton, plGameObject* pTarget) const override;
18 virtual bool GetInstanceDataDesc(plInstanceDataDesc& out_desc) const override;
19
21 // plLogicAndAnimNode
22
23public:
26
27 void SetExpression(plString sExpr);
28 plString GetExpression() const;
29
30private:
31 plAnimGraphNumberInputPin m_ValueAPin; // [ property ]
32 plAnimGraphNumberInputPin m_ValueBPin; // [ property ]
33 plAnimGraphNumberInputPin m_ValueCPin; // [ property ]
34 plAnimGraphNumberInputPin m_ValueDPin; // [ property ]
35 plAnimGraphNumberOutputPin m_ResultPin; // [ property ]
36
37 plString m_sExpression;
38
39 struct InstanceData
40 {
41 plMathExpression m_mExpression;
42 };
43};
44
48
49class PL_RENDERERCORE_DLL plCompareNumberAnimNode : public plAnimGraphNode
50{
51 PL_ADD_DYNAMIC_REFLECTION(plCompareNumberAnimNode, plAnimGraphNode);
52
54 // plAnimGraphNode
55
56protected:
57 virtual plResult SerializeNode(plStreamWriter& stream) const override;
58 virtual plResult DeserializeNode(plStreamReader& stream) override;
59
60 virtual void Step(plAnimController& ref_controller, plAnimGraphInstance& ref_graph, plTime tDiff, const plSkeletonResource* pSkeleton, plGameObject* pTarget) const override;
61
63 // plCompareNumberAnimNode
64
65public:
66 double m_fReferenceValue = 0.0f; // [ property ]
67 plEnum<plComparisonOperator> m_Comparison; // [ property ]
68
69private:
70 plAnimGraphNumberInputPin m_InNumber; // [ property ]
71 plAnimGraphNumberInputPin m_InReference; // [ property ]
72 plAnimGraphBoolOutputPin m_OutIsTrue; // [ property ]
73};
74
75
79
80class PL_RENDERERCORE_DLL plBoolToNumberAnimNode : public plAnimGraphNode
81{
82 PL_ADD_DYNAMIC_REFLECTION(plBoolToNumberAnimNode, plAnimGraphNode);
83
85 // plAnimGraphNode
86
87protected:
88 virtual plResult SerializeNode(plStreamWriter& stream) const override;
89 virtual plResult DeserializeNode(plStreamReader& stream) override;
90
91 virtual void Step(plAnimController& ref_controller, plAnimGraphInstance& ref_graph, plTime tDiff, const plSkeletonResource* pSkeleton, plGameObject* pTarget) const override;
92
94 // plBoolToNumberAnimNode
95
96public:
99
100 double m_fFalseValue = 0.0f;
101 double m_fTrueValue = 1.0f;
102
103private:
104 plAnimGraphBoolInputPin m_InValue; // [ property ]
105 plAnimGraphNumberOutputPin m_OutNumber; // [ property ]
106};
107
111
112class PL_RENDERERCORE_DLL plBoolToTriggerAnimNode : public plAnimGraphNode
113{
114 PL_ADD_DYNAMIC_REFLECTION(plBoolToTriggerAnimNode, plAnimGraphNode);
115
117 // plAnimGraphNode
118
119protected:
120 virtual plResult SerializeNode(plStreamWriter& stream) const override;
121 virtual plResult DeserializeNode(plStreamReader& stream) override;
122
123 virtual void Step(plAnimController& ref_controller, plAnimGraphInstance& ref_graph, plTime tDiff, const plSkeletonResource* pSkeleton, plGameObject* pTarget) const override;
124 virtual bool GetInstanceDataDesc(plInstanceDataDesc& out_desc) const override;
125
127 // plBoolToNumberAnimNode
128
129public:
132
133private:
134 plAnimGraphBoolInputPin m_InValue; // [ property ]
135 plAnimGraphTriggerOutputPin m_OutOnTrue; // [ property ]
136 plAnimGraphTriggerOutputPin m_OutOnFalse; // [ property ]
137
138 struct InstanceData
139 {
140 plInt8 m_iIsTrue = -1; // -1 == undefined, 0 == false, 1 == true
141 };
142};
Definition AnimController.h:52
Definition AnimGraphPins.h:130
Definition AnimGraphPins.h:140
Definition AnimGraphInstance.h:15
Base class for all nodes in an plAnimGraphInstance.
Definition AnimGraphNode.h:36
Definition AnimGraphPins.h:108
Definition AnimGraphPins.h:118
Definition AnimGraphPins.h:92
Definition MathAnimNodes.h:81
Definition MathAnimNodes.h:113
Definition MathAnimNodes.h:50
This class represents an object inside the world.
Definition GameObject.h:32
Definition MathAnimNodes.h:7
A wrapper around plExpression infrastructure to evaluate simple math expressions.
Definition MathExpression.h:11
Definition SkeletonResource.h:47
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Structure to describe an instance data type.
Definition InstanceDataAllocator.h:17
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12