Minor cleanup.

This commit is contained in:
Martin Felis 2025-02-16 12:31:44 +01:00
parent 99d5a5eb0f
commit 4b378adc91
8 changed files with 31 additions and 19 deletions

View File

@ -116,8 +116,6 @@ void AnimGraphBlendTree::CalcSyncTrack(
}
void AnimGraphBlendTree::UpdateTime(float time_last, float time_now) {
float dt = time_now - time_last;
const std::vector<AnimGraphConnection>& graph_output_inputs =
m_node_input_connections[0];
for (const AnimGraphConnection& graph_output_input : graph_output_inputs) {

View File

@ -93,9 +93,6 @@ struct AnimGraphBlendTree : public AnimNode {
}
}
const Socket* GetInputSocket(const std::string& name) const;
const Socket* GetOutputSocket(const std::string& name) const;
/** Sets the address that is used for the specified AnimGraph input Socket.
*
* @tparam T Type of the Socket.
@ -207,7 +204,7 @@ struct BlendTreeSocketNode : public AnimNode {};
template <>
struct NodeDescriptor<BlendTreeSocketNode> : public NodeDescriptorBase {
NodeDescriptor(BlendTreeSocketNode* node_) {}
explicit NodeDescriptor(BlendTreeSocketNode* node_) {}
};
#endif //ANIMTESTBED_ANIMGRAPHBLENDTREE_H

View File

@ -422,7 +422,7 @@ struct NodeDescriptorBase {
protected:
Socket* FindSocket(const char* name, std::vector<Socket>& sockets) {
for (int i = 0, n = sockets.size(); i < n; i++) {
for (size_t i = 0, n = sockets.size(); i < n; i++) {
if (sockets[i].m_name == name) {
return &sockets[i];
}
@ -433,7 +433,7 @@ struct NodeDescriptorBase {
const Socket* FindSocket(const char* name, const std::vector<Socket>& sockets)
const {
for (int i = 0, n = sockets.size(); i < n; i++) {
for (size_t i = 0, n = sockets.size(); i < n; i++) {
if (sockets[i].m_name == name) {
return &sockets[i];
}
@ -443,7 +443,7 @@ struct NodeDescriptorBase {
}
int FindSocketIndex(const char* name, std::vector<Socket>& sockets) {
for (int i = 0, n = sockets.size(); i < n; i++) {
for (size_t i = 0, n = sockets.size(); i < n; i++) {
if (sockets[i].m_name == name) {
return i;
}

View File

@ -12,7 +12,8 @@
#include "ozz/base/log.h"
AnimNode* AnimNodeFactory(const std::string& name) {
AnimNode* result;
AnimNode* result = nullptr;
if (name == "Blend2") {
result = new Blend2Node;
} else if (name == "SpeedScale") {
@ -31,6 +32,8 @@ AnimNode* AnimNodeFactory(const std::string& name) {
result = new MathFloatToVec3Node;
} else if (name == "ConstScalarNode") {
result = new ConstScalarNode;
} else {
std::cerr << "Invalid node type: " << name << std::endl;
}
if (result != nullptr) {
@ -38,7 +41,6 @@ AnimNode* AnimNodeFactory(const std::string& name) {
return result;
}
std::cerr << "Invalid node type: " << name << std::endl;
return nullptr;
}

View File

@ -49,7 +49,7 @@ struct Blend2Node : public AnimNode {
template <>
struct NodeDescriptor<Blend2Node> : public NodeDescriptorBase {
NodeDescriptor(Blend2Node* node) {
explicit NodeDescriptor(Blend2Node* node) {
RegisterInput("Input0", &node->i_input0);
RegisterInput("Input1", &node->i_input1);
RegisterInput("Weight", &node->i_blend_weight);
@ -95,7 +95,7 @@ struct SpeedScaleNode : public AnimNode {
template <>
struct NodeDescriptor<SpeedScaleNode> : public NodeDescriptorBase {
NodeDescriptor(SpeedScaleNode* node) {
explicit NodeDescriptor(SpeedScaleNode* node) {
RegisterInput(
"SpeedScale",
&node->i_speed_scale,
@ -127,7 +127,7 @@ struct AnimSamplerNode : public AnimNode {
template <>
struct NodeDescriptor<AnimSamplerNode> : public NodeDescriptorBase {
NodeDescriptor(AnimSamplerNode* node) {
explicit NodeDescriptor(AnimSamplerNode* node) {
RegisterOutput("Output", &node->o_output);
RegisterProperty("Filename", &node->m_filename);
@ -150,7 +150,7 @@ struct LockTranslationNode : public AnimNode {
template <>
struct NodeDescriptor<LockTranslationNode> : public NodeDescriptorBase {
NodeDescriptor(LockTranslationNode* node) {
explicit NodeDescriptor(LockTranslationNode* node) {
RegisterInput("Input", &node->i_input);
RegisterOutput("Output", &node->o_output);
@ -173,7 +173,7 @@ struct ConstScalarNode : public AnimNode {
template <>
struct NodeDescriptor<ConstScalarNode> : public NodeDescriptorBase {
NodeDescriptor(ConstScalarNode* node) {
explicit NodeDescriptor(ConstScalarNode* node) {
RegisterOutput("ScalarOutput", &node->o_value);
RegisterProperty("ScalarValue", &node->value);
}
@ -197,7 +197,7 @@ struct MathAddNode : public AnimNode {
template <>
struct NodeDescriptor<MathAddNode> : public NodeDescriptorBase {
NodeDescriptor(MathAddNode* node) {
explicit NodeDescriptor(MathAddNode* node) {
RegisterInput("Input0", &node->i_input0);
RegisterInput("Input1", &node->i_input1);
RegisterOutput("Output", &node->o_output);
@ -226,7 +226,7 @@ struct MathFloatToVec3Node : public AnimNode {
template <>
struct NodeDescriptor<MathFloatToVec3Node> : public NodeDescriptorBase {
NodeDescriptor(MathFloatToVec3Node* node) {
explicit NodeDescriptor(MathFloatToVec3Node* node) {
RegisterInput("Input0", &node->i_input0);
RegisterInput("Input1", &node->i_input1);
RegisterInput("Input2", &node->i_input2);

View File

@ -182,7 +182,6 @@ AnimNodeResource* sAnimGraphNodeFromJson(
if (node_type == "BlendTree") {
AnimGraphResource* result = new AnimGraphResource();
result->m_socket_accessor = new NodeDescriptorBase;
sAnimGraphResourceBlendTreeFromJson(json_node, result);
return result;
}
@ -312,6 +311,9 @@ static bool sAnimGraphResourceBlendTreeFromJson(
result_graph_resource->m_name = json_data["name"];
result_graph_resource->m_position[0] = json_data["position"][0];
result_graph_resource->m_position[1] = json_data["position"][1];
assert(result_graph_resource->m_socket_accessor == nullptr);
result_graph_resource->m_socket_accessor =
AnimNodeDescriptorFactory("BlendTree", nullptr);
// Load nodes
for (size_t i = 0, n = json_data["nodes"].size(); i < n; i++) {

View File

@ -59,6 +59,7 @@ struct BlendTreeResource {
for (AnimNodeResource* node_resource : m_nodes) {
delete node_resource->m_anim_node;
delete node_resource->m_socket_accessor;
node_resource->m_socket_accessor = nullptr;
delete node_resource;
}
@ -263,6 +264,15 @@ struct StateMachineResource {
};
struct AnimGraphResource : AnimNodeResource {
virtual ~AnimGraphResource() {
Clear();
if (m_socket_accessor != nullptr) {
delete m_socket_accessor;
m_socket_accessor = nullptr;
}
};
std::string m_graph_type_name;
BlendTreeResource m_blend_tree_resource;
@ -367,6 +377,7 @@ static inline AnimNodeResource* AnimNodeResourceFactory(
if (node_type_name == "BlendTree") {
AnimGraphResource* blend_tree_resource = new AnimGraphResource();
blend_tree_resource->m_graph_type_name = "BlendTree";
blend_tree_resource->m_blend_tree_resource.InitGraphConnectors();
result = blend_tree_resource;
} else {

View File

@ -1351,4 +1351,6 @@ TEST_CASE(
CHECK(blend_tree_graph_resource->RegisterBlendTreeOutputSocket(socket));
CHECK(!blend_tree_graph_resource->RegisterBlendTreeOutputSocket(socket));
delete blend_tree_anim_node_resource;
}