factor out debug widgets
This commit is contained in:
@@ -2,6 +2,8 @@ import 'package:animation_tools_dart/animation_tools_dart.dart';
|
||||
import 'package:dart_filament/dart_filament/abstract_filament_viewer.dart';
|
||||
import 'package:dart_filament/dart_filament/entities/filament_entity.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_filament/filament/widgets/debug/skeleton_menu_item_widget.dart';
|
||||
import 'dart:math';
|
||||
|
||||
class ChildRenderableWidget extends StatelessWidget {
|
||||
final AbstractFilamentViewer controller;
|
||||
@@ -13,6 +15,7 @@ class ChildRenderableWidget extends StatelessWidget {
|
||||
Widget _childRenderable(FilamentEntity childEntity) {
|
||||
var name = controller.getNameForEntity(childEntity) ?? "<none>";
|
||||
var names = controller.getMorphTargetNames(entity, childEntity);
|
||||
|
||||
return FutureBuilder(
|
||||
future: names,
|
||||
builder: (_, morphTargetsSnapshot) {
|
||||
@@ -70,7 +73,39 @@ class ChildRenderableWidget extends StatelessWidget {
|
||||
var children = snapshot.data!;
|
||||
return SubmenuButton(
|
||||
child: Text("Renderable entities"),
|
||||
menuChildren: children.map(_childRenderable).toList());
|
||||
menuChildren: <Widget>[
|
||||
MenuItemButton(
|
||||
child: Text("Set children transforms to identity"),
|
||||
onPressed: () async {
|
||||
var childEntities =
|
||||
await controller.getChildEntities(entity, true);
|
||||
for (final child in childEntities) {
|
||||
await controller.setTransform(
|
||||
child, Matrix4.identity());
|
||||
}
|
||||
}),
|
||||
MenuItemButton(
|
||||
child: Text("Set children transforms to 90/X"),
|
||||
onPressed: () async {
|
||||
var childEntities =
|
||||
await controller.getChildEntities(entity, true);
|
||||
for (final child in childEntities) {
|
||||
await controller.setTransform(
|
||||
child, Matrix4.rotationX(pi / 2));
|
||||
}
|
||||
}),
|
||||
MenuItemButton(
|
||||
child: Text("Set children transforms to 90/Y"),
|
||||
onPressed: () async {
|
||||
var childEntities =
|
||||
await controller.getChildEntities(entity, true);
|
||||
for (final child in childEntities) {
|
||||
await controller.setTransform(
|
||||
child, Matrix4.rotationY(pi / 2));
|
||||
}
|
||||
}),
|
||||
] +
|
||||
children.map(_childRenderable).toList());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:dart_filament/dart_filament/abstract_filament_viewer.dart';
|
||||
import 'package:dart_filament/dart_filament/entities/filament_entity.dart';
|
||||
import 'package:flutter_filament/filament/widgets/debug/child_renderable_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_filament/filament/widgets/debug/skeleton_menu_item_widget.dart';
|
||||
|
||||
class EntityListWidget extends StatefulWidget {
|
||||
final AbstractFilamentViewer? controller;
|
||||
@@ -67,7 +68,9 @@ class _EntityListWidget extends State<EntityListWidget> {
|
||||
menuChildren: animations.data!
|
||||
.map((a) => MenuItemButton(
|
||||
child: Text(a),
|
||||
onPressed: () {
|
||||
onPressed: () async {
|
||||
await widget.controller!
|
||||
.addAnimationComponent(entity);
|
||||
widget.controller!.playAnimation(
|
||||
entity, animations.data!.indexOf(a));
|
||||
},
|
||||
@@ -75,6 +78,8 @@ class _EntityListWidget extends State<EntityListWidget> {
|
||||
.toList()),
|
||||
ChildRenderableWidget(
|
||||
controller: widget.controller!, entity: entity),
|
||||
SkeletonMenuItemWidget(
|
||||
controller: widget.controller!, entity: entity)
|
||||
])
|
||||
]);
|
||||
});
|
||||
@@ -135,15 +140,16 @@ class _EntityListWidget extends State<EntityListWidget> {
|
||||
borderRadius: BorderRadius.circular(30),
|
||||
color: Colors.white.withOpacity(0.25),
|
||||
),
|
||||
child: SingleChildScrollView(child:Column(
|
||||
// reverse: true,
|
||||
children: widget.controller!.scene
|
||||
.listLights()
|
||||
.map(_light)
|
||||
.followedBy(widget.controller!.scene
|
||||
.listEntities()
|
||||
.map(_entity))
|
||||
.cast<Widget>()
|
||||
.toList())))));
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
// reverse: true,
|
||||
children: widget.controller!.scene
|
||||
.listLights()
|
||||
.map(_light)
|
||||
.followedBy(widget.controller!.scene
|
||||
.listEntities()
|
||||
.map(_entity))
|
||||
.cast<Widget>()
|
||||
.toList())))));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user