pass through sensitivity options in DelegateGestureHandler and implement cameraUpdated
This commit is contained in:
@@ -10,9 +10,11 @@ class DelegateInputHandler implements InputHandler {
|
|||||||
final ThermionViewer viewer;
|
final ThermionViewer viewer;
|
||||||
|
|
||||||
Stream<List<InputType>> get gestures => _gesturesController.stream;
|
Stream<List<InputType>> get gestures => _gesturesController.stream;
|
||||||
|
|
||||||
final _gesturesController = StreamController<List<InputType>>.broadcast();
|
final _gesturesController = StreamController<List<InputType>>.broadcast();
|
||||||
|
|
||||||
|
Stream get cameraUpdated => _cameraUpdatedController.stream;
|
||||||
|
final _cameraUpdatedController = StreamController.broadcast();
|
||||||
|
|
||||||
final _logger = Logger("DelegateInputHandler");
|
final _logger = Logger("DelegateInputHandler");
|
||||||
|
|
||||||
InputHandlerDelegate? transformDelegate;
|
InputHandlerDelegate? transformDelegate;
|
||||||
@@ -75,13 +77,20 @@ class DelegateInputHandler implements InputHandler {
|
|||||||
factory DelegateInputHandler.flight(ThermionViewer viewer,
|
factory DelegateInputHandler.flight(ThermionViewer viewer,
|
||||||
{PickDelegate? pickDelegate,
|
{PickDelegate? pickDelegate,
|
||||||
bool freeLook = false,
|
bool freeLook = false,
|
||||||
|
double panSensitivity = 0.1,
|
||||||
|
double movementSensitivity = 0.1,
|
||||||
|
double rotateSensitivity = 0.01,
|
||||||
double? clampY,
|
double? clampY,
|
||||||
ThermionEntity? entity}) =>
|
ThermionEntity? entity}) =>
|
||||||
DelegateInputHandler(
|
DelegateInputHandler(
|
||||||
viewer: viewer,
|
viewer: viewer,
|
||||||
pickDelegate: pickDelegate,
|
pickDelegate: pickDelegate,
|
||||||
transformDelegate: FreeFlightInputHandlerDelegate(viewer,
|
transformDelegate: FreeFlightInputHandlerDelegate(viewer,
|
||||||
clampY: clampY, entity: entity),
|
clampY: clampY,
|
||||||
|
entity: entity,
|
||||||
|
rotationSensitivity: rotateSensitivity,
|
||||||
|
panSensitivity: panSensitivity,
|
||||||
|
movementSensitivity: movementSensitivity),
|
||||||
actions: {
|
actions: {
|
||||||
InputType.MMB_HOLD_AND_MOVE: InputAction.ROTATE,
|
InputType.MMB_HOLD_AND_MOVE: InputAction.ROTATE,
|
||||||
InputType.SCROLLWHEEL: InputAction.TRANSLATE,
|
InputType.SCROLLWHEEL: InputAction.TRANSLATE,
|
||||||
@@ -151,10 +160,11 @@ class DelegateInputHandler implements InputHandler {
|
|||||||
|
|
||||||
await transformDelegate?.execute();
|
await transformDelegate?.execute();
|
||||||
var updates = _inputDeltas.keys.followedBy(keyTypes).toList();
|
var updates = _inputDeltas.keys.followedBy(keyTypes).toList();
|
||||||
if(updates.isNotEmpty) {
|
if (updates.isNotEmpty) {
|
||||||
_gesturesController.add(updates);
|
_gesturesController.add(updates);
|
||||||
|
_cameraUpdatedController.add(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
_inputDeltas.clear();
|
_inputDeltas.clear();
|
||||||
_processing = false;
|
_processing = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user