refactor!: move light methods from FilamentViewer to SceneManager/TLightManager and rename clearLights/clearAssets to destroyLights/destroyAssets
This commit is contained in:
33
thermion_dart/native/src/c_api/TLightManager.cpp
Normal file
33
thermion_dart/native/src/c_api/TLightManager.cpp
Normal 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 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user