update example project with debug widgets for child entities & morph targets

This commit is contained in:
Nick Fisher
2024-05-16 22:36:10 +08:00
parent f63228e623
commit 24c62ca026
4 changed files with 114 additions and 66 deletions

View File

@@ -1,10 +1,13 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_filament/filament/widgets/debug/entity_list_widget.dart';
import 'package:flutter_filament_example/camera_matrix_overlay.dart';
import 'package:flutter_filament_example/menus/controller_menu.dart';
import 'package:flutter_filament_example/example_viewport.dart';
import 'package:dart_filament/dart_filament/entities/entity_transform_controller.dart';
import 'package:flutter_filament_example/menus/scene_menu.dart';
import 'package:flutter_filament/flutter_filament.dart';
import 'package:flutter_filament_example/picker_result_widget.dart';
const loadDefaultScene = bool.hasEnvironment('--load-default-scene');
@@ -178,18 +181,18 @@ class ExampleWidgetState extends State<ExampleWidget> {
Expanded(child: Container()),
]))),
if (isInitialized) ...[
// EntityListWidget(controller: _plugin.viewer),
// Padding(
// padding: const EdgeInsets.only(top: 10, left: 20, right: 20),
// child: ValueListenableBuilder(
// valueListenable: showProjectionMatrices,
// builder: (ctx, value, child) => CameraMatrixOverlay(
// controller: _plugin, showProjectionMatrices: value)),
// ),
// Align(
// alignment: Alignment.topRight,
// child: PickerResultWidget(controller: _plugin.viewer),
// )
EntityListWidget(controller: _plugin.viewer),
Padding(
padding: const EdgeInsets.only(top: 10, left: 20, right: 20),
child: ValueListenableBuilder(
valueListenable: showProjectionMatrices,
builder: (ctx, value, child) => CameraMatrixOverlay(
controller: _plugin.viewer, showProjectionMatrices: value)),
),
Align(
alignment: Alignment.topRight,
child: PickerResultWidget(controller: _plugin.viewer),
)
]
]);
});

View File

@@ -77,39 +77,8 @@ class _AssetSubmenuState extends State<AssetSubmenu> {
1000.0 / 60.0));
},
child: const Text('Set bone transform animation for Cylinder')),
MenuItemButton(
closeOnActivate: false,
onPressed: () async {
var names = await widget.controller.viewer.getMorphTargetNames(
widget.controller.viewer.scene.listEntities().last, "Cylinder");
print("NAMES : $names");
await showDialog(
context: context,
builder: (ctx) {
return Container(
height: 100,
width: 100,
color: Colors.white,
child: Text(names.join(",")));
});
},
child: const Text("Show morph target names for Cylinder")),
MenuItemButton(
onPressed: () async {
var cylinder = await widget.controller.viewer.getChildEntity(
widget.controller.viewer.scene.listEntities().last, "Cylinder");
widget.controller.viewer
.setMorphTargetWeights(cylinder, List.filled(4, 1.0));
},
child: const Text("set Cylinder morph weights to 1")),
MenuItemButton(
onPressed: () async {
var cylinder = await widget.controller.viewer.getChildEntity(
widget.controller.viewer.scene.listEntities().last, "Cylinder");
widget.controller.viewer
.setMorphTargetWeights(cylinder, List.filled(4, 0.0));
},
child: const Text("Set Cylinder morph weights to 0")),
MenuItemButton(
onPressed: () async {
var morphTargets = await widget.controller.viewer.getMorphTargetNames(