|
From: <ste...@us...> - 2010-08-07 14:24:30
|
Revision: 1371
http://rails.svn.sourceforge.net/rails/?rev=1371&view=rev
Author: stefanfrey
Date: 2010-08-07 14:24:24 +0000 (Sat, 07 Aug 2010)
Log Message:
-----------
Fixed bug of revenue path display
Modified Paths:
--------------
trunk/18xx/rails/algorithms/NetworkEdge.java
trunk/18xx/rails/algorithms/NetworkVertex.java
trunk/18xx/rails/algorithms/RevenueTrainRun.java
Modified: trunk/18xx/rails/algorithms/NetworkEdge.java
===================================================================
--- trunk/18xx/rails/algorithms/NetworkEdge.java 2010-08-06 19:52:53 UTC (rev 1370)
+++ trunk/18xx/rails/algorithms/NetworkEdge.java 2010-08-07 14:24:24 UTC (rev 1371)
@@ -26,7 +26,7 @@
private final int distance;
- private final List<NetworkVertex> hiddenVertexes;
+ private final List<NetworkVertex> hiddenVertices;
// list of vertexes that were merged into the edge
private int routeCosts;
@@ -40,7 +40,7 @@
this.distance = 1;
else
this.distance = 0;
- hiddenVertexes = new ArrayList<NetworkVertex>();
+ hiddenVertices = new ArrayList<NetworkVertex>();
}
public NetworkEdge(NetworkVertex source, NetworkVertex target, boolean greedy,
@@ -49,7 +49,7 @@
this.target = target;
this.greedy = greedy;
this.distance = distance;
- this.hiddenVertexes = hiddenVertexes;
+ this.hiddenVertices = hiddenVertexes;
}
public NetworkVertex getSource() {
@@ -116,16 +116,27 @@
this.routeCosts = routeCosts;
}
- public List<NetworkVertex> getHiddenVertexes() {
- return hiddenVertexes;
+ public List<NetworkVertex> getHiddenVertices() {
+ return hiddenVertices;
}
+ /**
+ * all vertices from source to target, including hidden vertices
+ */
+ public List<NetworkVertex> getVertexPath() {
+ List<NetworkVertex> vertexPath = new ArrayList<NetworkVertex>();
+ vertexPath.add(source);
+ vertexPath.addAll(hiddenVertices);
+ vertexPath.add(target);
+ return vertexPath;
+ }
+
public String toFullInfoString() {
StringBuffer info = new StringBuffer();
info.append("Edge " + getConnection());
info.append(", greedy = " + greedy);
info.append(", distance = " + distance);
- info.append(", hidden vertexes = " + hiddenVertexes);
+ info.append(", hidden vertexes = " + hiddenVertices);
return info.toString();
}
@@ -222,12 +233,12 @@
// create new hiddenVertexes
List<NetworkVertex> hiddenVertexes = new ArrayList<NetworkVertex>();
- List<NetworkVertex> hiddenA = edgeA.getHiddenVertexes();
+ List<NetworkVertex> hiddenA = edgeA.getHiddenVertices();
if (reverseA) {
hiddenA = new ArrayList<NetworkVertex>(hiddenA); // clone
Collections.reverse(hiddenA);
}
- List<NetworkVertex> hiddenB = edgeB.getHiddenVertexes();
+ List<NetworkVertex> hiddenB = edgeB.getHiddenVertices();
if (reverseB) {
hiddenB = new ArrayList<NetworkVertex>(hiddenB); // clone
Collections.reverse(hiddenB);
@@ -274,9 +285,9 @@
public static NetworkEdge replaceVertex(NetworkEdge edge, NetworkVertex oldVertex, NetworkVertex newVertex) {
NetworkEdge newEdge;
if (edge.source == oldVertex) {
- newEdge= new NetworkEdge(newVertex, edge.target, edge.greedy, edge.distance, edge.hiddenVertexes);
+ newEdge= new NetworkEdge(newVertex, edge.target, edge.greedy, edge.distance, edge.hiddenVertices);
} else if (edge.target == oldVertex) {
- newEdge= new NetworkEdge(edge.source, newVertex, edge.greedy, edge.distance, edge.hiddenVertexes);
+ newEdge= new NetworkEdge(edge.source, newVertex, edge.greedy, edge.distance, edge.hiddenVertices);
} else {
newEdge = null;
}
Modified: trunk/18xx/rails/algorithms/NetworkVertex.java
===================================================================
--- trunk/18xx/rails/algorithms/NetworkVertex.java 2010-08-06 19:52:53 UTC (rev 1370)
+++ trunk/18xx/rails/algorithms/NetworkVertex.java 2010-08-07 14:24:24 UTC (rev 1371)
@@ -361,14 +361,14 @@
for (NetworkEdge edge:edges) {
List<NetworkVertex> hiddenVertices;
if (edge.getSource() == vertex) {
- hiddenVertices = edge.getHiddenVertexes();
+ hiddenVertices = edge.getHiddenVertices();
if (addOldVertexAsHidden) hiddenVertices.add(vertex);
NetworkEdge newEdge = new NetworkEdge(newVertex, edge.getTarget(), edge.isGreedy(), edge.getDistance(), hiddenVertices);
graph.addEdge(newVertex, edge.getTarget(), newEdge);
} else {
hiddenVertices = new ArrayList<NetworkVertex>();
if (addOldVertexAsHidden) hiddenVertices.add(vertex);
- hiddenVertices.addAll(edge.getHiddenVertexes());
+ hiddenVertices.addAll(edge.getHiddenVertices());
NetworkEdge newEdge = new NetworkEdge(edge.getSource(), newVertex, edge.isGreedy(), edge.getDistance(), hiddenVertices);
graph.addEdge(newEdge.getSource(), newVertex, newEdge);
}
Modified: trunk/18xx/rails/algorithms/RevenueTrainRun.java
===================================================================
--- trunk/18xx/rails/algorithms/RevenueTrainRun.java 2010-08-06 19:52:53 UTC (rev 1370)
+++ trunk/18xx/rails/algorithms/RevenueTrainRun.java 2010-08-07 14:24:24 UTC (rev 1371)
@@ -270,25 +270,22 @@
GeneralPath getAsPath(HexMap map) {
GeneralPath path = new GeneralPath();
-// if (edges.size() != 0) {
- for (NetworkEdge edge:edges) {
- Point2D sourcePoint = NetworkVertex.getVertexPoint2D(map, edge.getSource());
- if (sourcePoint != null) {
- path.moveTo((float)sourcePoint.getX(), (float)sourcePoint.getY());
+ for (NetworkEdge edge:edges) {
+ // check vertices if they exist as points and start from there
+ List<NetworkVertex> edgeVertices = edge.getVertexPath();
+ boolean initPath = false;
+ for (NetworkVertex edgeVertex:edgeVertices) {
+ Point2D edgePoint = NetworkVertex.getVertexPoint2D(map, edgeVertex);
+ if (edgePoint == null) continue;
+ if (!initPath) {
+ path.moveTo((float)edgePoint.getX(), (float)edgePoint.getY());
+ initPath = true;
+ } else {
+ path.lineTo((float)edgePoint.getX(), (float)edgePoint.getY());
}
- for (NetworkVertex hiddenVertex:edge.getHiddenVertexes()) {
- Point2D hiddenPoint = NetworkVertex.getVertexPoint2D(map, hiddenVertex);
- if (hiddenPoint != null) {
- path.lineTo((float)hiddenPoint.getX(), (float)hiddenPoint.getY());
- }
- }
- Point2D targetPoint = NetworkVertex.getVertexPoint2D(map, edge.getTarget());
- if (targetPoint != null) {
- path.lineTo((float)targetPoint.getX(), (float)targetPoint.getY());
- }
}
- return path;
-// }
+ }
+ return path;
// NetworkVertex startVertex = null;
// NetworkVertex previousVertex = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|