add setViewFrustumCulling, zoomDelta for gesture detector and cleanup

This commit is contained in:
Nick Fisher
2023-09-26 14:51:18 +08:00
parent 833022e4e0
commit 182df02b06
8 changed files with 41 additions and 9 deletions

View File

@@ -527,6 +527,13 @@ class FilamentController {
await _channel.invokeMethod("moveCameraToAsset", asset);
}
Future setViewFrustumCulling(bool enabled) async {
if (_viewer == null || _resizing) {
throw Exception("No viewer available, ignoring");
}
await _channel.invokeMethod("setViewFrustumCulling", enabled);
}
Future setCameraExposure(
double aperture, double shutterSpeed, double sensitivity) async {
if (_viewer == null || _resizing) {

View File

@@ -13,13 +13,15 @@ class FilamentGestureDetector extends StatefulWidget {
final FilamentController controller;
final bool showControlOverlay;
final bool enableControls;
final double zoomDelta;
const FilamentGestureDetector(
{Key? key,
required this.controller,
this.child,
this.showControlOverlay = false,
this.enableControls = true})
this.enableControls = true,
this.zoomDelta = 1})
: super(key: key);
@override
@@ -91,8 +93,9 @@ class _FilamentGestureDetectorState extends State<FilamentGestureDetector> {
if (pointerSignal is PointerScrollEvent) {
_scrollTimer?.cancel();
widget.controller.zoomBegin();
widget.controller
.zoomUpdate(pointerSignal.scrollDelta.dy > 0 ? 1 : -1);
widget.controller.zoomUpdate(pointerSignal.scrollDelta.dy > 0
? widget.zoomDelta
: -widget.zoomDelta);
_scrollTimer = Timer(Duration(milliseconds: 100), () {
widget.controller.zoomEnd();
_scrollTimer = null;
@@ -118,7 +121,6 @@ class _FilamentGestureDetectorState extends State<FilamentGestureDetector> {
? null
: (PointerMoveEvent d) async {
if (d.buttons == kTertiaryButton || _rotating) {
print("Updating at ${d.position}");
widget.controller
.rotateUpdate(d.position.dx * 2.0, d.position.dy * 2.0);
} else {