#pragma once #include "assets/scene.h" #include "types/transform.h" #include void BuildTreeHelper(Transform& transform, const glm::mat4& parentMatrix); template void BuildTree(ParsedProject& project, Scene& scene) { // Get the scene data which contains the components auto& sceneData = project.GetSceneData(scene.GUID); // Get all transforms from the scene data auto& transforms = sceneData.template GetComponents(); // Find transforms with no parent (root transforms) std::vector rootTransforms; for (auto& transform : transforms) { if (transform.Parent == nullptr) { rootTransforms.push_back(&transform); } } // Build tree for each root transform for (auto rootTransform : rootTransforms) { BuildTreeHelper(*rootTransform, glm::mat4(1.0f)); } }