Changeset 16115 in josm


Ignore:
Timestamp:
2020-03-12T10:41:12+01:00 (19 months ago)
Author:
GerdP
Message:

see #18861: simplify code, no functional change intended

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java

    r15182 r16115  
    591591        int left = waysToJoin.size();
    592592        while (left > 0) {
    593             Way w = null;
    594593            boolean selected = false;
    595594            List<Node> nodes = null;
     
    599598                joined = false;
    600599                for (int i = 0; i < joinArray.length && left != 0; ++i) {
    601                     if (joinArray[i] != null) {
    602                         Way c = joinArray[i];
    603                         if (c.getNodesCount() == 0) {
    604                             continue;
    605                         }
    606                         if (w == null) {
    607                             w = c;
    608                             selected = w.isSelected();
     600                    Way c = joinArray[i];
     601                    if (c != null && c.getNodesCount() > 0) {
     602                        if (nodes == null) {
     603                            // new ring
     604                            selected = c.isSelected();
    609605                            joinArray[i] = null;
    610606                            --left;
     607                            nodes = new ArrayList<>(c.getNodes());
     608                            wayIds.add(c.getUniqueId());
    611609                        } else {
     610                            int cl = c.getNodesCount() - 1;
     611                            int nl = nodes.size() - 1;
    612612                            int mode = 0;
    613                             int cl = c.getNodesCount()-1;
    614                             int nl;
    615                             if (nodes == null) {
    616                                 nl = w.getNodesCount()-1;
    617                                 if (w.getNode(nl) == c.getNode(0)) {
    618                                     mode = 21;
    619                                 } else if (w.getNode(nl) == c.getNode(cl)) {
    620                                     mode = 22;
    621                                 } else if (w.getNode(0) == c.getNode(0)) {
    622                                     mode = 11;
    623                                 } else if (w.getNode(0) == c.getNode(cl)) {
    624                                     mode = 12;
    625                                 }
    626                             } else {
    627                                 nl = nodes.size()-1;
    628                                 if (nodes.get(nl) == c.getNode(0)) {
    629                                     mode = 21;
    630                                 } else if (nodes.get(0) == c.getNode(cl)) {
    631                                     mode = 12;
    632                                 } else if (nodes.get(0) == c.getNode(0)) {
    633                                     mode = 11;
    634                                 } else if (nodes.get(nl) == c.getNode(cl)) {
    635                                     mode = 22;
    636                                 }
     613                            if (nodes.get(nl) == c.getNode(0)) {
     614                                mode = 21;
     615                            } else if (nodes.get(0) == c.getNode(cl)) {
     616                                mode = 12;
     617                            } else if (nodes.get(0) == c.getNode(0)) {
     618                                mode = 11;
     619                            } else if (nodes.get(nl) == c.getNode(cl)) {
     620                                mode = 22;
    637621                            }
    638622                            if (mode != 0) {
     623                                // found a connection
    639624                                joinArray[i] = null;
    640625                                joined = true;
     
    643628                                }
    644629                                --left;
    645                                 if (nodes == null) {
    646                                     nodes = new ArrayList<>(w.getNodes());
    647                                     wayIds.add(w.getUniqueId());
    648                                 }
    649630                                if (mode == 21) {
    650631                                    nodes.addAll(c.getNodes().subList(1, cl + 1));
     
    667648            }
    668649
    669             if (nodes == null && w != null) {
    670                 nodes = w.getNodes();
    671                 wayIds.add(w.getUniqueId());
    672             }
    673 
    674650            if (nodes != null) {
    675651                result.add(new JoinedWay(nodes, wayIds, selected));
Note: See TracChangeset for help on using the changeset viewer.