class AffineTransform implements Cloneable, Serializable {

    public Point inverseTransform(Point src, Point dst) throws NoninvertibleTransformException {
        double det = getDeterminant();
        if (Math.abs(det) < ZERO) {
            // awt.204=Determinant is zero
            //$NON-NLS-1$
            throw new NoninvertibleTransformException(NoninvertibleTransformException.DETERMINANT_IS_ZERO_CANNOT_INVERT_TRANSFORMATION);
        }

        if (dst == null) {
            dst = new Point();
        }

        double x = src.getX() - m02;
        double y = src.getY() - m12;

        dst.setLocation((x * m11 - y * m01) / det, (y * m00 - x * m10) / det);
        return dst;
    }

    public  AffineTransform();
    public  AffineTransform(AffineTransform t);
    public  AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12);
    public  AffineTransform(float[] matrix);
    public  AffineTransform(double[] matrix);

}