diff --git a/brouter-core/src/main/java/btools/router/OsmPathElement.java b/brouter-core/src/main/java/btools/router/OsmPathElement.java index 34807d8..388140d 100644 --- a/brouter-core/src/main/java/btools/router/OsmPathElement.java +++ b/brouter-core/src/main/java/btools/router/OsmPathElement.java @@ -57,6 +57,19 @@ public class OsmPathElement implements OsmPos } } + public final float getEnergy() + { + return message == null ? 0.f : message.energy; + } + + public final void setEnergy( float e ) + { + if ( message != null ) + { + message.energy = e; + } + } + public final long getIdFromPos() { return ((long)ilon)<<32 | ilat; diff --git a/brouter-core/src/main/java/btools/router/OsmTrack.java b/brouter-core/src/main/java/btools/router/OsmTrack.java index 08025a8..ccc42e0 100644 --- a/brouter-core/src/main/java/btools/router/OsmTrack.java +++ b/brouter-core/src/main/java/btools/router/OsmTrack.java @@ -293,12 +293,14 @@ public final class OsmTrack { int ourSize = nodes.size(); float t0 = ourSize > 0 ? nodes.get(ourSize - 1 ).getTime() : 0; + float e0 = ourSize > 0 ? nodes.get(ourSize - 1 ).getEnergy() : 0; for ( int i = 0; i < t.nodes.size(); i++ ) { if ( i > 0 || ourSize == 0 ) { OsmPathElement e = t.nodes.get( i ); e.setTime( e.getTime() + t0 ); + e.setEnergy( e.getEnergy() + e0 ); nodes.add( e ); } } diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index 56632fe..5fba332 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -1115,6 +1115,7 @@ public class RoutingEngine extends Thread } float totalTime = element.getTime(); + float totalEnergy = element.getEnergy(); OsmTrack track = new OsmTrack(); track.cost = path.cost; @@ -1138,6 +1139,7 @@ public class RoutingEngine extends Thread if ( routingContext.inverseRouting ) { element.setTime( totalTime - element.getTime() ); + element.setEnergy( totalEnergy - element.getEnergy() ); track.nodes.add( element ); } else