protected static class GeographicImageInterpolator.GeographicCell extends ImageInterpolator.Cell
ImageInterpolator.Cell
to correctly handle image cells
which have geographic coordinates. Unlike its superclass, which works in Cartesian coordinates, GeographicCell
handles the singularities of geographic coordinates, such as image cells which cross the international dateline.Modifier and Type | Field and Description |
---|---|
protected boolean |
crossesDateline
Denotes if the pixels in this geographic image cell crosses the international dateline.
|
Constructor and Description |
---|
GeographicCell(int m0,
int m1,
int n0,
int n1)
Constructs a new Geographic Cell, but otherwise does nothing.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
childrenCrossDateline()
Returns true if any of this image cell's children cross the international dateline, and false otherwise.
|
protected void |
computeExtremesFromChildren()
Overridden to correctly compute the extremes for parent cells who's children cross the international
dateline.
|
protected void |
computeExtremesFromLocations(java.awt.Dimension dim,
float[] xs,
float[] ys)
Overridden to correctly compute the extremes for leaf cells which cross the international dateline.
|
boolean |
intersects(float x,
float y)
Overridden to correctly compute intersection for cells which cross the international dateline.
|
boolean |
isCrossesDateline()
Returns true if this image cell crosses the international dateline, and false otherwise.
|
protected boolean |
longitudesCrossDateline(java.awt.Dimension dim,
float[] longitudes)
Returns true if a line segment from the first pixel in this cell to any other pixel in this cell crosses the
international dateline, and false otherwise.
|
protected ImageInterpolator.Cell |
makeChildCell(int m0,
int m1,
int n0,
int n1)
Overridden to create a
GeographicImageInterpolator.GeographicCell . |
build, computeBounds, getSizeInBytes, split
protected boolean crossesDateline
public GeographicCell(int m0, int m1, int n0, int n1)
m0
- the cell's left image coordinate.m1
- the cell's right image coordinate.n0
- the cell's bottom image coordinate.n1
- the cell's top image coordinate.protected boolean childrenCrossDateline()
protected void computeExtremesFromChildren()
computeExtremesFromChildren
in class ImageInterpolator.Cell
protected void computeExtremesFromLocations(java.awt.Dimension dim, float[] xs, float[] ys)
computeExtremesFromLocations
in class ImageInterpolator.Cell
dim
- the image's dimensions.xs
- the x-coordinates of the image's pixels. Must contain at least gridSize.width *
gridSize.height
elements.ys
- the y-coordinates of the image's pixels. Must contain at least gridSize.width *
gridSize.height
elements.public boolean intersects(float x, float y)
intersects
in class ImageInterpolator.Cell
x
- the x-component to test for intersection with this cell.y
- the y-component to test for intersection with this cell.public boolean isCrossesDateline()
protected boolean longitudesCrossDateline(java.awt.Dimension dim, float[] longitudes)
dim
- the image's dimensions.longitudes
- the longitude coordinates of the image's pixels in degrees. Must contain at least
dim.width * dim.height
elements.protected ImageInterpolator.Cell makeChildCell(int m0, int m1, int n0, int n1)
GeographicImageInterpolator.GeographicCell
.makeChildCell
in class ImageInterpolator.Cell
m0
- the cell's left image coordinate.m1
- the cell's right image coordinate.n0
- the cell's bottom image coordinate.n1
- the cell's top image coordinate.