package mpicbg.trakem2.transform;
public class HomographyModel2D extends mpicbg.models.HomographyModel2D implements InvertibleCoordinateTransform{
private static final long serialVersionUID = 3098424136915475353L;
@Override
public void init(final String data) throws NumberFormatException {
final String[] fields = data.split( "\\s+" );
if ( fields.length == 9 )
{
final double m00 = Double.parseDouble( fields[ 0 ] );
final double m01 = Double.parseDouble( fields[ 1 ] );
final double m02 = Double.parseDouble( fields[ 2 ] );
final double m10 = Double.parseDouble( fields[ 3 ] );
final double m11 = Double.parseDouble( fields[ 4 ] );
final double m12 = Double.parseDouble( fields[ 5 ] );
final double m20 = Double.parseDouble( fields[ 6 ] );
final double m21 = Double.parseDouble( fields[ 7 ] );
final double m22 = Double.parseDouble( fields[ 8 ] );
set(m00, m01, m02, m10, m11, m12, m20, m21, m22);
}
else throw new NumberFormatException( "Inappropriate parameters for " + this.getClass().getCanonicalName() );
}
@Override
public String toDataString() {
return m00 + " " + m01 + " " + m02 + " " +
m10 + " " + m11 + " " + m12 + " " +
m20 + " " + m21 + " " + m22 + " ";
}
@Override
public String toXML(final String indent) {
return indent + "<iict_transform class=\"" + this.getClass().getCanonicalName() + "\" data=\"" + toDataString() + "\" />";
}
@Override
public HomographyModel2D copy()
{
final HomographyModel2D m = new HomographyModel2D();
m.set(m00, m01, m02, m10, m11, m12, m20, m21, m22);
return m;
}
}