public ScaledPolarToTranslatedCartesianTransform2D( final double tx, final double ty, final double sr, final double st ) { this.tx = tx; this.ty = ty; this.sr = sr; this.st = st; inverse = new InverseRealTransform( this ); }
@Override public InvertibleRealTransform inverse() { return new InverseRealTransform( this ); }
@Override public InvertibleRealTransform inverse() { return new InverseRealTransform( this ); }
private SphericalToCartesianTransform3D() { inverse = new InverseRealTransform( this ); }
public PolarToCartesianTransform2D() { inverse = new InverseRealTransform( this ); }
@Override public InverseRealTransform copy() { return new InverseRealTransform( inverse.copy() ); }
/** * See a {@link RealRandomAccessible} as transformed by an * {@link InvertibleRealTransform}. The {@link InvertibleRealTransform} is * interpreted according to the natural understanding that the source is * transformed by it. E.g. a positive translation of dimension <em>x</em> * would shift the source to the right. Therefore, the samples need to be * generated by the inverse of the {@link InvertibleRealTransform}. Here, * the inverse is realized by {@link InverseRealTransform}. That way, * changing the state of the {@link InvertibleRealTransform} will * immediately change the state of any new {@link RealRandomAccess} * generated by the view. * * @param source * the {@link RealRandomAccessible} to be transformed * @param transformFromSource * the {@link InvertibleRealTransform} transforming source * coordinates to coordinates of the returned * {@link RealRandomAccessible} * @param <T> the type * * @return {@link RealTransformRealRandomAccessible} representing the * transformed source */ public static < T > RealTransformRealRandomAccessible< T, InverseRealTransform > transformReal( final RealRandomAccessible< T > source, final InvertibleRealTransform transformFromSource ) { return new RealTransformRealRandomAccessible< >( source, new InverseRealTransform( transformFromSource ) ); }
/** * See a {@link RealRandomAccessible} as a {@link RandomAccessible} * transformed by an {@link InvertibleRealTransform}. The * {@link InvertibleRealTransform} is interpreted according to the natural * understanding that the source is transformed by it. E.g. a positive * translation of dimension <em>x</em> would shift the source to the right. * Therefore, the samples need to be generated by the inverse of the * {@link InvertibleRealTransform}. Here, the inverse is realized by * {@link InverseRealTransform}. That way, changing the state of the * {@link InvertibleRealTransform} will immediately change the state of any * new {@link RandomAccess} generated by the view. * * @param source * the {@link RealRandomAccessible} to be transformed * @param transformFromSource * the {@link InvertibleRealTransform} transforming source * coordinates to coordinates of the returned * {@link RealRandomAccessible} * @param <T> the type * * @return {@link RealTransformRandomAccessible} representing the * transformed source */ public static < T > RealTransformRandomAccessible< T, InverseRealTransform > transform( final RealRandomAccessible< T > source, final InvertibleRealTransform transformFromSource ) { return new RealTransformRandomAccessible< >( source, new InverseRealTransform( transformFromSource ) ); }