@@ -30,6 +30,10 @@ Item {
30 calc.reset();
30 calc.reset();
33+ function calculate() {
34+ stopLateralChanges = Math.abs(calc.calculate()) > velocityThreashold;
33 onTrackedValueChanged: {
37 onTrackedValueChanged: {
34 calc.trackedPosition = trackedValue;
38 calc.trackedPosition = trackedValue;
35 velocityTimer.start();
39 velocityTimer.start();
@@ -37,18 +41,17 @@ Item {
38 AxisVelocityCalculator {
42 AxisVelocityCalculator {
40− onTrackedPositionChanged: {
44+ onTrackedPositionChanged: calculate();
41− var velocity = Math.abs(calc.calculate());
42− stopLateralChanges = velocity > velocityThreashold;
47 id: velocityTimer
48 id: velocityTimer
48 interval: 50
49 interval: 50
49 onTriggered: {
50 onTriggered: {
51+ var recalculate = calc.trackedPosition == trackedValue;
50 calc.trackedPosition = trackedValue;
52 calc.trackedPosition = trackedValue;
51− root.stopLateralChanges = Math.abs(calc.calculate()) > velocityThreashold;
53+ if (recalculate) calculate();
52 if (root.stopLateralChanges) {
55 if (root.stopLateralChanges) {
53 velocityTimer.start();
56 velocityTimer.start();