animateToPosition method
void
animateToPosition(
- GraphOffset position, {
- double? zoom,
- Duration duration = const Duration(milliseconds: 400),
- Curve curve = Curves.easeInOut,
Animates the viewport to center on a specific position in graph coordinates.
The current zoom level is preserved unless zoom is specified.
Parameters:
position: The graph coordinate to center onzoom: Optional target zoom level (null preserves current zoom)duration: Animation duration (default: 400ms)curve: Animation curve (default: easeInOut)
Example:
controller.animateToPosition(GraphPosition.fromXY(500, 300));
controller.animateToPosition(position, zoom: 1.5);
Implementation
void animateToPosition(
GraphOffset position, {
double? zoom,
Duration duration = const Duration(milliseconds: 400),
Curve curve = Curves.easeInOut,
}) {
if (_screenSize.value == Size.zero) return;
final targetZoom = (zoom ?? _viewport.value.zoom).clamp(
_config.minZoom.value,
_config.maxZoom.value,
);
animateToViewport(
GraphViewport(
x: _screenSize.value.width / 2 - position.dx * targetZoom,
y: _screenSize.value.height / 2 - position.dy * targetZoom,
zoom: targetZoom,
),
duration: duration,
curve: curve,
);
}