Changeset 13917 in josm for trunk/src/org/openstreetmap


Ignore:
Timestamp:
2018-06-11T03:14:29+02:00 (6 years ago)
Author:
Don-vip
Message:

rendering of IPrimitives

Location:
trunk/src/org/openstreetmap/josm/gui/mappaint
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java

    r13810 r13917  
    1212import java.util.Optional;
    1313
     14import org.openstreetmap.josm.data.osm.INode;
    1415import org.openstreetmap.josm.data.osm.IPrimitive;
    15 import org.openstreetmap.josm.data.osm.Node;
     16import org.openstreetmap.josm.data.osm.IRelation;
     17import org.openstreetmap.josm.data.osm.IWay;
    1618import org.openstreetmap.josm.data.osm.Relation;
    17 import org.openstreetmap.josm.data.osm.Way;
    1819import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
    1920import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
     
    157158        }
    158159        Pair<StyleElementList, Range> p = getImpl(osm, scale, nc);
    159         if (osm instanceof Node && isDefaultNodes()) {
     160        if (osm instanceof INode && isDefaultNodes()) {
    160161            if (p.a.isEmpty()) {
    161162                if (TextLabel.AUTO_LABEL_COMPOSITION_STRATEGY.compose(osm) != null) {
     
    183184                }
    184185            }
    185         } else if (osm instanceof Way && isDefaultLines()) {
     186        } else if (osm instanceof IWay && isDefaultLines()) {
    186187            boolean hasProperLineStyle = false;
    187188            for (StyleElement s : p.a) {
     
    235236     */
    236237    private Pair<StyleElementList, Range> getImpl(IPrimitive osm, double scale, NavigatableComponent nc) {
    237         if (osm instanceof Node)
     238        if (osm instanceof INode)
    238239            return generateStyles(osm, scale, false);
    239         else if (osm instanceof Way) {
     240        else if (osm instanceof IWay) {
    240241            Pair<StyleElementList, Range> p = generateStyles(osm, scale, false);
    241242
     
    245246            // FIXME: Maybe in the future outer way styles apply to outers ignoring the multipolygon?
    246247            for (IPrimitive referrer : osm.getReferrers()) {
    247                 Relation r = (Relation) referrer;
    248                 if (!drawMultipolygon || !r.isMultipolygon() || !r.isUsable()) {
     248                IRelation<?> r = (IRelation<?>) referrer;
     249                if (!drawMultipolygon || !r.isMultipolygon() || !r.isUsable() || !(r instanceof Relation)) {
    249250                    continue;
    250251                }
    251                 Multipolygon multipolygon = MultipolygonCache.getInstance().get(r);
     252                Multipolygon multipolygon = MultipolygonCache.getInstance().get((Relation) r);
    252253
    253254                if (multipolygon.getOuterWays().contains(osm)) {
     
    313314
    314315            for (IPrimitive referrer : osm.getReferrers()) {
    315                 Relation ref = (Relation) referrer;
    316                 if (!drawMultipolygon || !ref.isMultipolygon() || !ref.isUsable()) {
     316                IRelation<?> ref = (IRelation<?>) referrer;
     317                if (!drawMultipolygon || !ref.isMultipolygon() || !ref.isUsable() || !(ref instanceof Relation)) {
    317318                    continue;
    318319                }
    319                 final Multipolygon multipolygon = MultipolygonCache.getInstance().get(ref);
     320                final Multipolygon multipolygon = MultipolygonCache.getInstance().get((Relation) ref);
    320321
    321322                if (multipolygon.getInnerWays().contains(osm)) {
     
    346347            }
    347348            return p;
    348         } else if (osm instanceof Relation) {
     349        } else if (osm instanceof IRelation) {
    349350            return generateStyles(osm, scale, true);
    350351        }
     
    383384            }
    384385            env.layer = e.getKey();
    385             if (osm instanceof Way) {
     386            if (osm instanceof IWay) {
    386387                AreaElement areaStyle = AreaElement.create(env);
    387388                addIfNotNull(sl, areaStyle);
     
    397398                    addIfNotNull(sl, TextElement.createForContent(env));
    398399                }
    399             } else if (osm instanceof Node) {
     400            } else if (osm instanceof INode) {
    400401                NodeElement nodeStyle = NodeElement.create(env);
    401402                if (nodeStyle != null) {
     
    405406                    addIfNotNull(sl, BoxTextElement.create(env, NodeElement.SIMPLE_NODE_ELEMSTYLE_BOXPROVIDER));
    406407                }
    407             } else if (osm instanceof Relation) {
    408                 if (((Relation) osm).isMultipolygon()) {
     408            } else if (osm instanceof IRelation) {
     409                if (((IRelation<?>) osm).isMultipolygon()) {
    409410                    AreaElement areaStyle = AreaElement.create(env);
    410411                    addIfNotNull(sl, areaStyle);
  • trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java

    r13845 r13917  
    3030
    3131import org.openstreetmap.josm.data.Version;
     32import org.openstreetmap.josm.data.osm.INode;
    3233import org.openstreetmap.josm.data.osm.IPrimitive;
     34import org.openstreetmap.josm.data.osm.IRelation;
     35import org.openstreetmap.josm.data.osm.IWay;
    3336import org.openstreetmap.josm.data.osm.KeyValueVisitor;
    3437import org.openstreetmap.josm.data.osm.Node;
    3538import org.openstreetmap.josm.data.osm.OsmUtils;
    36 import org.openstreetmap.josm.data.osm.Relation;
    3739import org.openstreetmap.josm.data.osm.Tagged;
    38 import org.openstreetmap.josm.data.osm.Way;
    3940import org.openstreetmap.josm.data.preferences.sources.SourceEntry;
    4041import org.openstreetmap.josm.gui.mappaint.Cascade;
     
    647648    public void apply(MultiCascade mc, IPrimitive osm, double scale, boolean pretendWayIsClosed) {
    648649        MapCSSRuleIndex matchingRuleIndex;
    649         if (osm instanceof Node) {
     650        if (osm instanceof INode) {
    650651            matchingRuleIndex = nodeRules;
    651         } else if (osm instanceof Way) {
     652        } else if (osm instanceof IWay) {
    652653            if (OsmUtils.isFalse(osm.get("area"))) {
    653654                matchingRuleIndex = wayNoAreaRules;
     
    655656                matchingRuleIndex = wayRules;
    656657            }
    657         } else if (osm instanceof Relation) {
    658             if (((Relation) osm).isMultipolygon()) {
     658        } else if (osm instanceof IRelation) {
     659            if (((IRelation<?>) osm).isMultipolygon()) {
    659660                matchingRuleIndex = multipolygonRules;
    660661            } else if (osm.hasKey("#canvas")) {
Note: See TracChangeset for help on using the changeset viewer.