Changeset 7621 in josm for trunk/src/org/openstreetmap/josm/data
- Timestamp:
- 2014-10-14T21:11:26+02:00 (11 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/data/osm
- Files:
-
- 2 edited
-
OsmPrimitive.java (modified) (2 diffs)
-
visitor/paint/StyledMapRenderer.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
r7330 r7621 590 590 } 591 591 592 /** 593 * Determines if this primitive is a member of a selected relation. 594 * @return {@code true} if this primitive is a member of a selected relation, {@code false} otherwise 595 */ 592 596 public boolean isMemberOfSelected() { 593 597 if (referrers == null) … … 598 602 if (ref instanceof Relation && ref.isSelected()) 599 603 return true; 604 } 605 return false; 606 } 607 608 /** 609 * Determines if this primitive is an outer member of a selected multipolygon relation. 610 * @return {@code true} if this primitive is an outer member of a selected multipolygon relation, {@code false} otherwise 611 * @since 7621 612 */ 613 public boolean isOuterMemberOfSelected() { 614 if (referrers == null) 615 return false; 616 if (referrers instanceof OsmPrimitive) { 617 return isOuterMemberOfMultipolygon((OsmPrimitive) referrers); 618 } 619 for (OsmPrimitive ref : (OsmPrimitive[]) referrers) { 620 if (isOuterMemberOfMultipolygon(ref)) 621 return true; 622 } 623 return false; 624 } 625 626 private boolean isOuterMemberOfMultipolygon(OsmPrimitive ref) { 627 if (ref instanceof Relation && ref.isSelected() && ((Relation)ref).isMultipolygon()) { 628 for (RelationMember rm : ((Relation)ref).getMembersFor(Collections.singleton(this))) { 629 if ("outer".equals(rm.getRole())) { 630 return true; 631 } 632 } 600 633 } 601 634 return false; -
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
r7555 r7621 291 291 private static final int FLAG_MEMBER_OF_SELECTED = 2; 292 292 private static final int FLAG_SELECTED = 4; 293 private static final int FLAG_OUTERMEMBER_OF_SELECTED = 8; 293 294 294 295 private static final double PHI = Math.toRadians(20); … … 1514 1515 } else if (w.isSelected()) { 1515 1516 add(w, FLAG_SELECTED); 1517 } else if (w.isOuterMemberOfSelected()) { 1518 add(w, FLAG_OUTERMEMBER_OF_SELECTED); 1516 1519 } else if (w.isMemberOfSelected()) { 1517 1520 add(w, FLAG_MEMBER_OF_SELECTED); … … 1527 1530 } else if (r.isSelected()) { 1528 1531 add(r, FLAG_SELECTED); 1532 } else if (r.isOuterMemberOfSelected()) { 1533 add(r, FLAG_OUTERMEMBER_OF_SELECTED); 1529 1534 } else if (r.isMemberOfSelected()) { 1530 1535 add(r, FLAG_MEMBER_OF_SELECTED); … … 1654 1659 StyledMapRenderer.this, 1655 1660 (r.flags & FLAG_SELECTED) != 0, 1661 (r.flags & FLAG_OUTERMEMBER_OF_SELECTED) != 0, 1656 1662 (r.flags & FLAG_MEMBER_OF_SELECTED) != 0 1657 1663 );
Note:
See TracChangeset
for help on using the changeset viewer.
