@Override public void preConcatenate( final InterpolatedAffineModel3D< A, B > affine3d ) { affine.preConcatenate( affine3d.affine ); }
@Override public void preConcatenate( final InterpolatedAffineModel3D< A, B > affine3d ) { affine.preConcatenate( affine3d.affine ); }
/** * Fragile typeless reduction of ictls of which is assumed that they contain only affine transformations * * @param ictl * @param affine */ final private static void reduceAffineTransformList( final InvertibleCoordinateTransformList< ? > ictl, final AffineModel3D affine ) { final AffineModel3D a = new AffineModel3D(); for ( final InvertibleCoordinateTransform t : ictl.getList( null ) ) { if ( AffineModel3D.class.isInstance( t ) ) a.preConcatenate( ( AffineModel3D )t ); else if ( TranslationModel3D.class.isInstance( t ) ) a.preConcatenate( ( TranslationModel3D )t ); } affine.set( a ); }
/** * Fragile typeless reduction of ictls of which is assumed that they contain only affine transformations * * @param ictl * @param affine */ final private static void reduceAffineTransformList( final InvertibleCoordinateTransformList< ? > ictl, final AffineModel3D affine ) { final AffineModel3D a = new AffineModel3D(); for ( final InvertibleCoordinateTransform t : ictl.getList( null ) ) { if ( AffineModel3D.class.isInstance( t ) ) a.preConcatenate( ( AffineModel3D )t ); else if ( TranslationModel3D.class.isInstance( t ) ) a.preConcatenate( ( TranslationModel3D )t ); } affine.set( a ); }
a.preConcatenate( ( AffineModel3D )ictl.get( 0 ) ); a.preConcatenate( ( TranslationModel3D )ictl.get( 1 ) ); a.preConcatenate( ( AffineModel3D )ictl.get( 2 ) ); a.preConcatenate( ( TranslationModel3D )ictl.get( 3 ) ); final TranslationModel3D minShift = new TranslationModel3D(); minShift.set( -min[ 0 ], -min[ 1 ], -min[ 2 ] ); a.preConcatenate( minShift ); a.preConcatenate( sliceOffset ); IJ.showProgress( i, d );
a.preConcatenate( ( AffineModel3D )ictl.get( 0 ) ); a.preConcatenate( ( TranslationModel3D )ictl.get( 1 ) ); a.preConcatenate( ( AffineModel3D )ictl.get( 2 ) ); a.preConcatenate( ( TranslationModel3D )ictl.get( 3 ) ); final TranslationModel3D minShift = new TranslationModel3D(); minShift.set( -min[ 0 ], -min[ 1 ], -min[ 2 ] ); a.preConcatenate( minShift ); a.preConcatenate( sliceOffset ); IJ.showProgress( i, d );
public static AffineModel3D axisRotation( final Interval in, final int axis, final int degrees ) { // translate so that the center of the image is 0,0,0 final AffineModel3D translate1 = new AffineModel3D(); translate1.set( 1, 0, 0, -( in.max( 0 ) - in.min( 0 ) )/2, 0, 1, 0, -( in.max( 1 ) - in.min( 1 ) )/2, 0, 0, 1, -( in.max( 2 ) - in.min( 2 ) )/2 ); // rotate around an axis final AffineModel3D rot = new AffineModel3D(); rot.rotate( axis, (float)Math.toRadians( degrees ) ); // translate back to the center final AffineModel3D translate2 = new AffineModel3D(); translate2.set( 1, 0, 0, ( in.max( 0 ) - in.min( 0 ) )/2, 0, 1, 0, ( in.max( 1 ) - in.min( 1 ) )/2, 0, 0, 1, ( in.max( 2 ) - in.min( 2 ) )/2 ); translate1.preConcatenate( rot ); translate1.preConcatenate( translate2 ); return translate1; }
ictAffine.preConcatenate( ( AffineModel3D )t ); else if ( TranslationModel3D.class.isInstance( t ) ) ictAffine.preConcatenate( ( TranslationModel3D )t ); else
final AffineModel3D m3 = TransformUtils.getAffineModel3D( t3 ); m1.preConcatenate( m2 ); m1.preConcatenate( m3 );