diff --git a/dart_filament/examples/cli_wasm/bin/example_cli.dart b/dart_filament/examples/cli_wasm/bin/example_cli.dart index d06fd0aa..16dc6810 100644 --- a/dart_filament/examples/cli_wasm/bin/example_cli.dart +++ b/dart_filament/examples/cli_wasm/bin/example_cli.dart @@ -1,35 +1,29 @@ import 'package:dart_filament/dart_filament/compatibility/compatibility.dart'; import 'package:dart_filament/dart_filament.dart'; +import 'package:animation_tools_dart/animation_tools_dart.dart'; void main(List args) async { - print("MAIN"); - - // final resourceLoader = calloc(1); - - // var loadToOut = NativeCallable< - // Void Function(Pointer, - // Pointer)>.listener(DartResourceLoader.loadResource); - // print("LOADED"); - // resourceLoader.ref.loadToOut = loadToOut.nativeFunction; - // var freeResource = NativeCallable.listener( - // DartResourceLoader.freeResource); - // resourceLoader.ref.freeResource = freeResource.nativeFunction; final resourceLoader = flutter_filament_web_get_resource_loader_wrapper(); var viewer = FilamentViewer(resourceLoader: resourceLoader.cast()); - print("Created viewer, waiting for initialization"); viewer.initialized.then((_) async { - print("Initialied"); var entity = await viewer.loadGlb( "/Users/nickfisher/Documents/polyvox/apps/packages/flutter_filament/flutter_filament_federated/flutter_filament/example/assets/shapes/shapes.glb"); - print("Loaded glb"); var entities = await viewer.getChildEntities(entity, true); - print("Entities : $entities"); for (final childEntity in entities) { - var entityName = await viewer.getNameForEntity(childEntity); - print("entityName : $entityName"); + final childName = await viewer.getNameForEntity(childEntity); var morphTargetNames = - await viewer.getMorphTargetNames(entity, entityName!); - print("morph targets : $morphTargetNames"); + await viewer.getMorphTargetNames(entity, childEntity!); + if (morphTargetNames.isNotEmpty) { + await viewer.setMorphTargetWeights( + childEntity, List.filled(morphTargetNames.length, 1.0)); + } + var animationData = MorphAnimationData( + List.generate( + 10, (_) => List.filled(morphTargetNames.length, 1.0)), + morphTargetNames); + + await viewer.setMorphAnimationData(entity, animationData, + targetMeshNames: [childName!]); } });