Corrected several long-standing issues with SIFT-linear and
[trakem2.git] / TrakEM2_ / src / main / java / mpicbg / trakem2 / align / GenericAffineTile2D.java
blob986b1c5c5b49405156f55b6aa04f7578a31b631e
1 /**
2 *
3 */
4 package mpicbg.trakem2.align;
6 import ini.trakem2.display.Patch;
8 import java.awt.geom.AffineTransform;
10 import mpicbg.models.Affine2D;
11 import mpicbg.models.AffineModel2D;
12 import mpicbg.models.InterpolatedAffineModel2D;
13 import mpicbg.models.Model;
14 import mpicbg.models.RigidModel2D;
15 import mpicbg.models.SimilarityModel2D;
16 import mpicbg.models.TranslationModel2D;
18 public class GenericAffineTile2D< A extends Model< A > & Affine2D< A > > extends AbstractAffineTile2D< A >
20 public GenericAffineTile2D( final A model, final Patch patch )
22 super( model, patch );
25 @SuppressWarnings( "rawtypes" )
26 @Override
27 protected void initModel()
29 final AffineTransform a = patch.getAffineTransform();
30 if ( AffineModel2D.class.isInstance( model ) )
31 ( ( AffineModel2D )( Object )model ).set( a );
32 else if ( SimilarityModel2D.class.isInstance( model ) )
33 ( ( SimilarityModel2D )( Object )model ).set( ( float )a.getScaleX(), ( float )a.getShearY(), ( float )a.getTranslateX(), ( float )a.getTranslateY() );
34 else if ( RigidModel2D.class.isInstance( model ) )
35 ( ( RigidModel2D )( Object )model ).set( ( float )a.getScaleX(), ( float )a.getShearY(), ( float )a.getTranslateX(), ( float )a.getTranslateY() );
36 else if ( TranslationModel2D.class.isInstance( model ) )
37 ( ( TranslationModel2D )( Object )model ).set( ( float )a.getTranslateX(), ( float )a.getTranslateY() );
38 else if ( InterpolatedAffineModel2D.class.isInstance( model ) )
39 ( ( InterpolatedAffineModel2D )( Object )model ).set( a );