final float[] yCoeffs = (float[]) value(Y_COEFFS, values);
final float preScaleX = scale( PRE_SCALE_X, values);
final float preScaleY = scale( PRE_SCALE_Y, values);
final float postScaleX = scale(POST_SCALE_X, values);
final float postScaleY = scale(POST_SCALE_Y, values);
final Warp warp;
switch (degree) {
case 1: warp = new WarpAffine (xCoeffs, yCoeffs, preScaleX, preScaleY, postScaleX, postScaleY); break;
case 2: warp = new WarpQuadratic (xCoeffs, yCoeffs, preScaleX, preScaleY, postScaleX, postScaleY); break;
case 3: warp = new WarpCubic (xCoeffs, yCoeffs, preScaleX, preScaleY, postScaleX, postScaleY); break;
default: warp = new WarpGeneralPolynomial(xCoeffs, yCoeffs, preScaleX, preScaleY, postScaleX, postScaleY); break;