BlendTree input and output sockets can now be registered via the AnimGraphResource.
This commit is contained in:
@@ -304,21 +304,11 @@ class EmbeddedTreeBlend2GraphResource {
|
||||
embedded_blend_tree_resource = &embedded_graph->m_blend_tree_resource;
|
||||
|
||||
// Embedded: outputs
|
||||
AnimNodeResource* embedded_outputs =
|
||||
embedded_blend_tree_resource->GetGraphOutputNode();
|
||||
embedded_outputs->m_socket_accessor->RegisterInput<AnimData>(
|
||||
"AnimOutput",
|
||||
nullptr);
|
||||
embedded_graph->RegisterBlendTreeOutputSocket<AnimData>("AnimOutput");
|
||||
|
||||
// Embedded: inputs
|
||||
AnimNodeResource* embedded_inputs =
|
||||
embedded_blend_tree_resource->GetGraphInputNode();
|
||||
embedded_inputs->m_socket_accessor->RegisterOutput<AnimData>(
|
||||
"AnimInput",
|
||||
nullptr);
|
||||
embedded_inputs->m_socket_accessor->RegisterOutput<float>(
|
||||
"BlendWeight",
|
||||
nullptr);
|
||||
embedded_graph->RegisterBlendTreeInputSocket<AnimData>("AnimInput");
|
||||
embedded_graph->RegisterBlendTreeInputSocket<float>("BlendWeight");
|
||||
|
||||
// Embedded nodes
|
||||
embedded_blend2_node_index = embedded_blend_tree_resource->AddNode(
|
||||
@@ -343,7 +333,7 @@ class EmbeddedTreeBlend2GraphResource {
|
||||
|
||||
// Embedded: setup connections
|
||||
REQUIRE(embedded_blend_tree_resource->ConnectSockets(
|
||||
embedded_inputs,
|
||||
embedded_blend_tree_resource->GetGraphInputNode(),
|
||||
"AnimInput",
|
||||
embedded_blend2_node_resource,
|
||||
"Input0"));
|
||||
@@ -358,7 +348,7 @@ class EmbeddedTreeBlend2GraphResource {
|
||||
embedded_blend_tree_resource->GetGraphOutputNode(),
|
||||
"AnimOutput"));
|
||||
REQUIRE(embedded_blend_tree_resource->ConnectSockets(
|
||||
embedded_inputs,
|
||||
embedded_blend_tree_resource->GetGraphInputNode(),
|
||||
"BlendWeight",
|
||||
embedded_blend2_node_resource,
|
||||
"Weight"));
|
||||
@@ -1341,4 +1331,24 @@ TEST_CASE_METHOD(
|
||||
}
|
||||
|
||||
graph_context.freeAnimations();
|
||||
}
|
||||
|
||||
TEST_CASE(
|
||||
"Register AnimGraphResource Blendtree Sockets",
|
||||
"[AnimGraphResource]") {
|
||||
AnimNodeResource* blend_tree_anim_node_resource =
|
||||
AnimNodeResourceFactory("BlendTree");
|
||||
AnimGraphResource* blend_tree_graph_resource =
|
||||
dynamic_cast<AnimGraphResource*>(blend_tree_anim_node_resource);
|
||||
|
||||
Socket socket;
|
||||
socket.m_name = "FloatSocket";
|
||||
socket.m_type = SocketType::SocketTypeFloat;
|
||||
socket.m_reference.ptr = nullptr;
|
||||
|
||||
CHECK(blend_tree_graph_resource->RegisterBlendTreeInputSocket(socket));
|
||||
CHECK(!blend_tree_graph_resource->RegisterBlendTreeInputSocket(socket));
|
||||
|
||||
CHECK(blend_tree_graph_resource->RegisterBlendTreeOutputSocket(socket));
|
||||
CHECK(!blend_tree_graph_resource->RegisterBlendTreeOutputSocket(socket));
|
||||
}
|
||||
Reference in New Issue
Block a user