public class Viewport extends java.lang.Object implements PointTransformation
Modifier and Type | Field and Description |
---|---|
private java.awt.geom.Point2D.Double |
destPt |
private static int |
INITIAL_ORIGIN_X |
private static int |
INITIAL_ORIGIN_Y |
private static double |
INITIAL_SCALE |
private static int |
MIN_GRID_RESOLUTION_PIXELS |
private java.awt.geom.AffineTransform |
modelToViewTransform |
private java.awt.geom.Point2D |
originInModel
Origin of view in model space
|
private GeometryEditPanel |
panel |
private static double |
ROUND_ERROR_REMOVAL |
private double |
scale
The scale is the factor which model distance
is multiplied by to get view distance
|
private java.text.NumberFormat |
scaleFormat |
private PrecisionModel |
scalePM |
private java.awt.geom.Point2D.Double |
srcPt |
private Envelope |
viewEnvInModel |
private java.awt.Dimension |
viewSize |
Constructor and Description |
---|
Viewport(GeometryEditPanel panel) |
Modifier and Type | Method and Description |
---|---|
private Envelope |
computeEnvelopeInModel() |
boolean |
containsInModel(Coordinate p) |
PrecisionModel |
getGridPrecisionModel()
Gets a PrecisionModel corresponding to the grid size.
|
double |
getGridSizeModel() |
private double |
getHeightInModel() |
double |
getHeightInView() |
java.awt.geom.Point2D |
getLowerLeftCornerInModel() |
Envelope |
getModelEnv() |
java.awt.geom.AffineTransform |
getModelToViewTransform() |
double |
getScale() |
java.text.NumberFormat |
getScaleFormat() |
Envelope |
getViewEnv() |
private double |
getWidthInModel() |
double |
getWidthInView() |
int |
gridMagnitudeModel()
Gets the magnitude (power of 10)
for the basic grid size.
|
boolean |
intersectsInModel(Envelope env) |
private void |
setOrigin(double viewOriginX,
double viewOriginY) |
private void |
setScale(double scale) |
private void |
setScaleNoUpdate(double scale) |
private static double |
snapScale(double scaleRaw)
Snaps scale to nearest multiple of 2, 5 or 10.
|
private static double |
snapScaleTo_10_2_5(double scaleRaw)
Not used - scaling to multiples of 10,5,2 is too coarse.
|
private static double |
snapScaleToSingleDigitPrecision(double scaleRaw) |
double |
toModel(double viewDist)
Converts a distance in the view to a distance in the model.
|
java.awt.geom.Point2D |
toModel(java.awt.geom.Point2D viewPt) |
Coordinate |
toModelCoordinate(java.awt.geom.Point2D viewPt) |
java.awt.geom.Point2D |
toView(Coordinate modelCoordinate) |
double |
toView(double modelDist)
Converts a distance in the model to a distance in the view.
|
java.awt.geom.Point2D |
toView(java.awt.geom.Point2D modelPt) |
java.awt.geom.Point2D |
toView(java.awt.geom.Point2D modelPt,
java.awt.geom.Point2D viewPt) |
void |
transform(Coordinate modelCoordinate,
java.awt.geom.Point2D point)
Transforms a
Coordinate into a Java2D Point . |
private void |
update() |
void |
update(java.awt.Dimension viewSize) |
private void |
updateModelToViewTransform() |
private void |
viewUpdated() |
void |
zoom(Envelope zoomEnv) |
void |
zoom(java.awt.geom.Point2D zoomPt,
double zoomScale)
Zoom to a point, ensuring that the zoom point remains in the same screen location.
|
void |
zoomPan(double dx,
double dy) |
void |
zoomToInitialExtent() |
private static double INITIAL_SCALE
private static int INITIAL_ORIGIN_X
private static int INITIAL_ORIGIN_Y
private GeometryEditPanel panel
private java.awt.geom.Point2D originInModel
private double scale
private PrecisionModel scalePM
private java.text.NumberFormat scaleFormat
private Envelope viewEnvInModel
private java.awt.geom.AffineTransform modelToViewTransform
private java.awt.geom.Point2D.Double srcPt
private java.awt.geom.Point2D.Double destPt
private java.awt.Dimension viewSize
private static final double ROUND_ERROR_REMOVAL
private static final int MIN_GRID_RESOLUTION_PIXELS
public Viewport(GeometryEditPanel panel)
private void viewUpdated()
public Envelope getModelEnv()
public Envelope getViewEnv()
public double getScale()
private void setScaleNoUpdate(double scale)
private void setScale(double scale)
private void setOrigin(double viewOriginX, double viewOriginY)
public java.text.NumberFormat getScaleFormat()
private static double snapScale(double scaleRaw)
scaleRaw
- private static double snapScaleToSingleDigitPrecision(double scaleRaw)
private static double snapScaleTo_10_2_5(double scaleRaw)
scaleRaw
- public boolean intersectsInModel(Envelope env)
public java.awt.geom.Point2D toModel(java.awt.geom.Point2D viewPt)
public Coordinate toModelCoordinate(java.awt.geom.Point2D viewPt)
public void transform(Coordinate modelCoordinate, java.awt.geom.Point2D point)
PointTransformation
Coordinate
into a Java2D Point
.transform
in interface PointTransformation
modelCoordinate
- the source Coordinatepoint
- the destination Pointpublic java.awt.geom.Point2D toView(Coordinate modelCoordinate)
public java.awt.geom.Point2D toView(java.awt.geom.Point2D modelPt)
public java.awt.geom.Point2D toView(java.awt.geom.Point2D modelPt, java.awt.geom.Point2D viewPt)
public double toModel(double viewDist)
viewDist
- public double toView(double modelDist)
modelDist
- public void update(java.awt.Dimension viewSize)
private void update()
private void updateModelToViewTransform()
public java.awt.geom.AffineTransform getModelToViewTransform()
public void zoomToInitialExtent()
public void zoom(Envelope zoomEnv)
public void zoomPan(double dx, double dy)
public void zoom(java.awt.geom.Point2D zoomPt, double zoomScale)
zoomPt
- zoomFactor
- private double getWidthInModel()
private double getHeightInModel()
public java.awt.geom.Point2D getLowerLeftCornerInModel()
public double getHeightInView()
public double getWidthInView()
private Envelope computeEnvelopeInModel()
public boolean containsInModel(Coordinate p)
public int gridMagnitudeModel()
public PrecisionModel getGridPrecisionModel()
public double getGridSizeModel()