globalToGraph method

Offset globalToGraph(
  1. Offset globalPosition
)

Converts a global screen position to graph coordinates.

This method handles the full conversion from global screen coordinates (e.g., from gesture events) to graph coordinates, accounting for:

  • Canvas position on screen (via canvasKey's RenderBox)
  • Viewport pan offset
  • Viewport zoom level

Use this method when you have a global position (like details.globalPosition from a gesture callback) and need to convert it to graph coordinates.

Parameters:

  • globalPosition: Position in global screen coordinates

Returns: The corresponding position in graph coordinates

Implementation

Offset globalToGraph(Offset globalPosition) {
  // Convert global to canvas-local using the canvas's RenderBox
  final renderBox =
      canvasKey.currentContext?.findRenderObject() as RenderBox?;
  final canvasLocal =
      renderBox?.globalToLocal(globalPosition) ?? globalPosition;
  // Then convert canvas-local to graph coordinates
  return viewport.screenToGraph(canvasLocal);
}