|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.swing.AbstractAction
org.openstreetmap.josm.actions.JosmAction
org.openstreetmap.josm.actions.OrthogonalizeAction
public final class OrthogonalizeAction
Tools / Orthogonalize Align edges of a way so all angles are angles of 90 or 180 degrees. See USAGE String below.
Nested Class Summary | |
---|---|
private static class |
OrthogonalizeAction.Direction
|
private static class |
OrthogonalizeAction.EN
Class contains some auxiliary functions |
private static class |
OrthogonalizeAction.InvalidUserInputException
Exception: unsuited user input |
private static class |
OrthogonalizeAction.RejectedAngleException
Exception: angle cannot be recognized as 0, 90, 180 or 270 degrees |
static class |
OrthogonalizeAction.Undo
Undo the previous orthogonalization for certain nodes. |
private static class |
OrthogonalizeAction.WayData
Class contains everything we need to know about a singe way. |
Field Summary | |
---|---|
private static java.util.HashMap<Node,EastNorth> |
rememberMovements
Remember movements, so the user can later undo it for certain nodes |
private static double |
TOLERANCE1
excepted deviation from an angle of 0, 90, 180, 360 degrees maximum value: 45 degrees Current policy is to except just everything, no matter how strange the result would be. |
private static double |
TOLERANCE2
|
private java.lang.String |
USAGE
|
Fields inherited from class org.openstreetmap.josm.actions.JosmAction |
---|
sc |
Fields inherited from class javax.swing.AbstractAction |
---|
changeSupport, enabled |
Fields inherited from interface javax.swing.Action |
---|
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON |
Constructor Summary | |
---|---|
OrthogonalizeAction()
|
Method Summary | |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent e)
|
private static int |
angleToDirectionChange(double a,
double deltaMax)
Recognize angle to be approximately 0, 90, 180 or 270 degrees. |
private static java.util.List<java.util.ArrayList<OrthogonalizeAction.WayData>> |
buildGroups(java.util.ArrayList<OrthogonalizeAction.WayData> wayDataList)
Collect groups of ways with common nodes in order to orthogonalize each group separately. |
private static void |
extendGroupRec(java.util.List<OrthogonalizeAction.WayData> group,
OrthogonalizeAction.WayData newGroupMember,
java.util.List<OrthogonalizeAction.WayData> remaining)
|
private static java.util.Collection<Command> |
orthogonalize(java.util.ArrayList<OrthogonalizeAction.WayData> wayDataList,
java.util.ArrayList<Node> headingNodes)
Outline: 1. |
private static double |
standard_angle_0_to_2PI(double a)
Make sure angle (up to 2*Pi) is in interval [ 0, 2*Pi ). |
private static double |
standard_angle_mPI_to_PI(double a)
Make sure angle (up to 2*Pi) is in interval ( -Pi, Pi ]. |
protected void |
updateEnabledState()
Don't check, if the current selection is suited for orthogonalization. |
Methods inherited from class org.openstreetmap.josm.actions.JosmAction |
---|
destroy, getCurrentDataSet, getEditLayer, getShortcut, initEnabledState, installAdapters, setTooltip, updateEnabledState |
Methods inherited from class javax.swing.AbstractAction |
---|
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.lang.String USAGE
private static final double TOLERANCE1
private static final double TOLERANCE2
private static final java.util.HashMap<Node,EastNorth> rememberMovements
Constructor Detail |
---|
public OrthogonalizeAction()
Method Detail |
---|
public void actionPerformed(java.awt.event.ActionEvent e)
private static java.util.List<java.util.ArrayList<OrthogonalizeAction.WayData>> buildGroups(java.util.ArrayList<OrthogonalizeAction.WayData> wayDataList)
private static void extendGroupRec(java.util.List<OrthogonalizeAction.WayData> group, OrthogonalizeAction.WayData newGroupMember, java.util.List<OrthogonalizeAction.WayData> remaining)
private static java.util.Collection<Command> orthogonalize(java.util.ArrayList<OrthogonalizeAction.WayData> wayDataList, java.util.ArrayList<Node> headingNodes) throws OrthogonalizeAction.InvalidUserInputException
OrthogonalizeAction.InvalidUserInputException
private static double standard_angle_0_to_2PI(double a)
private static double standard_angle_mPI_to_PI(double a)
private static int angleToDirectionChange(double a, double deltaMax) throws OrthogonalizeAction.RejectedAngleException
OrthogonalizeAction.RejectedAngleException
protected void updateEnabledState()
updateEnabledState
in class JosmAction
JosmAction.updateEnabledState(Collection)
,
JosmAction.initEnabledState()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |