question: 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 ) ; } }
target:  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].