onPanUpdate method
Implementation
void onPanUpdate(DragUpdateDetails details) {
if (!_isDrawing) return;
final localPosition = details.localPosition;
if (_isPointInBounds(localPosition)) {
if (_currentStroke.isNotEmpty) {
final lastPoint = _currentStroke.last;
final distance = (localPosition - lastPoint).distance;
if (distance > 2.0) {
final steps = (distance / 2.0).round().clamp(1, 5);
for (int i = 1; i <= steps; i++) {
final t = i / steps;
final interpolatedPoint = Offset.lerp(lastPoint, localPosition, t)!;
_currentStroke.add(interpolatedPoint);
}
} else {
_currentStroke.add(localPosition);
}
} else {
_currentStroke.add(localPosition);
}
_updateCurrentPath();
notifyListeners();
}
}