Skip to content

Commit 79d82a5

Browse files
author
Peter
committed
removed EdgeLevelFilterOld
1 parent 229b8ac commit 79d82a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+217
-386
lines changed

src/main/java/com/graphhopper/GHRequest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
*/
1919
package com.graphhopper;
2020

21-
import com.graphhopper.routing.util.CarFlagsEncoder;
22-
import com.graphhopper.routing.util.VehicleType;
21+
import com.graphhopper.routing.util.CarFlagEncoder;
22+
import com.graphhopper.routing.util.VehicleFlagEncoder;
2323
import com.graphhopper.routing.util.ShortestCalc;
2424
import com.graphhopper.routing.util.WeightCalculation;
2525
import com.graphhopper.util.shapes.GHPoint;
@@ -35,7 +35,7 @@ public class GHRequest {
3535
private GHPoint from;
3636
private GHPoint to;
3737
private double precision = 1;
38-
private VehicleType encoder = new CarFlagsEncoder();
38+
private VehicleFlagEncoder encoder = new CarFlagEncoder();
3939
private WeightCalculation weightCalc = new ShortestCalc();
4040

4141
/**
@@ -112,12 +112,12 @@ public WeightCalculation type() {
112112
return weightCalc;
113113
}
114114

115-
public GHRequest vehicle(VehicleType encoder) {
115+
public GHRequest vehicle(VehicleFlagEncoder encoder) {
116116
this.encoder = encoder;
117117
return this;
118118
}
119119

120-
public VehicleType vehicle() {
120+
public VehicleFlagEncoder vehicle() {
121121
return encoder;
122122
}
123123
}

src/main/java/com/graphhopper/GraphHopper.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
import com.graphhopper.routing.ch.PrepareContractionHierarchies;
2525
import com.graphhopper.routing.util.AcceptWay;
2626
import com.graphhopper.routing.util.AlgorithmPreparation;
27-
import com.graphhopper.routing.util.CarFlagsEncoder;
27+
import com.graphhopper.routing.util.CarFlagEncoder;
2828
import com.graphhopper.routing.util.FastestCalc;
29-
import com.graphhopper.routing.util.VehicleType;
30-
import com.graphhopper.routing.util.FootFlagsEncoder;
29+
import com.graphhopper.routing.util.VehicleFlagEncoder;
30+
import com.graphhopper.routing.util.FootFlagEncoder;
3131
import com.graphhopper.routing.util.NoOpAlgorithmPreparation;
3232
import com.graphhopper.routing.util.ShortestCalc;
3333
import com.graphhopper.storage.Directory;
@@ -173,11 +173,11 @@ else if (new File(graphHopperFile + ".osm").exists())
173173
storage = new LevelGraphStorage(dir);
174174
PrepareContractionHierarchies tmpPrepareCH = new PrepareContractionHierarchies();
175175

176-
VehicleType encoder;
176+
VehicleFlagEncoder encoder;
177177
if (acceptWay.acceptsCar())
178-
encoder = new CarFlagsEncoder();
178+
encoder = new CarFlagEncoder();
179179
else
180-
encoder = new FootFlagsEncoder();
180+
encoder = new FootFlagEncoder();
181181
if (chFast) {
182182
tmpPrepareCH.type(new FastestCalc(encoder)).vehicle(encoder);
183183
} else {

src/main/java/com/graphhopper/reader/OSMReader.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import com.graphhopper.routing.util.AlgorithmPreparation;
2323
import com.graphhopper.routing.util.FastestCalc;
2424
import com.graphhopper.routing.ch.PrepareContractionHierarchies;
25-
import com.graphhopper.routing.util.CarFlagsEncoder;
26-
import com.graphhopper.routing.util.VehicleType;
25+
import com.graphhopper.routing.util.CarFlagEncoder;
26+
import com.graphhopper.routing.util.VehicleFlagEncoder;
2727
import com.graphhopper.routing.util.NoOpAlgorithmPreparation;
2828
import com.graphhopper.routing.util.PrepareRoutingSubnetworks;
2929
import com.graphhopper.routing.util.RoutingAlgorithmSpecialAreaTests;
@@ -376,7 +376,7 @@ public OSMReader setCHShortcuts(String chShortcuts) {
376376
if (chShortcuts.isEmpty() || "no".equals(chShortcuts) || "false".equals(chShortcuts))
377377
return this;
378378

379-
VehicleType encoder = new CarFlagsEncoder();
379+
VehicleFlagEncoder encoder = new CarFlagEncoder();
380380
int tmpIndex = chShortcuts.indexOf(",");
381381
if (tmpIndex >= 0)
382382
encoder = Helper.getEncoder(chShortcuts.substring(tmpIndex + 1).trim());

src/main/java/com/graphhopper/routing/AStar.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,10 @@ public AStar approximation(boolean approx) {
7373
AStarEdge currEdge = fromEntry;
7474
while (true) {
7575
int currVertex = currEdge.endNode;
76-
EdgeIterator iter = getNeighbors(currVertex);
76+
EdgeIterator iter = neighbors(currVertex);
7777
while (iter.next()) {
78+
if (!accept(iter))
79+
continue;
7880
int neighborNode = iter.node();
7981
if (closedSet.contains(neighborNode))
8082
continue;
@@ -106,7 +108,7 @@ public AStar approximation(boolean approx) {
106108
if (finished(currEdge, to))
107109
break;
108110
if (prioQueueOpenSet.isEmpty())
109-
return new Path(graph, flagsEncoder);
111+
return new Path(graph, flagEncoder);
110112

111113
currEdge = prioQueueOpenSet.poll();
112114
if (currEdge == null)
@@ -125,12 +127,8 @@ public int calcVisitedNodes() {
125127
return closedSet.cardinality();
126128
}
127129

128-
protected EdgeIterator getNeighbors(int node) {
129-
return graph.getEdges(node, outEdgeFilter);
130-
}
131-
132130
Path extractPath(EdgeEntry currEdge) {
133-
return new Path(graph, flagsEncoder).edgeEntry(currEdge).extract();
131+
return new Path(graph, flagEncoder).edgeEntry(currEdge).extract();
134132
}
135133

136134
public static class AStarEdge extends EdgeEntry {

src/main/java/com/graphhopper/routing/AStarBidirection.java

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,10 @@
2222
import com.graphhopper.coll.MyBitSetImpl;
2323
import com.graphhopper.routing.AStar.AStarEdge;
2424
import com.graphhopper.routing.util.EdgeFilter;
25-
import com.graphhopper.routing.util.EdgeLevelFilterOld;
2625
import com.graphhopper.storage.Graph;
2726
import com.graphhopper.util.DistanceCalc;
2827
import com.graphhopper.util.DistancePlaneProjection;
2928
import com.graphhopper.util.EdgeIterator;
30-
import com.graphhopper.util.GHUtility;
3129
import com.graphhopper.util.shapes.CoordTrig;
3230
import gnu.trove.map.TIntObjectMap;
3331
import gnu.trove.map.hash.TIntObjectHashMap;
@@ -75,7 +73,6 @@ public class AStarBidirection extends AbstractRoutingAlgorithm {
7573
protected AStarEdge currFrom;
7674
protected AStarEdge currTo;
7775
private TIntObjectMap<AStarEdge> shortestWeightMapOther;
78-
private EdgeLevelFilterOld edgeFilter;
7976
public PathBidirRef shortest;
8077
private CoordTrig fromCoord;
8178
private CoordTrig toCoord;
@@ -122,15 +119,6 @@ public AStarBidirection approximationFactor(double approxFactor) {
122119
return this;
123120
}
124121

125-
public RoutingAlgorithm edgeFilter(EdgeLevelFilterOld edgeFilter) {
126-
this.edgeFilter = edgeFilter;
127-
return this;
128-
}
129-
130-
public EdgeLevelFilterOld edgeFilter() {
131-
return edgeFilter;
132-
}
133-
134122
public void initFrom(int from) {
135123
this.from = from;
136124
currFrom = new AStarEdge(-1, from, 0, 0);
@@ -149,12 +137,12 @@ public void initTo(int to) {
149137

150138
private Path checkIndenticalFromAndTo() {
151139
if (from == to)
152-
return new Path(graph, flagsEncoder);
140+
return new Path(graph, flagEncoder);
153141
return null;
154142
}
155143

156144
protected PathBidirRef createPath() {
157-
return new PathBidirRef(graph, flagsEncoder);
145+
return new PathBidirRef(graph, flagEncoder);
158146
}
159147

160148
public void initPath() {
@@ -246,10 +234,9 @@ private void fillEdges(AStarEdge curr, CoordTrig goal, MyBitSet closedSet,
246234

247235
int currNode = curr.endNode;
248236
EdgeIterator iter = graph.getEdges(currNode, filter);
249-
if (edgeFilter != null)
250-
iter = edgeFilter.doFilter(iter);
251-
252237
while (iter.next()) {
238+
if (!accept(iter))
239+
continue;
253240
int neighborNode = iter.node();
254241
if (closedSet.contains(neighborNode))
255242
continue;

src/main/java/com/graphhopper/routing/AbstractRoutingAlgorithm.java

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@
1818
*/
1919
package com.graphhopper.routing;
2020

21-
import com.graphhopper.routing.util.CarFlagsEncoder;
21+
import com.graphhopper.routing.util.CarFlagEncoder;
2222
import com.graphhopper.routing.util.DefaultEdgeFilter;
2323
import com.graphhopper.routing.util.EdgeFilter;
24-
import com.graphhopper.routing.util.VehicleType;
24+
import com.graphhopper.routing.util.VehicleFlagEncoder;
2525
import com.graphhopper.routing.util.ShortestCalc;
2626
import com.graphhopper.routing.util.WeightCalculation;
2727
import com.graphhopper.storage.EdgeEntry;
2828
import com.graphhopper.storage.Graph;
29+
import com.graphhopper.util.EdgeIterator;
2930

3031
/**
3132
* @author Peter Karich
@@ -36,26 +37,45 @@ public abstract class AbstractRoutingAlgorithm implements RoutingAlgorithm {
3637
protected WeightCalculation weightCalc;
3738
protected EdgeFilter outEdgeFilter;
3839
protected EdgeFilter inEdgeFilter;
39-
protected VehicleType flagsEncoder;
40+
protected VehicleFlagEncoder flagEncoder;
41+
private EdgeFilter additionalEdgeFilter;
4042

4143
public AbstractRoutingAlgorithm(Graph graph) {
4244
this.graph = graph;
43-
type(new ShortestCalc()).vehicle(new CarFlagsEncoder());
45+
this.additionalEdgeFilter = new EdgeFilter() {
46+
@Override public final boolean accept(EdgeIterator iter) {
47+
return true;
48+
}
49+
};
50+
type(new ShortestCalc()).vehicle(new CarFlagEncoder());
4451
}
4552

46-
@Override public RoutingAlgorithm vehicle(VehicleType encoder) {
47-
this.flagsEncoder = encoder;
53+
@Override public RoutingAlgorithm vehicle(VehicleFlagEncoder encoder) {
54+
this.flagEncoder = encoder;
4855
outEdgeFilter = new DefaultEdgeFilter(encoder, false, true);
4956
inEdgeFilter = new DefaultEdgeFilter(encoder, true, false);
5057
return this;
5158
}
5259

60+
public RoutingAlgorithm edgeFilter(EdgeFilter additionalEdgeFilter) {
61+
this.additionalEdgeFilter = additionalEdgeFilter;
62+
return this;
63+
}
64+
65+
protected boolean accept(EdgeIterator iter) {
66+
return additionalEdgeFilter.accept(iter);
67+
}
68+
69+
protected EdgeIterator neighbors(int neighborNode) {
70+
return graph.getEdges(neighborNode, outEdgeFilter);
71+
}
72+
5373
@Override public RoutingAlgorithm type(WeightCalculation wc) {
5474
this.weightCalc = wc;
5575
return this;
5676
}
5777

58-
protected void updateShortest(EdgeEntry shortestDE, int currLoc) {
78+
protected void updateShortest(EdgeEntry shortestDE, int currLoc) {
5979
}
6080

6181
@Override public String toString() {

src/main/java/com/graphhopper/routing/DijkstraBidirection.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ DijkstraBidirection initTo(int to) {
120120
}
121121

122122
void initPath() {
123-
shortest = new PathBidir(graph, flagsEncoder, wrapperFrom, wrapperTo);
123+
shortest = new PathBidir(graph, flagEncoder, wrapperFrom, wrapperTo);
124124
}
125125

126126
// http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf
@@ -136,6 +136,8 @@ void fillEdges(int currNode, double currWeight, int currRef, MyBitSet visitedMai
136136

137137
EdgeIterator iter = graph.getEdges(currNode, filter);
138138
while (iter.next()) {
139+
if (!accept(iter))
140+
continue;
139141
int neighborNode = iter.node();
140142
if (visitedMain.contains(neighborNode))
141143
continue;
@@ -212,7 +214,7 @@ public int calcVisitedNodes() {
212214

213215
private Path checkIndenticalFromAndTo() {
214216
if (from == to)
215-
return new Path(graph, flagsEncoder);
217+
return new Path(graph, flagEncoder);
216218
return null;
217219
}
218220

src/main/java/com/graphhopper/routing/DijkstraBidirectionRef.java

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.graphhopper.coll.MyBitSet;
2222
import com.graphhopper.coll.MyBitSetImpl;
2323
import com.graphhopper.routing.util.EdgeFilter;
24-
import com.graphhopper.routing.util.EdgeLevelFilterOld;
2524
import com.graphhopper.storage.EdgeEntry;
2625
import com.graphhopper.storage.Graph;
2726
import com.graphhopper.util.EdgeIterator;
@@ -52,11 +51,10 @@ public class DijkstraBidirectionRef extends AbstractRoutingAlgorithm {
5251
protected EdgeEntry currTo;
5352
protected TIntObjectMap<EdgeEntry> shortestWeightMapOther;
5453
public PathBidirRef shortest;
55-
private EdgeLevelFilterOld edgeFilter;
5654

5755
public DijkstraBidirectionRef(Graph graph) {
5856
super(graph);
59-
initCollections(Math.max(20, graph.nodes()));
57+
initCollections(Math.max(20, graph.nodes()));
6058
}
6159

6260
protected void initCollections(int nodes) {
@@ -69,15 +67,6 @@ protected void initCollections(int nodes) {
6967
shortestWeightMapTo = new TIntObjectHashMap<EdgeEntry>(nodes / 10);
7068
}
7169

72-
public RoutingAlgorithm edgeFilter(EdgeLevelFilterOld edgeFilter) {
73-
this.edgeFilter = edgeFilter;
74-
return this;
75-
}
76-
77-
protected EdgeLevelFilterOld edgeFilter() {
78-
return edgeFilter;
79-
}
80-
8170
void addSkipNode(int node) {
8271
visitedFrom.add(node);
8372
visitedTo.add(node);
@@ -146,10 +135,9 @@ void fillEdges(EdgeEntry curr, MyBitSet visitedMain, PriorityQueue<EdgeEntry> pr
146135

147136
int currNode = curr.endNode;
148137
EdgeIterator iter = graph.getEdges(currNode, filter);
149-
if (edgeFilter != null)
150-
iter = edgeFilter.doFilter(iter);
151-
152138
while (iter.next()) {
139+
if (!accept(iter))
140+
continue;
153141
int neighborNode = iter.node();
154142
if (visitedMain.contains(neighborNode))
155143
continue;
@@ -227,7 +215,7 @@ public boolean fillEdgesTo() {
227215

228216
private Path checkIndenticalFromAndTo() {
229217
if (from == to)
230-
return new Path(graph, flagsEncoder);
218+
return new Path(graph, flagEncoder);
231219
return null;
232220
}
233221

@@ -240,7 +228,7 @@ public EdgeEntry shortestWeightTo(int nodeId) {
240228
}
241229

242230
protected PathBidirRef createPath() {
243-
return new PathBidirRef(graph, flagsEncoder);
231+
return new PathBidirRef(graph, flagEncoder);
244232
}
245233

246234
public DijkstraBidirectionRef initPath() {

src/main/java/com/graphhopper/routing/DijkstraSimple.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,13 @@ public DijkstraSimple(Graph graph) {
4747
public Path calcPath(int from, int to) {
4848
EdgeEntry fromEntry = new EdgeEntry(EdgeIterator.NO_EDGE, from, 0d);
4949
visited.add(from);
50-
EdgeEntry currEdge = fromEntry;
50+
EdgeEntry currEdge = fromEntry;
5151
while (true) {
5252
int neighborNode = currEdge.endNode;
5353
EdgeIterator iter = neighbors(neighborNode);
5454
while (iter.next()) {
55+
if (!accept(iter))
56+
continue;
5557
int tmpNode = iter.node();
5658
if (visited.contains(tmpNode))
5759
continue;
@@ -79,14 +81,14 @@ public Path calcPath(int from, int to) {
7981
break;
8082

8183
if (heap.isEmpty())
82-
return new Path(graph, flagsEncoder);
84+
return new Path(graph, flagEncoder);
8385
currEdge = heap.poll();
8486
if (currEdge == null)
8587
throw new AssertionError("cannot happen?");
8688
}
8789

8890
if (currEdge.endNode != to)
89-
return new Path(graph, flagsEncoder);
91+
return new Path(graph, flagEncoder);
9092

9193
return extractPath(currEdge);
9294
}
@@ -96,11 +98,7 @@ protected boolean finished(EdgeEntry currEdge, int to) {
9698
}
9799

98100
public Path extractPath(EdgeEntry goalEdge) {
99-
return new Path(graph, flagsEncoder).edgeEntry(goalEdge).extract();
100-
}
101-
102-
protected EdgeIterator neighbors(int neighborNode) {
103-
return graph.getEdges(neighborNode, outEdgeFilter);
101+
return new Path(graph, flagEncoder).edgeEntry(goalEdge).extract();
104102
}
105103

106104
@Override public String name() {

0 commit comments

Comments
 (0)