refactor!: move light methods from FilamentViewer to SceneManager/TLightManager and rename clearLights/clearAssets to destroyLights/destroyAssets

This commit is contained in:
Nick Fisher
2025-01-04 14:43:37 +08:00
parent 3e181b6aff
commit baf86d1ade
21 changed files with 355 additions and 272 deletions

View File

@@ -0,0 +1,33 @@
#include <filament/LightManager.h>
#include <utils/Entity.h>
#include "c_api/APIExport.h"
#include "Log.hpp"
extern "C"
{
#include "c_api/TLightManager.h"
EMSCRIPTEN_KEEPALIVE void LightManager_setPosition(TLightManager *tLightManager, EntityId light, double x, double y, double z) {
auto lightManager = reinterpret_cast<filament::LightManager*>(tLightManager);
auto instance = lightManager->getInstance(utils::Entity::import(light));
if(!instance.isValid()) {
Log("Warning: invalid light instance");
return;
}
lightManager->setPosition(instance, filament::math::float3 { x, y, z });
}
EMSCRIPTEN_KEEPALIVE void LightManager_setDirection(TLightManager *tLightManager, EntityId light, double x, double y, double z) {
auto lightManager = reinterpret_cast<filament::LightManager*>(tLightManager);
auto instance = lightManager->getInstance(utils::Entity::import(light));
if(!instance.isValid()) {
Log("Warning: invalid light instance");
return;
}
lightManager->setPosition(instance, filament::math::float3 { x, y, z });
}
}