From e06ef624e6b2b5e8b9570082b8e01ee99ec4dfbd Mon Sep 17 00:00:00 2001 From: Xiao Qi Date: Wed, 15 Mar 2023 19:26:13 +0800 Subject: [PATCH] WIP Loading of multiple roots in rig --- SHADE_Engine/src/Assets/Asset Types/Models/SHRigAsset.h | 2 +- .../src/Assets/Libraries/Loaders/SHModelLoader.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/SHADE_Engine/src/Assets/Asset Types/Models/SHRigAsset.h b/SHADE_Engine/src/Assets/Asset Types/Models/SHRigAsset.h index be9c8b14..4be767ac 100644 --- a/SHADE_Engine/src/Assets/Asset Types/Models/SHRigAsset.h +++ b/SHADE_Engine/src/Assets/Asset Types/Models/SHRigAsset.h @@ -54,6 +54,6 @@ namespace SHADE ~SHRigAsset(); SHRigDataHeader header; std::vector nodeDataCollection{}; - SHRigNodeAsset* root; + std::vector roots; }; } diff --git a/SHADE_Engine/src/Assets/Libraries/Loaders/SHModelLoader.cpp b/SHADE_Engine/src/Assets/Libraries/Loaders/SHModelLoader.cpp index 19078d90..65d197b0 100644 --- a/SHADE_Engine/src/Assets/Libraries/Loaders/SHModelLoader.cpp +++ b/SHADE_Engine/src/Assets/Libraries/Loaders/SHModelLoader.cpp @@ -279,6 +279,8 @@ namespace SHADE SHRigNodeAsset* depthPtr = nodePool + 1; NodeTemp* depthTempPtr = dst + 1; + uint32_t nodeCount{ 0 }; + while(!nodeQueue.empty()) { auto currPair = nodeQueue.front(); @@ -288,6 +290,13 @@ namespace SHADE currNode->idRef = currTemp->id; + nodeCount++; + + if (currTemp->numChild == 0 && nodeCount < header.nodeCount) + { + + } + for (auto i{0}; i < currTemp->numChild; ++i) { currNode->children.push_back(depthPtr);