protected void pan(Coord3d from, Coord3d to) {
    Chart chart = targets.get(0);

    BoundingBox3d viewBounds = chart.getView().getBounds();
    Coord3d offset = to.sub(from).div(-PAN_FACTOR);
    BoundingBox3d newBounds = viewBounds.shift(offset);
    chart.getView().setBoundManual(newBounds);
    chart.getView().shoot();

    fireControllerEvent(ControllerType.PAN, offset);
  }