imgration 14/12/2025
This commit is contained in:
@@ -1,5 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "assets/scene.hpp"
|
||||
|
||||
void BuildTree(SceneAsset& sceneAsset);
|
||||
#pragma once
|
||||
|
||||
#include "assets/scene.h"
|
||||
#include "types/transform.h"
|
||||
#include <vector>
|
||||
|
||||
void BuildTreeHelper(Transform& transform, const glm::mat4& parentMatrix);
|
||||
|
||||
template <typename ParsedProject>
|
||||
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<Transform>();
|
||||
|
||||
// Find transforms with no parent (root transforms)
|
||||
std::vector<Transform*> 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user