From af3e4a3cfd0c07055f72cb4a408de38977ddaba3 Mon Sep 17 00:00:00 2001 From: Kah Wei Date: Tue, 17 Jan 2023 18:26:58 +0800 Subject: [PATCH] Modified SHRig to use indices provided by SHRigAsset instead of auto generated indices --- SHADE_Engine/src/Animation/SHRig.cpp | 8 +++----- SHADE_Engine/src/Animation/SHRig.h | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/SHADE_Engine/src/Animation/SHRig.cpp b/SHADE_Engine/src/Animation/SHRig.cpp index 0a70dcd3..d86eee82 100644 --- a/SHADE_Engine/src/Animation/SHRig.cpp +++ b/SHADE_Engine/src/Animation/SHRig.cpp @@ -33,7 +33,6 @@ namespace SHADE } // Do a recursive depth first traversal to populate the rig - nodeCount = 0; rootNode = recurseCreateNode(asset, asset.root); } @@ -60,7 +59,7 @@ namespace SHADE int SHRig::GetNodeCount() const noexcept { - return nodeCount; + return static_cast(nodes.size()); } int SHRig::GetNodeIndex(Handle node) const noexcept @@ -80,7 +79,6 @@ namespace SHADE { // Construct the node auto newNode = nodeStore.Create(); - ++nodeCount; // Fill the node with data const auto& NODE_DATA = asset.nodeDataCollection.at(sourceNode->idRef); @@ -91,9 +89,9 @@ namespace SHADE { nodeNames.emplace(newNode, NODE_DATA.name); nodesByName.emplace(NODE_DATA.name, newNode); - nodeIndexMap.emplace(newNode, nodes.size()); - nodes.emplace_back(newNode); } + nodeIndexMap.emplace(newNode, sourceNode->idRef); + nodes.emplace_back(newNode); // Fill child nodes for (const auto& child : sourceNode->children) diff --git a/SHADE_Engine/src/Animation/SHRig.h b/SHADE_Engine/src/Animation/SHRig.h index 0dc9c829..53a201f4 100644 --- a/SHADE_Engine/src/Animation/SHRig.h +++ b/SHADE_Engine/src/Animation/SHRig.h @@ -94,7 +94,6 @@ namespace SHADE std::unordered_map> nodesByName; std::vector> nodes; std::unordered_map, int> nodeIndexMap; - int nodeCount = 0; SHResourceLibrary nodeStore; /*---------------------------------------------------------------------------------*/