2023-10-24 15:01:09 +02:00
|
|
|
#include "MeshUpdater.h"
|
2023-11-26 09:40:48 +01:00
|
|
|
#include "Component/Mesh.h"
|
2024-01-24 23:10:33 +01:00
|
|
|
#include "Graphics/Mesh.h"
|
2023-10-24 15:01:09 +02:00
|
|
|
|
|
|
|
|
using namespace Seele;
|
|
|
|
|
using namespace Seele::System;
|
|
|
|
|
|
2024-06-09 12:20:04 +02:00
|
|
|
MeshUpdater::MeshUpdater(PScene scene) : ComponentSystem<Component::Transform, Component::Mesh>(scene) {}
|
2023-10-26 18:37:29 +02:00
|
|
|
|
2024-06-09 12:20:04 +02:00
|
|
|
MeshUpdater::~MeshUpdater() {}
|
2023-11-01 23:12:30 +01:00
|
|
|
|
2025-03-20 20:15:38 +01:00
|
|
|
void MeshUpdater::update(entt::entity, Component::Transform& transform, Component::Mesh& comp) {
|
2024-09-07 11:15:47 +02:00
|
|
|
if (comp.meshletOffsets.empty()) {
|
|
|
|
|
for (uint32 i = 0; i < comp.asset->meshes.size(); ++i) {
|
|
|
|
|
comp.meshletOffsets.add(comp.asset->meshes[i]->vertexData->addCullingMapping(comp.asset->meshes[i]->id));
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-06-09 12:20:04 +02:00
|
|
|
for (uint32 i = 0; i < comp.asset->meshes.size(); ++i) {
|
2024-09-07 11:15:47 +02:00
|
|
|
comp.asset->meshes[i]->vertexData->updateMesh(comp.meshletOffsets[i], comp.asset->meshes[i], transform);
|
2023-11-26 09:40:48 +01:00
|
|
|
}
|
2023-10-24 15:01:09 +02:00
|
|
|
}
|