Package org.openstreetmap.josm.tools
Class ImageWarp.GridTransform
- java.lang.Object
-
- org.openstreetmap.josm.tools.ImageWarp.GridTransform
-
- All Implemented Interfaces:
ImageWarp.PointTransform
- Enclosing class:
- ImageWarp
public static class ImageWarp.GridTransform extends java.lang.Object implements ImageWarp.PointTransform
Wrapper that optimizes a givenImageWarp.PointTransform
.It does so by spanning a grid with certain step size. It will invoke the potentially expensive master transform only at those grid points and use bilinear interpolation to approximate transformed values in between.
For memory optimization, this class assumes that rows are more or less scanned one-by-one as is done in
ImageWarp.warp(java.awt.image.BufferedImage, java.awt.Dimension, org.openstreetmap.josm.tools.ImageWarp.PointTransform, org.openstreetmap.josm.tools.ImageWarp.Interpolation)
. I.e. this transform is not random access in the y coordinate.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.awt.geom.Point2D>>
cache
private boolean
consistencyTest
private java.util.Set<java.lang.Integer>
deletedRows
private double
stride
private ImageWarp.PointTransform
trfm
-
Constructor Summary
Constructors Constructor Description GridTransform(ImageWarp.PointTransform trfm, double stride)
Create a new GridTransform.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
cleanUp(int yIdx)
private java.util.Map<java.lang.Integer,java.awt.geom.Point2D>
getRow(int yIdx)
private java.awt.geom.Point2D
getValue(int xIdx, int yIdx)
java.awt.geom.Point2D
transform(double x, double y)
Translates pixel coordinates.
-
-
-
Field Detail
-
stride
private final double stride
-
trfm
private final ImageWarp.PointTransform trfm
-
cache
private final java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.awt.geom.Point2D>> cache
-
consistencyTest
private final boolean consistencyTest
-
deletedRows
private final java.util.Set<java.lang.Integer> deletedRows
-
-
Constructor Detail
-
GridTransform
public GridTransform(ImageWarp.PointTransform trfm, double stride)
Create a new GridTransform.- Parameters:
trfm
- the master transform, that needs to be optimizedstride
- step size
-
-
Method Detail
-
transform
public java.awt.geom.Point2D transform(double x, double y)
Description copied from interface:ImageWarp.PointTransform
Translates pixel coordinates.- Specified by:
transform
in interfaceImageWarp.PointTransform
- Parameters:
x
- The x coordinatey
- The y coordinate- Returns:
- transformed pixel coordinates
-
getValue
private java.awt.geom.Point2D getValue(int xIdx, int yIdx)
-
getRow
private java.util.Map<java.lang.Integer,java.awt.geom.Point2D> getRow(int yIdx)
-
cleanUp
private void cleanUp(int yIdx)
-
-