internal: add check for renderable entity when returning bounding box

This commit is contained in:
Nick Fisher committed 2025-01-07 08:25:48 +08:00
1 parent 96fe2c89ea
commit 024643e3a1
1 file changed
+12 -3
@@ -190,8 +190,14 @@ class FFIAsset extends ThermionAsset {
ThermionAsset? _boundingBoxAsset;
Aabb3 getBoundingBox() {
final aabb3 = SceneManager_getRenderableBoundingBox(sceneManager, entity);
Future<Aabb3> getBoundingBox() async {
late ThermionEntity targetEntity;
if (RenderableManager_isRenderable(renderableManager, entity)) {
targetEntity = entity;
} else {
targetEntity = (await getChildEntities()).first;
}
final aabb3 = SceneManager_getRenderableBoundingBox(sceneManager, targetEntity);
return aabb3;
}
@@ -276,10 +282,13 @@ class FFIAsset extends ThermionAsset {
materialInstances: [material],
keepData: false,
);
TransformManager_setParent(Engine_getTransformManager(engine),
_boundingBoxAsset!.entity, entity, false);
}
if (visible) {
await _boundingBoxAsset!.addToScene();
} else {
} else {
await _boundingBoxAsset!.removeFromScene();
}
}