add setTransform/getWorldTransform to FilamentApp
This commit is contained in:
@@ -888,33 +888,15 @@ class FFIAsset extends ThermionAsset {
|
||||
///
|
||||
///
|
||||
Future<Matrix4> getWorldTransform({ThermionEntity? entity}) async {
|
||||
late Pointer stackPtr;
|
||||
if (FILAMENT_WASM) {
|
||||
stackPtr = stackSave();
|
||||
}
|
||||
entity ??= this.entity;
|
||||
var transform = double4x4ToMatrix4(
|
||||
TransformManager_getWorldTransform(app.transformManager, entity));
|
||||
if (FILAMENT_WASM) {
|
||||
stackRestore(stackPtr);
|
||||
}
|
||||
return transform;
|
||||
return FilamentApp.instance!.getWorldTransform(entity ?? this.entity);
|
||||
}
|
||||
|
||||
///
|
||||
///
|
||||
///
|
||||
Future setTransform(Matrix4 transform, {ThermionEntity? entity}) async {
|
||||
late Pointer stackPtr;
|
||||
if (FILAMENT_WASM) {
|
||||
stackPtr = stackSave();
|
||||
}
|
||||
entity ??= this.entity;
|
||||
TransformManager_setTransform(
|
||||
app.transformManager, entity, matrix4ToDouble4x4(transform));
|
||||
if (FILAMENT_WASM) {
|
||||
stackRestore(stackPtr);
|
||||
}
|
||||
await FilamentApp.instance!.setTransform(
|
||||
entity ?? this.entity, transform);
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
@@ -1110,6 +1110,32 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
|
||||
///
|
||||
///
|
||||
Future setTransform(ThermionEntity entity, Matrix4 transform) async {
|
||||
late Pointer stackPtr;
|
||||
if (FILAMENT_WASM) {
|
||||
stackPtr = stackSave();
|
||||
}
|
||||
TransformManager_setTransform(transformManager, entity, matrix4ToDouble4x4(transform));
|
||||
if (FILAMENT_WASM) {
|
||||
stackRestore(stackPtr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
///
|
||||
///
|
||||
///
|
||||
Future<Matrix4> getWorldTransform(ThermionEntity entity) async {
|
||||
late Pointer stackPtr;
|
||||
if (FILAMENT_WASM) {
|
||||
stackPtr = stackSave();
|
||||
}
|
||||
|
||||
var transform = double4x4ToMatrix4(
|
||||
TransformManager_getWorldTransform(transformManager, entity));
|
||||
if (FILAMENT_WASM) {
|
||||
stackRestore(stackPtr);
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -330,4 +330,9 @@ abstract class FilamentApp<T> {
|
||||
///
|
||||
///
|
||||
Future setTransform(ThermionEntity entity, Matrix4 transform);
|
||||
|
||||
///
|
||||
///
|
||||
///
|
||||
Future<Matrix4> getWorldTransform(ThermionEntity entity);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user