update federated flutter_filament

This commit is contained in:
Nick Fisher
2024-05-15 22:28:58 +08:00
parent 293d3c9fd6
commit 7703f33b81
238 changed files with 68680 additions and 2037 deletions

View File

@@ -18,8 +18,11 @@ class FlutterFilamentPlugin {
}
await FlutterFilamentPlatform.instance
.initialize(uberArchivePath: uberArchivePath);
print("instance init completed");
_initialized.complete(true);
print("completed compelter");
await viewer.initialized;
print("viewer init complete");
}
Future<FlutterFilamentTexture?> createTexture(

View File

@@ -1,6 +1,5 @@
import 'package:dart_filament/dart_filament/entities/filament_entity.dart';
import 'package:dart_filament/dart_filament/filament_viewer_impl.dart';
import 'package:flutter/material.dart';
import 'package:dart_filament/dart_filament/abstract_filament_viewer.dart';import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import '../../utils/camera_orientation.dart';
@@ -8,7 +7,7 @@ import 'dart:math';
import 'package:vector_math/vector_math_64.dart' as v64;
class CameraOptionsWidget extends StatefulWidget {
final FilamentViewer controller;
final AbstractFilamentViewer controller;
final CameraOrientation cameraOrientation;
final List<({FilamentEntity entity, String name})> cameras;

View File

@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'dart:async';
import 'package:dart_filament/dart_filament.dart';
import 'package:dart_filament/dart_filament/entities/entity_transform_controller.dart';
///
/// A widget that translates mouse gestures to zoom/pan/rotate actions.

View File

@@ -65,9 +65,7 @@ class FilamentGestureDetector extends StatelessWidget {
if (initialized.data != true) {
return Container();
}
if (kIsWeb) {
throw Exception("TODO");
} else if (Platform.isLinux ||
if (kIsWeb || Platform.isLinux ||
Platform.isWindows ||
Platform.isMacOS) {
return FilamentGestureDetectorDesktop(

View File

@@ -1,7 +1,6 @@
import 'dart:async';
import 'package:dart_filament/dart_filament/abstract_filament_viewer.dart';
import 'package:dart_filament/dart_filament/entities/gizmo.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
@@ -66,10 +65,7 @@ class _FilamentGestureDetectorDesktopState
@override
void initState() {
super.initState();
widget.controller.scene.gizmo.then((g) {
_gizmo = g;
setState(() {});
});
_gizmo = widget.controller.gizmo;
}
@override
@@ -107,9 +103,6 @@ class _FilamentGestureDetectorDesktopState
@override
Widget build(BuildContext context) {
if (_gizmo == null) {
return Container();
}
return Listener(
// onPointerHover: (event) async {
// if (_gizmo.isActive) {
@@ -134,7 +127,7 @@ class _FilamentGestureDetectorDesktopState
throw Exception("TODO - is this a pinch zoom on laptop trackpad?");
},
onPointerDown: (d) async {
if (_gizmo!.isActive) {
if (_gizmo?.isActive == true) {
return;
}
if (d.buttons != kTertiaryButton && widget.enablePicking) {
@@ -145,7 +138,7 @@ class _FilamentGestureDetectorDesktopState
},
// holding/moving the left mouse button is interpreted as a pan, middle mouse button as a rotate
onPointerMove: (PointerMoveEvent d) async {
if (_gizmo!.isActive) {
if (_gizmo?.isActive == true) {
_gizmo!.translate(d.delta.dx, d.delta.dy);
return;
}
@@ -173,7 +166,7 @@ class _FilamentGestureDetectorDesktopState
// 2) if _pointerMoving is false, this is interpreted as a pick
// same applies to middle mouse button, but this is ignored as a pick
onPointerUp: (PointerUpEvent d) async {
if (_gizmo!.isActive) {
if (_gizmo?.isActive == true) {
_gizmo!.reset();
return;
}

View File

@@ -1,5 +1,6 @@
import 'dart:io';
import 'dart:math';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'dart:async';
@@ -129,7 +130,7 @@ class _FilamentWidgetState extends State<FilamentWidget> {
@override
Widget build(BuildContext context) {
if (_texture == null) {
return widget.initial ?? Container(color: Colors.red);
return widget.initial ?? Container(color: kIsWeb ? Colors.transparent : Colors.red);
}
var textureWidget = Texture(

View File

@@ -1,7 +1,5 @@
import 'dart:math';
import 'package:dart_filament/dart_filament/entities/filament_entity.dart';
import 'package:dart_filament/dart_filament/filament_viewer_impl.dart';
import 'package:dart_filament/dart_filament/abstract_filament_viewer.dart';
import 'package:dart_filament/dart_filament/utils/light_options.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
@@ -9,7 +7,7 @@ import 'package:flutter/widgets.dart';
import 'package:vector_math/vector_math_64.dart' as v;
class LightSliderWidget extends StatefulWidget {
final FilamentViewer controller;
final AbstractFilamentViewer controller;
final LightOptions options;
final bool showControls;