private static < T > RealRandomAccessible< T > createRealRandomAccessible( final RealRandomAccessible< T > rra, final RealTransform t ) { if ( !t.isIdentity() ) { if ( t instanceof AffineGet ) { return new AffineRandomAccessible<>( rra, ( AffineGet ) t ); } return new RealTransformRandomAccessible<>( rra, t ); } return rra; }
@Override final public AffineTransform3D concatenate( final AffineGet affine ) { assert affine.numSourceDimensions() >= 3: "Only >=3d affine transformations can be concatenated to a 3d affine transformation."; a.concatenate( affine.getRowPackedCopy() ); invert(); updateDs(); inverse.updateDs(); return this; }
@Override final public AffineTransform3D preConcatenate( final AffineGet affine ) { assert affine.numSourceDimensions() == 3: "Only 3d affine transformations can be preconcatenated to a 3d affine transformation."; a.preConcatenate( affine.getRowPackedCopy() ); invert(); updateDs(); inverse.updateDs(); return this; }
public static void scaleTransform( final AffineTransform3D t, final double[] factors ) { final AffineTransform at = new AffineTransform(t.numDimensions()); for (int d = 0; d < at.numDimensions(); d++) at.set( factors[d], d, d ); t.preConcatenate( at ); }
@Override public AffineTransform2D copy() { final AffineMatrix2D ma = new AffineMatrix2D(); ma.m00 = a.m00; ma.m10 = a.m10; ma.m01 = a.m01; ma.m11 = a.m11; ma.m02 = a.m02; ma.m12 = a.m12; return new AffineTransform2D( ma ); }
final public AffineTransform3D concatenate( final AffineTransform3D affine ) { a.concatenate( affine.a ); invert(); updateDs(); inverse.updateDs(); return this; }
final public AffineTransform3D preConcatenate( final AffineTransform3D affine ) { a.preConcatenate( affine.a ); invert(); updateDs(); inverse.updateDs(); return this; }
@Override public Translation preConcatenate( final TranslationGet a ) { for ( int d = 0; d < numDimensions(); ++d ) set( t[ d ] + a.getTranslation( d ) ); return this; }
@Override public InvertibleRealTransformSequence copy() { final InvertibleRealTransformSequence copy = new InvertibleRealTransformSequence(); for ( final InvertibleRealTransform t : transforms ) copy.add( t.copy() ); return copy; } }
@Override public RealTransformSequence copy() { final RealTransformSequence copy = new RealTransformSequence(); for ( final RealTransform t : transforms ) copy.add( t.copy() ); return copy; } }
private static < T > RandomAccessible< T > createRandomAccessible( final RealRandomAccessible< T > rra, final RealTransform t ) { if ( t instanceof AffineGet ) { return new AffineRandomAccessible<>( rra, ( AffineGet ) t ); } return new RealTransformRandomAccessible<>( rra, t ); }
@Override public InterpolatedRealTransform copy() { return new InterpolatedRealTransform( a.copy(), b.copy(), lambda ); } }
@Override public Translation2D preConcatenate( final TranslationGet a ) { set( t[ 0 ] + a.getTranslation( 0 ), t[ 1 ] + a.getTranslation( 1 ) ); return this; }
@Override public ClippedTransitionRealTransform copy() { return new ClippedTransitionRealTransform( interpolant.copy(), transitionOffset, transitionScale ); } }
@Override public InverseRealTransform copy() { return new InverseRealTransform( inverse.copy() ); }