add setViewFrustumCulling, zoomDelta for gesture detector and cleanup
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user