/**
*
*/
package mpicbg.trakem2.align;
import ini.trakem2.display.Patch;
import java.awt.geom.AffineTransform;
import mpicbg.models.SimilarityModel2D;
public class SimilarityTile2D extends AbstractAffineTile2D< SimilarityModel2D >
{
public SimilarityTile2D( final SimilarityModel2D model, final Patch patch )
{
super( model, patch );
}
public SimilarityTile2D( final Patch patch )
{
this( new SimilarityModel2D(), patch );
}
/**
* Initialize the model with the parameters of the {@link AffineTransform}
* of the {@link Patch}. The {@link AffineTransform} should be a
* Similarity, otherwise the results will not be what you might expect.
* This means, that:
* <pre>
* {@link AffineTransform#getScaleX()} == {@link AffineTransform#getScaleY()}
* {@link AffineTransform#getShearX()} == -{@link AffineTransform#getShearY()}
* </pre>
*/
@Override
protected void initModel()
{
final AffineTransform a = patch.getAffineTransform();
model.set( ( float )a.getScaleX(), ( float )a.getShearY(), ( float )a.getTranslateX(), ( float )a.getTranslateY() );
}
}