Changeset 12476 in josm for trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java
- Timestamp:
- 2017-07-13T23:02:13+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java
r12082 r12476 3 3 4 4 import java.awt.Rectangle; 5 import java.awt.geom.Point2D; 5 6 import java.awt.geom.Rectangle2D; 6 7 … … 20 21 * An instance of this class. 21 22 */ 22 public static final CompletelyInsideAreaStrategy INSTANCE = new CompletelyInsideAreaStrategy( );23 public static final CompletelyInsideAreaStrategy INSTANCE = new CompletelyInsideAreaStrategy(0, 0); 23 24 24 protected CompletelyInsideAreaStrategy() { 25 protected final double offsetX; 26 protected final double offsetY; 27 28 protected CompletelyInsideAreaStrategy(double offsetX, double offsetY) { 29 this.offsetX = offsetX; 30 this.offsetY = offsetY; 25 31 } 26 32 … … 89 95 } 90 96 91 private static MapViewPositionAndRotation centerOf(MapViewState mapViewState, Rectangle centeredNBounds) { 92 return new MapViewPositionAndRotation( 93 mapViewState.getForView(centeredNBounds.getCenterX(), centeredNBounds.getCenterY()), 0); 97 private MapViewPositionAndRotation centerOf(MapViewState mapViewState, Rectangle centeredNBounds) { 98 double x = centeredNBounds.getCenterX() + offsetX; 99 double y = centeredNBounds.getCenterY() + offsetY; 100 return new MapViewPositionAndRotation(mapViewState.getForView(x, y), 0); 94 101 } 95 102 … … 98 105 return false; 99 106 } 107 108 @Override 109 public PositionForAreaStrategy withAddedOffset(Point2D addToOffset) { 110 if (Math.abs(addToOffset.getX()) < 1e-5 && Math.abs(addToOffset.getY()) < 1e-5) { 111 return this; 112 } else { 113 return new CompletelyInsideAreaStrategy(offsetX + addToOffset.getX(), offsetY + addToOffset.getY()); 114 } 115 } 116 117 @Override 118 public String toString() { 119 return "CompletelyInsideAreaStrategy [offsetX=" + offsetX + ", offsetY=" + offsetY + "]"; 120 } 121 122 @Override 123 public int hashCode() { 124 final int prime = 31; 125 int result = 1; 126 long temp; 127 temp = Double.doubleToLongBits(offsetX); 128 result = prime * result + (int) (temp ^ (temp >>> 32)); 129 temp = Double.doubleToLongBits(offsetY); 130 result = prime * result + (int) (temp ^ (temp >>> 32)); 131 return result; 132 } 133 134 @Override 135 public boolean equals(Object obj) { 136 if (this == obj) { 137 return true; 138 } 139 if (obj == null) { 140 return false; 141 } 142 if (getClass() != obj.getClass()) { 143 return false; 144 } 145 CompletelyInsideAreaStrategy other = (CompletelyInsideAreaStrategy) obj; 146 return Double.doubleToLongBits(offsetX) == Double.doubleToLongBits(other.offsetX) 147 && Double.doubleToLongBits(offsetY) != Double.doubleToLongBits(other.offsetY); 148 } 100 149 }
Note:
See TracChangeset
for help on using the changeset viewer.