code: @SuppressWarnings("WeakerAccess") // Public API
      public static void interpolate(State out, State start, State end, float factor) {
          interpolate(out, start, start.getX(), start.getY(), end, end.getX(), end.getY(), factor);
      }
docs: Interpolates from start state to end state by given factor (from 0 to 1),
  storing result into out state.
  
  @param out Interpolated state (output)
  @param start Start state
  @param end End state
  @param factor Factor