Changeset 13810 in josm for trunk/src/org/openstreetmap/josm/data/osm
- Timestamp:
- 2018-05-21T20:42:27+02:00 (6 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
r13673 r13810 10 10 11 11 import org.openstreetmap.josm.data.osm.BBox; 12 import org.openstreetmap.josm.data.osm.DataSet;13 12 import org.openstreetmap.josm.data.osm.INode; 14 import org.openstreetmap.josm.data.osm. Node;15 import org.openstreetmap.josm.data.osm. Way;13 import org.openstreetmap.josm.data.osm.IWay; 14 import org.openstreetmap.josm.data.osm.OsmData; 16 15 import org.openstreetmap.josm.data.osm.WaySegment; 17 16 import org.openstreetmap.josm.gui.MapViewState; … … 127 126 * @param data The data set being rendered. 128 127 * @param bbox The bounding box being displayed. 129 */ 130 public void drawVirtualNodes(DataSet data, BBox bbox) { 128 * @since 13810 (signature) 129 */ 130 public void drawVirtualNodes(OsmData<?, ?, ?, ?> data, BBox bbox) { 131 131 if (virtualNodeSize == 0 || data == null || bbox == null || data.isLocked()) 132 132 return; 133 133 // print normal virtual nodes 134 134 GeneralPath path = new GeneralPath(); 135 for ( Wayosm : data.searchWays(bbox)) {135 for (IWay<?> osm : data.searchWays(bbox)) { 136 136 if (osm.isUsable() && !osm.isDisabledAndHidden() && !osm.isDisabled()) { 137 137 visitVirtual(path, osm); … … 222 222 * @param w The ways to draw node for. 223 223 * @since 10827 224 */ 225 public void visitVirtual(Path2D path, Way w) { 226 Iterator<Node> it = w.getNodes().iterator(); 224 * @since 13810 (signature) 225 */ 226 public void visitVirtual(Path2D path, IWay<?> w) { 227 Iterator<? extends INode> it = w.getNodes().iterator(); 227 228 MapViewPoint lastP = null; 228 229 while (it.hasNext()) { 229 Node n = it.next();230 INode n = it.next(); 230 231 if (n.isLatLonKnown()) { 231 232 MapViewPoint p = mapState.getPointFor(n); -
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/ComputeStyleListWorker.java
r12964 r13810 8 8 import java.util.concurrent.RecursiveTask; 9 9 10 import org.openstreetmap.josm.data.osm. Node;11 import org.openstreetmap.josm.data.osm. OsmPrimitive;12 import org.openstreetmap.josm.data.osm. Relation;13 import org.openstreetmap.josm.data.osm. Way;14 import org.openstreetmap.josm.data.osm.visitor. OsmPrimitiveVisitor;10 import org.openstreetmap.josm.data.osm.INode; 11 import org.openstreetmap.josm.data.osm.IPrimitive; 12 import org.openstreetmap.josm.data.osm.IRelation; 13 import org.openstreetmap.josm.data.osm.IWay; 14 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor; 15 15 import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.StyleRecord; 16 16 import org.openstreetmap.josm.gui.NavigatableComponent; … … 32 32 * @since 11914 (extracted from StyledMapRenderer) 33 33 */ 34 public class ComputeStyleListWorker extends RecursiveTask<List<StyleRecord>> implements OsmPrimitiveVisitor {35 private final transient List<? extends OsmPrimitive> input;34 public class ComputeStyleListWorker extends RecursiveTask<List<StyleRecord>> implements PrimitiveVisitor { 35 private final transient List<? extends IPrimitive> input; 36 36 private final transient List<StyleRecord> output; 37 37 … … 52 52 * @param output the list of styles to which styles will be added 53 53 * @param directExecutionTaskSize the threshold deciding whether to subdivide the tasks 54 * @since 13810 (signature) 54 55 */ 55 56 ComputeStyleListWorker(double circum, NavigatableComponent nc, 56 final List<? extends OsmPrimitive> input, List<StyleRecord> output, int directExecutionTaskSize) {57 final List<? extends IPrimitive> input, List<StyleRecord> output, int directExecutionTaskSize) { 57 58 this(circum, nc, input, output, directExecutionTaskSize, MapPaintStyles.getStyles()); 58 59 } … … 67 68 * @param styles the {@link ElemStyles} instance used to generate primitive {@link StyleElement}s. 68 69 * @since 12964 70 * @since 13810 (signature) 69 71 */ 70 72 ComputeStyleListWorker(double circum, NavigatableComponent nc, 71 final List<? extends OsmPrimitive> input, List<StyleRecord> output, int directExecutionTaskSize,73 final List<? extends IPrimitive> input, List<StyleRecord> output, int directExecutionTaskSize, 72 74 ElemStyles styles) { 73 75 this.circum = circum; … … 108 110 MapCSSStyleSource.STYLE_SOURCE_LOCK.readLock().lock(); 109 111 try { 110 for (final OsmPrimitive osm : input) {112 for (final IPrimitive osm : input) { 111 113 acceptDrawable(osm); 112 114 } … … 119 121 } 120 122 121 private void acceptDrawable(final OsmPrimitive osm) {123 private void acceptDrawable(final IPrimitive osm) { 122 124 try { 123 125 if (osm.isDrawable()) { … … 130 132 131 133 @Override 132 public void visit( Node n) {134 public void visit(INode n) { 133 135 add(n, StyledMapRenderer.computeFlags(n, false)); 134 136 } 135 137 136 138 @Override 137 public void visit( Wayw) {139 public void visit(IWay<?> w) { 138 140 add(w, StyledMapRenderer.computeFlags(w, true)); 139 141 } 140 142 141 143 @Override 142 public void visit( Relationr) {144 public void visit(IRelation<?> r) { 143 145 add(r, StyledMapRenderer.computeFlags(r, true)); 144 146 } … … 148 150 * @param osm node 149 151 * @param flags flags 152 * @since 13810 (signature) 150 153 */ 151 public void add( Node osm, int flags) {154 public void add(INode osm, int flags) { 152 155 StyleElementList sl = styles.get(osm, circum, nc); 153 156 for (StyleElement s : sl) { … … 160 163 * @param osm way 161 164 * @param flags flags 165 * @since 13810 (signature) 162 166 */ 163 public void add( Wayosm, int flags) {167 public void add(IWay<?> osm, int flags) { 164 168 StyleElementList sl = styles.get(osm, circum, nc); 165 169 for (StyleElement s : sl) { … … 174 178 * @param osm relation 175 179 * @param flags flags 180 * @since 13810 (signature) 176 181 */ 177 public void add( Relationosm, int flags) {182 public void add(IRelation<?> osm, int flags) { 178 183 StyleElementList sl = styles.get(osm, circum, nc); 179 184 for (StyleElement s : sl) { -
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/Rendering.java
r10600 r13810 3 3 4 4 import org.openstreetmap.josm.data.Bounds; 5 import org.openstreetmap.josm.data.osm. DataSet;5 import org.openstreetmap.josm.data.osm.OsmData; 6 6 7 7 /** 8 * <p>An object which can render data provided by a {@link DataSet}.</p>8 * <p>An object which can render data provided by a {@link OsmData}.</p> 9 9 * @since 4087 (creation) 10 10 * @since 10600 (functional interface) … … 19 19 * @param bbox the bounding box for the data to be rendered. Only objects within or intersecting 20 20 * with {@code bbox} are rendered 21 * @since 13810 (signature) 21 22 */ 22 void render( DataSetdata, boolean renderVirtualNodes, Bounds bbox);23 void render(OsmData<?, ?, ?, ?> data, boolean renderVirtualNodes, Bounds bbox); 23 24 } -
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
r13676 r13810 46 46 import org.openstreetmap.josm.data.coor.EastNorth; 47 47 import org.openstreetmap.josm.data.osm.BBox; 48 import org.openstreetmap.josm.data.osm.DataSet;49 48 import org.openstreetmap.josm.data.osm.INode; 50 49 import org.openstreetmap.josm.data.osm.IPrimitive; 50 import org.openstreetmap.josm.data.osm.IRelation; 51 import org.openstreetmap.josm.data.osm.IWay; 51 52 import org.openstreetmap.josm.data.osm.Node; 53 import org.openstreetmap.josm.data.osm.OsmData; 52 54 import org.openstreetmap.josm.data.osm.OsmPrimitive; 53 55 import org.openstreetmap.josm.data.osm.OsmUtils; … … 113 115 public static class StyleRecord implements Comparable<StyleRecord> { 114 116 private final StyleElement style; 115 private final OsmPrimitive osm;117 private final IPrimitive osm; 116 118 private final int flags; 117 119 private final long order; 118 120 119 StyleRecord(StyleElement style, OsmPrimitive osm, int flags) {121 StyleRecord(StyleElement style, IPrimitive osm, int flags) { 120 122 this.style = style; 121 123 this.osm = osm; … … 1587 1589 1588 1590 @Override 1589 public void render(final DataSetdata, boolean renderVirtualNodes, Bounds bounds) {1591 public void render(final OsmData<?, ?, ?, ?> data, boolean renderVirtualNodes, Bounds bounds) { 1590 1592 RenderBenchmarkCollector benchmark = benchmarkFactory.get(); 1591 1593 BBox bbox = bounds.toBBox(); … … 1607 1609 } 1608 1610 1609 private void paintWithLock(final DataSetdata, boolean renderVirtualNodes, RenderBenchmarkCollector benchmark,1611 private void paintWithLock(final OsmData<?, ?, ?, ?> data, boolean renderVirtualNodes, RenderBenchmarkCollector benchmark, 1610 1612 BBox bbox) { 1611 1613 try { … … 1614 1616 benchmark.renderStart(circum); 1615 1617 1616 List< Node> nodes = data.searchNodes(bbox);1617 List< Way> ways = data.searchWays(bbox);1618 List< Relation> relations = data.searchRelations(bbox);1618 List<? extends INode> nodes = data.searchNodes(bbox); 1619 List<? extends IWay<?>> ways = data.searchWays(bbox); 1620 List<? extends IRelation<?>> relations = data.searchRelations(bbox); 1619 1621 1620 1622 final List<StyleRecord> allStyleElems = new ArrayList<>(nodes.size()+ways.size()+relations.size()); -
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
r13673 r13810 18 18 import org.openstreetmap.josm.data.Bounds; 19 19 import org.openstreetmap.josm.data.osm.BBox; 20 import org.openstreetmap.josm.data.osm.DataSet;21 20 import org.openstreetmap.josm.data.osm.INode; 22 import org.openstreetmap.josm.data.osm. Node;23 import org.openstreetmap.josm.data.osm. OsmPrimitive;24 import org.openstreetmap.josm.data.osm. Relation;25 import org.openstreetmap.josm.data.osm. RelationMember;26 import org.openstreetmap.josm.data.osm. Way;21 import org.openstreetmap.josm.data.osm.IPrimitive; 22 import org.openstreetmap.josm.data.osm.IRelation; 23 import org.openstreetmap.josm.data.osm.IRelationMember; 24 import org.openstreetmap.josm.data.osm.IWay; 25 import org.openstreetmap.josm.data.osm.OsmData; 27 26 import org.openstreetmap.josm.data.osm.WaySegment; 28 import org.openstreetmap.josm.data.osm.visitor. OsmPrimitiveVisitor;27 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor; 29 28 import org.openstreetmap.josm.gui.MapViewState.MapViewPoint; 30 29 import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle; … … 39 38 * @since 23 40 39 */ 41 public class WireframeMapRenderer extends AbstractMapRenderer implements OsmPrimitiveVisitor {40 public class WireframeMapRenderer extends AbstractMapRenderer implements PrimitiveVisitor { 42 41 43 42 /** Color Preference for ways not matching any other group */ … … 84 83 /** Path store to draw subsequent segments of same color as one <code>Path</code>. */ 85 84 protected MapPath2D currentPath = new MapPath2D(); 86 /**87 * <code>DataSet</code> passed to the @{link render} function to overcome the argument88 * limitations of @{link Visitor} interface. Only valid until end of rendering call.89 */90 private DataSet ds;91 85 92 86 /** Helper variable for {@link #drawSegment} */ 93 87 private static final ArrowPaintHelper ARROW_PAINT_HELPER = new ArrowPaintHelper(Utils.toRadians(20), 10); 94 88 95 /** Helper variable for {@link #visit( Relation)} */89 /** Helper variable for {@link #visit(IRelation)} */ 96 90 private final Stroke relatedWayStroke = new BasicStroke( 97 91 4, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL); … … 153 147 154 148 @Override 155 public void render( DataSetdata, boolean virtual, Bounds bounds) {149 public void render(OsmData<?, ?, ?, ?> data, boolean virtual, Bounds bounds) { 156 150 BBox bbox = bounds.toBBox(); 157 this.ds = data;158 151 Rectangle clip = g.getClipBounds(); 159 152 clip.grow(50, 50); … … 161 154 getSettings(virtual); 162 155 163 for (final Relationrel : data.searchRelations(bbox)) {164 if (rel.isDrawable() && ! ds.isSelected(rel) && !rel.isDisabledAndHidden()) {156 for (final IRelation<?> rel : data.searchRelations(bbox)) { 157 if (rel.isDrawable() && !rel.isSelected() && !rel.isDisabledAndHidden()) { 165 158 rel.accept(this); 166 159 } … … 168 161 169 162 // draw tagged ways first, then untagged ways, then highlighted ways 170 List< Way> highlightedWays = new ArrayList<>();171 List< Way> untaggedWays = new ArrayList<>();172 173 for (final Wayway : data.searchWays(bbox)) {174 if (way.isDrawable() && ! ds.isSelected(way) && !way.isDisabledAndHidden()) {163 List<IWay<?>> highlightedWays = new ArrayList<>(); 164 List<IWay<?>> untaggedWays = new ArrayList<>(); 165 166 for (final IWay<?> way : data.searchWays(bbox)) { 167 if (way.isDrawable() && !way.isSelected() && !way.isDisabledAndHidden()) { 175 168 if (way.isHighlighted()) { 176 169 highlightedWays.add(way); … … 185 178 186 179 // Display highlighted ways after the other ones (fix #8276) 187 List< Way> specialWays = new ArrayList<>(untaggedWays);180 List<IWay<?>> specialWays = new ArrayList<>(untaggedWays); 188 181 specialWays.addAll(highlightedWays); 189 for (final Wayway : specialWays) {182 for (final IWay<?> way : specialWays) { 190 183 way.accept(this); 191 184 } … … 193 186 displaySegments(); 194 187 195 for (final OsmPrimitive osm : data.getSelected()) {188 for (final IPrimitive osm : data.getSelected()) { 196 189 if (osm.isDrawable()) { 197 190 osm.accept(this); … … 200 193 displaySegments(); 201 194 202 for (final OsmPrimitive osm: data.searchNodes(bbox)) {203 if (osm.isDrawable() && ! ds.isSelected(osm) && !osm.isDisabledAndHidden()) {195 for (final INode osm: data.searchNodes(bbox)) { 196 if (osm.isDrawable() && !osm.isSelected() && !osm.isDisabledAndHidden()) { 204 197 osm.accept(this); 205 198 } … … 237 230 */ 238 231 @Override 239 public void visit( Node n) {232 public void visit(INode n) { 240 233 if (n.isIncomplete()) return; 241 234 … … 265 258 } 266 259 267 final int size = max( ds.isSelected(n) ? selectedNodeSize : 0,260 final int size = max(n.isSelected() ? selectedNodeSize : 0, 268 261 isNodeTagged(n) ? taggedNodeSize : 0, 269 262 n.isConnectionNode() ? connectionNodeSize : 0, 270 263 unselectedNodeSize); 271 264 272 final boolean fill = ( ds.isSelected(n) && fillSelectedNode) ||265 final boolean fill = (n.isSelected() && fillSelectedNode) || 273 266 (isNodeTagged(n) && fillTaggedNode) || 274 267 (n.isConnectionNode() && fillConnectionNode) || … … 279 272 } 280 273 281 private static boolean isNodeTagged( Node n) {274 private static boolean isNodeTagged(INode n) { 282 275 return n.isTagged() || n.isAnnotated(); 283 276 } … … 288 281 */ 289 282 @Override 290 public void visit( Wayw) {283 public void visit(IWay<?> w) { 291 284 if (w.isIncomplete() || w.getNodesCount() < 2) 292 285 return; … … 295 288 (even if the tag is negated as in oneway=false) or the way is selected */ 296 289 297 boolean showThisDirectionArrow = ds.isSelected(w) || showDirectionArrow;290 boolean showThisDirectionArrow = w.isSelected() || showDirectionArrow; 298 291 /* head only takes over control if the option is true, 299 292 the direction should be shown at all and not only because it's selected */ 300 boolean showOnlyHeadArrowOnly = showThisDirectionArrow && showHeadArrowOnly && ! ds.isSelected(w);293 boolean showOnlyHeadArrowOnly = showThisDirectionArrow && showHeadArrowOnly && !w.isSelected(); 301 294 Color wayColor; 302 295 … … 315 308 } 316 309 317 Iterator< Node> it = w.getNodes().iterator();310 Iterator<? extends INode> it = w.getNodes().iterator(); 318 311 if (it.hasNext()) { 319 312 MapViewPoint lastP = mapState.getPointFor(it.next()); … … 340 333 */ 341 334 @Override 342 public void visit( Relationr) {335 public void visit(IRelation<?> r) { 343 336 if (r.isIncomplete()) return; 344 337 … … 355 348 g.setColor(col); 356 349 357 for ( RelationMemberm : r.getMembers()) {350 for (IRelationMember<?> m : r.getMembers()) { 358 351 if (m.getMember().isIncomplete() || !m.getMember().isDrawable()) { 359 352 continue; … … 361 354 362 355 if (m.isNode()) { 363 MapViewPoint p = mapState.getPointFor( m.getNode());356 MapViewPoint p = mapState.getPointFor((INode) m.getMember()); 364 357 if (p.isInView()) { 365 358 g.draw(new Ellipse2D.Double(p.getInViewX()-4, p.getInViewY()-4, 9, 9)); … … 370 363 371 364 boolean first = true; 372 for ( Node n : m.getWay().getNodes()) {365 for (INode n : ((IWay<?>) m.getMember()).getNodes()) { 373 366 if (!n.isDrawable()) { 374 367 continue;
Note:
See TracChangeset
for help on using the changeset viewer.