// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.JunctionChecker.junctionchecking; import org.openstreetmap.josm.plugins.JunctionChecker.datastructure.Channel; import org.openstreetmap.josm.plugins.JunctionChecker.datastructure.ChannelDiGraph; /** * Klasse für die Backpropagation * @author joerg */ public class BackPropagation { private final ChannelDiGraph digraph; public BackPropagation(ChannelDiGraph digraph) { this.digraph = digraph; } /** * * @param y fromNode * @param z toNode */ public void backPropagation(Channel y, Channel z, Channel zstrich) { for (int i = 0; i < z.getReachableNodes().size(); i++) { y.addReachableNode(z.getReachableNodeAt(i)); //z.appendChannelToPath(i, z); y.appendPath(z.getReachableNodeAt(i), z.getPathsAt(z.getReachableNodeAt(i))); y.appendPath(z.getReachableNodeAt(i), y.getPathsAt(z)); } for (int i = 0; i < y.getPredChannels().size(); i++) { if (zstrich != y.getPredChannels().get(i) && digraph.getLeadsTo( y.getPredChannels().get(i), y). isForwardEdge() ) { backPropagation(y.getPredChannels().get(i), y, zstrich); } } } }