diff --git a/thermion_dart/native/src/c_api/TRenderableManager.cpp b/thermion_dart/native/src/c_api/TRenderableManager.cpp index 608998c8..8f1b6c2e 100644 --- a/thermion_dart/native/src/c_api/TRenderableManager.cpp +++ b/thermion_dart/native/src/c_api/TRenderableManager.cpp @@ -166,5 +166,20 @@ namespace thermion renderableManager->setPriority(renderableInstance, priority); } + EMSCRIPTEN_KEEPALIVE Aabb3 RenderableManager_getBoundingBox(TRenderableManager *tRenderableManager, EntityId entityId) { + auto *renderableManager = reinterpret_cast(tRenderableManager); + const auto &entity = utils::Entity::import(entityId); + + if (!renderableManager->hasComponent(entity)) { + Log("Not renderable"); + return Aabb3{ 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; + } + auto renderableInstance = renderableManager->getInstance(entity); + auto boundingBox = renderableManager->getAxisAlignedBoundingBox(renderableInstance); + + return Aabb3{boundingBox.center.x, boundingBox.center.y, boundingBox.center.z, boundingBox.halfExtent.x, boundingBox.halfExtent.y, boundingBox.halfExtent.z}; + + } + } } \ No newline at end of file