Initial works for actial animation sampling and graph evaluation.

This commit is contained in:
Martin Felis
2022-04-11 16:46:09 +02:00
parent bf0c7a7daa
commit eeef635c64
9 changed files with 430 additions and 158 deletions
+4 -3
View File
@@ -66,6 +66,8 @@ struct AnimGraph {
delete m_socket_accessor;
}
bool init(AnimGraphContext& context);
void updateOrderedNodes();
void updateOrderedNodesRecursive(int node_index);
void markActiveNodes();
@@ -73,7 +75,6 @@ struct AnimGraph {
return node->m_state != AnimNodeEvalState::Deactivated;
}
void evalInputNode();
void prepareNodeEval(size_t node_index);
void finishNodeEval(size_t node_index);
@@ -81,7 +82,7 @@ struct AnimGraph {
void evalSyncTracks();
void updateTime(float dt);
void evaluate();
void evaluate(AnimGraphContext& context);
void reset() {
for (size_t i = 0, n = m_nodes.size(); i < n; i++) {
m_nodes[i]->m_time_now = 0.f;
@@ -99,7 +100,7 @@ struct AnimGraph {
void* getInputPtr(const std::string& name) const {
const Socket* input_socket = getInputSocket(name);
if (input_socket != nullptr) {
return input_socket->m_value.ptr;
return input_socket->m_reference.ptr;
}
return nullptr;