private void mapPoints(float[] dst,int dstIndex,float[] src,int srcIndex,int pointCount){
  final int count=pointCount * 2;
  float[] tmpDest=dst;
  boolean inPlace=dst == src;
  if (inPlace) {
    tmpDest=new float[dstIndex + count];
  }
  for (int i=0; i < count; i+=2) {
    float x=mValues[0] * src[i + srcIndex] + mValues[1] * src[i + srcIndex + 1] + mValues[2];
    float y=mValues[3] * src[i + srcIndex] + mValues[4] * src[i + srcIndex + 1] + mValues[5];
    tmpDest[i + dstIndex]=x;
    tmpDest[i + dstIndex + 1]=y;
  }
  if (inPlace) {
    System.arraycopy(tmpDest,dstIndex,dst,dstIndex,count);
  }
}

private void mapPoints ( float [ ] dst , int dstIndex , float [ ] src , int srcIndex , int pointCount ) { final int count = pointCount * 2 ; float [ ] tmpDest = dst ; boolean inPlace = dst == src ; if ( inPlace ) { tmpDest = new float [ dstIndex + count ] ; } for ( int i = 0 ; i < count ; i += 2 ) { float x = mValues [ 0 ] * src [ i + srcIndex ] + mValues [ 1 ] * src [ i + srcIndex + 1 ] + mValues [ 2 ] ; float y = mValues [ 3 ] * src [ i + srcIndex ] + mValues [ 4 ] * src [ i + srcIndex + 1 ] + mValues [ 5 ] ; tmpDest [ i + dstIndex ] = x ; tmpDest [ i + dstIndex + 1 ] = y ; } if ( inPlace ) { System . arraycopy ( tmpDest , dstIndex , dst , dstIndex , count ) ; } }
apply this matrix to the array of 2d points specified by src , and write the transformed points into the array of points specified by dst . the two arrays represent their " points " as pairs of floats [ x , y ] .
