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