11 #include <AtomsGraph/Ports.h>
12 #include <Atoms/Globals.h>
13 #include <Atoms/Graph/Operator.h>
14 #include <Atoms/AnimationClip.h>
15 #include <Atoms/AnimationState.h>
16 #include <Atoms/StateMachine.h>
17 #include <Atoms/Graph/AgentBehaviourNetwork.h>
18 #include <Atoms/Graph/Operators/StateMachineBaseNodeOperator.h>
69 void setFps(
double fps);
71 void initRandom(
int value);
73 void advanceTime(
const AtomsGraph::ComputeData* computeData,
const double frameStep,
const bool incrementFrame =
true);
75 void linearBlendStates(
const std::pair<int, int>& transition,
79 unsigned int blendInTransition,
82 bool isStateInQueue(
int state);
84 void buildNetwork(
const AtomsPtr<Atoms::StateMachine> &stateMachine, std::map<std::string, std::string>& clipToAgentTypeNames, std::mutex& mutex,
const double timeOffset,
const bool forceUnsyncedClips,
const int frameOffset);
88 void advanceSingleState(
int stateIndex,
double timeStep,
double frameStep);
90 const std::list<unsigned int>& getStateQueue()
const {
return m_stateQueue; };
92 const bool isInTransition()
const {
return m_isInTransition; }
96 AgentBehaviourNetwork m_network;
106 std::map<int, AnimationStateData> m_states;
108 std::unordered_map<int, int> m_statePortIndex;
110 std::map<std::pair<int, int>,
int> m_transitionPortIndex;
112 std::map < std::pair<int, int>, TransitionNoClipData> m_transitionNoClipsData;
114 std::list<unsigned int> m_stateQueue;
122 AtomsCore::Rand32 m_idRandom;
124 double m_framesBlendInOffset;
126 double m_previousTime;
134 int m_prevFromOneShot;
138 bool m_isInTransition;
140 bool m_transitionStarted;
142 bool m_transitionIsEnded;
Agent behaviour network.
Definition: AgentBehaviourNetwork.h:29
Operator node.
Definition: Operator.h:26
Definition: StateMachineBaseNodeOperator.h:27
Definition: StateMachineOperator.h:29
Definition: StateMachineOperator.h:53
Definition: StateMachineOperator.h:25
bool compute(const AtomsGraph::ComputeData *computeData)
Compute function.
void reset()
Operator reset function.
Generic node port class.
Definition: PortTemplate.h:24
AtomsMath::Vector3 Vector3
Vector3 class.
Definition: AtomsMath.h:57
Atoms namespace.
Definition: Agent.h:29