diff --git a/thermion_dart/lib/src/viewer/src/ffi/src/ffi_asset.dart b/thermion_dart/lib/src/viewer/src/ffi/src/ffi_asset.dart index 8c3ae94e..08727833 100644 --- a/thermion_dart/lib/src/viewer/src/ffi/src/ffi_asset.dart +++ b/thermion_dart/lib/src/viewer/src/ffi/src/ffi_asset.dart @@ -190,8 +190,14 @@ class FFIAsset extends ThermionAsset { ThermionAsset? _boundingBoxAsset; - Aabb3 getBoundingBox() { - final aabb3 = SceneManager_getRenderableBoundingBox(sceneManager, entity); + Future 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(); } }