/**
*
*/
package mpicbg.trakem2.align;
import ini.trakem2.display.Patch;
import java.awt.geom.AffineTransform;
import mpicbg.models.Affine2D;
import mpicbg.models.AffineModel2D;
import mpicbg.models.InterpolatedAffineModel2D;
import mpicbg.models.Model;
import mpicbg.models.RigidModel2D;
import mpicbg.models.SimilarityModel2D;
import mpicbg.models.TranslationModel2D;
public class GenericAffineTile2D< A extends Model< A > & Affine2D< A > > extends AbstractAffineTile2D< A >
{
private static final long serialVersionUID = 5632120826192026830L;
public GenericAffineTile2D( final A model, final Patch patch )
{
super( model, patch );
}
@SuppressWarnings( "rawtypes" )
@Override
protected void initModel()
{
final AffineTransform a = patch.getAffineTransform();
if ( AffineModel2D.class.isInstance( model ) )
( ( AffineModel2D )( Object )model ).set( a );
else if ( SimilarityModel2D.class.isInstance( model ) )
( ( SimilarityModel2D )( Object )model ).set( a.getScaleX(), a.getShearY(), a.getTranslateX(), a.getTranslateY() );
else if ( RigidModel2D.class.isInstance( model ) )
( ( RigidModel2D )( Object )model ).set( a.getScaleX(), a.getShearY(), a.getTranslateX(), a.getTranslateY() );
else if ( TranslationModel2D.class.isInstance( model ) )
( ( TranslationModel2D )( Object )model ).set( a.getTranslateX(), a.getTranslateY() );
else if ( InterpolatedAffineModel2D.class.isInstance( model ) )
( ( InterpolatedAffineModel2D )( Object )model ).set( a );
}
}