class DrawSnapHelper extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
DrawSnapHelper.AnglePopupMenu |
private static class |
DrawSnapHelper.DisableAction |
private static class |
DrawSnapHelper.HelperAction |
private static class |
DrawSnapHelper.ProjectionAction |
private static class |
DrawSnapHelper.RepeatedAction |
private static class |
DrawSnapHelper.Snap30DegreesAction |
private static class |
DrawSnapHelper.Snap45DegreesAction |
private static class |
DrawSnapHelper.Snap90DegreesAction |
Modifier and Type | Field and Description |
---|---|
private boolean |
absoluteFix |
private boolean |
active |
(package private) java.awt.event.MouseListener |
anglePopupListener |
private javax.swing.JCheckBoxMenuItem |
checkBox |
private double |
customBaseHeading |
(package private) EastNorth |
dir2 |
private static java.lang.String |
DRAW_ANGLESNAP_ANGLES |
private DrawAction |
drawAction |
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 |
Constructor and Description |
---|
DrawSnapHelper(DrawAction drawAction)
Constructs a new
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.
|
(package private) void |
enableSnapping()
Enable snapping.
|
private static 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
|
(package private) boolean |
isActive() |
(package private) boolean |
isSnapOn() |
(package private) void |
noSnapNow()
Disables snapping
|
private static double |
parseSnapAngle(java.lang.String string) |
void |
saveAngles(java.lang.String... angles)
Save the snap angles
|
(package private) void |
setBaseSegment(WaySegment seg) |
(package private) void |
setFixedMode() |
void |
setMenuCheckBox(javax.swing.JCheckBoxMenuItem checkBox)
Sets the menu checkbox.
|
(package private) void |
toggleSnapping() |
(package private) void |
unFixOrTurnOff() |
(package private) void |
unsetFixedMode() |
private final DrawAction drawAction
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
final java.awt.event.MouseListener anglePopupListener
DrawSnapHelper(DrawAction drawAction)
SnapHelper
.drawAction
- enclosing DrawActionpublic void init()
private void computeSnapAngles()
private static double parseSnapAngle(java.lang.String string)
public void saveAngles(java.lang.String... angles)
angles
- The anglespublic void setMenuCheckBox(javax.swing.JCheckBoxMenuItem checkBox)
checkBox
- menu checkboxpublic 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 pointvoid noSnapNow()
void setBaseSegment(WaySegment seg)
void enableSnapping()
void toggleSnapping()
void setFixedMode()
void unsetFixedMode()
boolean isActive()
boolean isSnapOn()
private double getNearestAngle(double angle)
private static double getAngleDelta(double a, double b)
void unFixOrTurnOff()