def scroll_from_birdseye_view(self, mouse_pos):
        """Scroll whole graph so point of interest in centered on screen.

        This point of interest is the spot in the whole graph that represents
        the spot in the graph representation that the given mouse position
        is touching.
        """
        ### keep track of mouse position used so we don't need to do this
        ### again if the same mouse pos is given
        self.birdseye_view_last_mouse_pos = mouse_pos

        ### calculate the respective point in the whole graph

        relative_point = (
            get_relative_point(
                self.birdseye_graph.rect,
                mouse_pos,
                self.birdseye_union_rect
            )
        )

        ### round coordinates to prevent innacuracies from
        ### floating point numbers
        relative_point = tuple(map(round, relative_point))

        ### define amount to scroll so that the respective point in the whole
        ### graph appears centered on the screen
        dx, dy = Vector2(SCREEN_RECT.center) - relative_point

        ### scroll the graph and our union rect copy by the calculated amount

        self.scroll(dx, dy)
        self.birdseye_union_rect.move_ip(dx, dy)
Scroll whole graph so point of interest in centered on screen.

        This point of interest is the spot in the whole graph that represents
        the spot in the graph representation that the given mouse position
        is touching.
        
nodezator/editing/birdseyeview.py