handleMoveEvent method
Implementation
void handleMoveEvent(PointerMoveEvent event) {
if (_old1?.device == event.device) {
_new1 = Pointer(
device: event.device, dx: event.position.dx, dy: event.position.dy);
} else if (_old2?.device == event.device) {
_new2 = Pointer(
device: event.device, dx: event.position.dx, dy: event.position.dy);
}
if (null != _old1 && null != _old2 && null != _new1 && null != _new2) {
var newLine = math.sqrt(
math.pow(_new1!.dx! - _new2!.dx!, 2) + math.pow(_new1!.dy! - _new2!.dy!, 2));
var oldLine = math.sqrt(
math.pow(_old1!.dx! - _old2!.dx!, 2) + math.pow(_old1!.dy! - _old2!.dy!, 2));
this.scale *= (newLine / oldLine);
this.drawX += ((_new1!.dx! - _old1!.dx!) + (_new2!.dx! - _old2!.dx!)) / 2;
this.drawY += ((_new1!.dy! - _old1!.dy!) + (_new2!.dy! - _old2!.dy!)) / 2;
if (!limitations) {
var k1 = (_old1!.dx! - _old2!.dx!) / (_old1!.dy! - _old2!.dy!);
var k2 = (_new1!.dx! - _new2!.dx!) / (_new1!.dy! - _new2!.dy!);
var temp = ((k2 - k1) / (1 + k1 * k2) * math.pi / 2);
if (!temp.isNaN) {
this.rotate1 -= temp;
}
}
markNeedsPaint();
} else if ((null != _old1 && null != _new1) ||
(null != _old2 && null != _new2)) {
this.drawX += ((_new1 ?? _new2)!.dx! - (_old1 ?? _old2)!.dx!);
this.drawY += ((_new1 ?? _new2)!.dy! - (_old1 ?? _old2)!.dy!);
markNeedsPaint();
}
if (_old1?.device == event.device) {
_old1 = _new1;
} else if (_old2?.device == event.device) {
_old2 = _new2;
}
}