Ignore:
Timestamp:
2010-03-09T22:02:00+01:00 (14 years ago)
Author:
pieren
Message:

Many small fixes and improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/SimplifyWay.java

    r19078 r20390  
    33
    44import java.util.ArrayList;
    5 
    6 import java.util.Collection;
    7 import java.util.Collections;
    8 import java.util.HashSet;
    9 import java.util.LinkedList;
    105import java.util.List;
    116
    12 import org.openstreetmap.josm.Main;
    13 import org.openstreetmap.josm.command.ChangeCommand;
    14 import org.openstreetmap.josm.command.Command;
    15 import org.openstreetmap.josm.command.DeleteCommand;
    16 import org.openstreetmap.josm.command.SequenceCommand;
    17 import org.openstreetmap.josm.data.osm.DataSet;
    187import org.openstreetmap.josm.data.osm.Node;
    19 import org.openstreetmap.josm.data.osm.OsmPrimitive;
    208import org.openstreetmap.josm.data.osm.Way;
    21 import static org.openstreetmap.josm.tools.I18n.trn;
    22 
    23  
    249
    2510/**
     
    2914 */
    3015public class SimplifyWay {
    31     public void simplifyWay(Way w, DataSet dataSet, double threshold) {
     16    public void simplifyWay(Way w/*, DataSet dataSet*/, double threshold) {
    3217        Way wnew = new Way(w);
    3318
    34         int toI = wnew.getNodesCount() - 1;
    35         List<OsmPrimitive> parents = new ArrayList<OsmPrimitive>();
    36         for (int i = wnew.getNodesCount() - 1; i >= 0; i--) {
    37             //CollectBackReferencesVisitor backRefsV = new CollectBackReferencesVisitor(dataSet, false);
    38             //backRefsV.visit(wnew.getNode(i));
    39            parents.addAll(w.getNode(i).getReferrers());
    40             boolean used = false;
    41             if (parents.size() == 1) {
    42                 used = Collections.frequency(w.getNodes(), wnew.getNode(i)) > 1;
    43             } else {
    44                 //backRefsV.getData().remove(w);
    45                 parents.remove(w);
    46                 used = !parents.isEmpty();
    47             }
    48             if (!used)
    49                 used = wnew.getNode(i).isTagged();
     19//        int toI = wnew.getNodesCount() - 1;
     20//        List<OsmPrimitive> parents = new ArrayList<OsmPrimitive>();
     21//        for (int i = wnew.getNodesCount() - 1; i >= 0; i--) {
     22//            //CollectBackReferencesVisitor backRefsV = new CollectBackReferencesVisitor(dataSet, false);
     23//            //backRefsV.visit(wnew.getNode(i));
     24//           parents.addAll(w.getNode(i).getReferrers());
     25//            boolean used = false;
     26//            if (parents.size() == 1) {
     27//                used = Collections.frequency(w.getNodes(), wnew.getNode(i)) > 1;
     28//            } else {
     29//                //backRefsV.getData().remove(w);
     30//                parents.remove(w);
     31//                used = !parents.isEmpty();
     32//            }
     33//            if (!used)
     34//                used = wnew.getNode(i).isTagged();
     35//
     36//            if (used) {
     37//                simplifyWayRange(wnew, i, toI, threshold);
     38//                toI = i;
     39//            }
     40//        }
     41        simplifyWayRange(wnew, 0, wnew.getNodesCount() - 1, threshold);
     42        w.setNodes(wnew.getNodes());
     43//        HashSet<Node> delNodes = new HashSet<Node>();
     44//        delNodes.addAll(w.getNodes());
     45//        delNodes.removeAll(wnew.getNodes());
    5046
    51             if (used) {
    52                 simplifyWayRange(wnew, i, toI, threshold);
    53                 toI = i;
    54             }
    55         }
    56         simplifyWayRange(wnew, 0, toI, threshold);
    57 
    58         HashSet<Node> delNodes = new HashSet<Node>();
    59         delNodes.addAll(w.getNodes());
    60         delNodes.removeAll(wnew.getNodes());
    61 
    62         if (wnew.getNodesCount() != w.getNodesCount()) {
    63             Collection<Command> cmds = new LinkedList<Command>();
    64             cmds.add(new ChangeCommand(w, wnew));
    65             cmds.add(new DeleteCommand(delNodes));
    66             Main.main.undoRedo.add(new SequenceCommand(trn("Simplify Way (remove {0} node)", "Simplify Way (remove {0} nodes)", delNodes.size(), delNodes.size()), cmds));
    67             Main.map.repaint();
    68         }
     47//        if (wnew.getNodesCount() != w.getNodesCount()) {
     48//            Collection<Command> cmds = new LinkedList<Command>();
     49//            cmds.add(new ChangeCommand(w, wnew));
     50//            cmds.add(new DeleteCommand(delNodes));
     51//            Main.main.undoRedo.add(new SequenceCommand(trn("Simplify Way (remove {0} node)", "Simplify Way (remove {0} nodes)", delNodes.size(), delNodes.size()), cmds));
     52//            Main.map.repaint();
     53//        }
    6954    }
    7055
Note: See TracChangeset for help on using the changeset viewer.