@Implementation
  protected final void transform(Matrix matrix) {
    checkNotNull(matrix);
    NativeInput.MotionEvent event = getNativeMotionEvent();
    ShadowMatrix shadowMatrix = Shadow.extract(matrix);

    float[] m = new float[9];
    shadowMatrix.getValues(m);
    event.transform(m);
  }
@Implementation
  protected final void transform(Matrix matrix) {
    checkNotNull(matrix);
    NativeInput.MotionEvent event = getNativeMotionEvent();
    ShadowMatrix shadowMatrix = Shadow.extract(matrix);

    float[] m = new float[9];
    shadowMatrix.getValues(m);
    event.transform(m);
  }
@ Implementation protected final void transform ( Matrix matrix ) { checkNotNull ( matrix ) ; NativeInput . MotionEvent event = getNativeMotionEvent ( ) ; ShadowMatrix shadowMatrix = Shadow . extract ( matrix ) ; float [ ] m = new float [ 9 ] ; shadowMatrix . getValues ( m ) ; event . transform ( m ) ; }
shadow this directly as opposed to nativeTransform because need access to ShadowMatrix
shadow this directly as opposed to nativeTransform because need access to ShadowMatrix