private class DrawAction.SnapHelper extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private class |
DrawAction.SnapHelper.AnglePopupMenu |
Modifier and Type | Field and Description |
---|---|
private boolean |
absoluteFix |
private boolean |
active |
private java.awt.event.MouseListener |
anglePopupListener |
private javax.swing.JCheckBoxMenuItem |
checkBox |
private double |
customBaseHeading |
private EastNorth |
dir2 |
private static java.lang.String |
DRAW_ANGLESNAP_ANGLES |
private double |
e0 |
private boolean |
fixed |
private java.lang.String |
fixFmt |
private java.lang.String |
labelText |
private double |
lastAngle |
private double |
n0 |
private double |
pe |
private double |
pn |
private EastNorth |
projected |
private EastNorth |
projectionSource |
private EastNorth |
segmentPoint1 |
private EastNorth |
segmentPoint2 |
private double[] |
snapAngles |
private boolean |
snapOn |
Modifier | Constructor and Description |
---|---|
private |
SnapHelper() |
Modifier and Type | Method and Description |
---|---|
private void |
buildLabelText(double nearestAngle) |
void |
checkAngleSnapping(EastNorth currentEN,
double baseHeading,
double curHeading)
If mouse position is close to line at 15-30-45-...
|
private void |
computeSnapAngles() |
void |
drawIfNeeded(java.awt.Graphics2D g2,
MapViewState mv)
Draw the snap hint line.
|
private void |
enableSnapping()
Enable snapping.
|
private double |
getAngleDelta(double a,
double b) |
private double |
getNearestAngle(double angle) |
EastNorth |
getSnapPoint(EastNorth p)
Gets a snap point close to p.
|
void |
init()
Set the initial state
|
boolean |
isActive() |
boolean |
isSnapOn() |
void |
noSnapNow()
Disables snapping
|
private double |
parseSnapAngle(java.lang.String string) |
void |
saveAngles(java.lang.String... angles)
Save the snap angles
|
void |
setBaseSegment(WaySegment seg) |
void |
setFixedMode() |
void |
setMenuCheckBox(javax.swing.JCheckBoxMenuItem checkBox) |
private void |
toggleSnapping() |
private void |
unFixOrTurnOff() |
void |
unsetFixedMode() |
private static final java.lang.String DRAW_ANGLESNAP_ANGLES
private boolean snapOn
private boolean active
private boolean fixed
private boolean absoluteFix
private java.lang.String labelText
private double lastAngle
private double customBaseHeading
private EastNorth segmentPoint1
private EastNorth segmentPoint2
private EastNorth projectionSource
private double[] snapAngles
private double pe
private double pn
private double e0
private double n0
private final java.lang.String fixFmt
private javax.swing.JCheckBoxMenuItem checkBox
private final java.awt.event.MouseListener anglePopupListener
private SnapHelper()
public void init()
private void computeSnapAngles()
private double parseSnapAngle(java.lang.String string)
public void saveAngles(java.lang.String... angles)
angles
- The anglespublic void setMenuCheckBox(javax.swing.JCheckBoxMenuItem checkBox)
public void drawIfNeeded(java.awt.Graphics2D g2, MapViewState mv)
g2
- graphicsmv
- MapView statepublic void checkAngleSnapping(EastNorth currentEN, double baseHeading, double curHeading)
currentEN
- Current positionbaseHeading
- The headingcurHeading
- The current mouse headingprivate void buildLabelText(double nearestAngle)
public EastNorth getSnapPoint(EastNorth p)
p
- The pointpublic void noSnapNow()
public void setBaseSegment(WaySegment seg)
private void enableSnapping()
private void toggleSnapping()
public void setFixedMode()
public void unsetFixedMode()
public boolean isActive()
public boolean isSnapOn()
private double getNearestAngle(double angle)
private double getAngleDelta(double a, double b)
private void unFixOrTurnOff()