ProjectiveTransform changes for revisions 24924:27154

The main change is the creation of a MathTransform2D implementation for the two-dimensional case. The same pattern is applied in other classes (Identity, Molodensky, basically every transform that may have arbitrary dimension). So we can copy-paste-edit the same code from other classes. Anyway, the code is written differently in Geotk / Apache SIS (using a if statement instead than switch, but this is very minor details).

Command line:

svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r24924:27154 https://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/ProjectiveTransform.java
Revision 24924Revision 27154
import org.opengis.referencing.operation.Matrix;
import org.opengis.referencing.operation.NoninvertibleTransformException;
import org.opengis.referencing.operation.OperationMethod;
import org.opengis.spatialschema.geometry.DirectPosition;

// Geotools dependencies
import org.geotools.metadata.iso.citation.Citations;
import org.opengis.referencing.operation.Matrix;
import org.opengis.referencing.operation.NoninvertibleTransformException;
import org.opengis.referencing.operation.OperationMethod;
import org.opengis.geometry.DirectPosition;

// Geotools dependencies
import org.geotools.metadata.iso.citation.Citations;
            }
        }
    }
    return new ProjectiveTransform(matrix);
}

/**
 * Creates a transform for the specified matrix as a Java2D object.
            }
        }
    }
    switch (dimension) {
        case 2:  return new ProjectiveTransform2D(matrix);
        default: return new ProjectiveTransform  (matrix);
}
}

/**
 * Creates a transform for the specified matrix as a Java2D object.