add implementations for getPrimitiveCount/getBoundingBox on FFIFilamentApp

This commit is contained in:
Nick Fisher
2025-06-11 09:50:35 +08:00
parent dc5c1161cc
commit 6362efcd61
2 changed files with 28 additions and 2 deletions

View File

@@ -1194,4 +1194,21 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
Future setPriority(ThermionEntity entity, int priority) async {
RenderableManager_setPriority(renderableManager, entity, priority);
}
///
///
///
Future<int> getPrimitiveCount(ThermionEntity entity) async {
return RenderableManager_getPrimitiveCount(renderableManager, entity);
}
///
///
///
Future<Aabb3> getBoundingBox(ThermionEntity entity) async {
final bb = RenderableManager_getBoundingBox(renderableManager, entity);
return Aabb3.centerAndHalfExtents(
Vector3(bb.centerX, bb.centerY, bb.centerZ),
Vector3(bb.halfExtentX, bb.halfExtentY, bb.halfExtentZ));
}
}

View File

@@ -342,10 +342,19 @@ abstract class FilamentApp<T> {
///
Future<Matrix4> getWorldTransform(ThermionEntity entity);
///
///
/// Sets the render priority for [entity].
/// [priority] should be be between 0 and 7, with 0 meaning highest priority
/// (rendered first) and 7 meaning lowest priority (rendered last).
///
Future setPriority(ThermionEntity entity, int priority);
/// Gets the number of primitives for [entity] (which is assumed to be
/// have a renderable component attached)
///
Future<int> getPrimitiveCount(ThermionEntity entity);
/// Gets the bounding box for [entity] (which is assumed to be
/// have a renderable component attached).
///
Future<Aabb3> getBoundingBox(ThermionEntity entity);
}