zoomTo method

void zoomTo(
  1. double scale, [
  2. Offset? focalPoint
])

Zooms to a specific scale.

Implementation

void zoomTo(double scale, [Offset? focalPoint]) {
  final clampedScale = scale.clamp(minScale, maxScale);

  if (focalPoint != null) {
    final scaleDiff = clampedScale / _transform.scale;
    _transform = ZoomTransform(
      scale: clampedScale,
      translateX:
          focalPoint.dx - (focalPoint.dx - _transform.translateX) * scaleDiff,
      translateY:
          focalPoint.dy - (focalPoint.dy - _transform.translateY) * scaleDiff,
    );
  } else {
    _transform = _transform.copyWith(scale: clampedScale);
  }

  notifyListeners();
}