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>
68 void setFps(
double fps);
70 void initRandom(
int value);
72 void advanceTime(
const AtomsGraph::ComputeData* computeData,
const double frameStep,
const bool incrementFrame =
true);
74 void linearBlendStates(
const std::pair<int, int>& transition,
78 unsigned int blendInTransition,
81 bool isStateInQueue(
int state);
83 void buildNetwork(
const AtomsPtr<Atoms::StateMachine> &stateMachine, std::map<std::string, std::string>& clipToAgentTypeNames, std::mutex& mutex,
const double startFrame,
const double maxAngularAcceleration,
const double maxLinearAccelerationTmp,
const int linearAverageNumFrames,
const int angularAverageNumFrames,
const bool forceUnsyncedClips);
87 void advanceSingleState(
int stateIndex,
double timeStep,
double frameStep);
89 const std::list<unsigned int>& getStateQueue()
const {
return m_stateQueue; };
91 const bool isInTransition()
const {
return m_isInTransition; }
95 AgentBehaviourNetwork m_network;
105 std::map<int, AnimationStateData> m_states;
107 std::unordered_map<int, int> m_statePortIndex;
109 std::map<std::pair<int, int>,
int> m_transitionPortIndex;
111 std::map < std::pair<int, int>, TransitionNoClipData> m_transitionNoClipsData;
113 std::list<unsigned int> m_stateQueue;
121 AtomsCore::Rand32 m_idRandom;
123 double m_framesBlendInOffset;
125 double m_previousTime;
133 int m_prevFromOneShot;
137 bool m_isInTransition;
139 bool m_transitionStarted;
141 bool m_transitionIsEnded;