Refactor computeKinematic
This commit is contained in:
parent
1e819cf5bd
commit
a49c43d1ef
1 changed files with 7 additions and 13 deletions
|
@ -202,26 +202,20 @@ final class StdPath extends OsmPath {
|
||||||
elevation_buffer += delta_h;
|
elevation_buffer += delta_h;
|
||||||
double incline = calcIncline(dist);
|
double incline = calcIncline(dist);
|
||||||
|
|
||||||
double wayMaxspeed;
|
double maxSpeed = rc.maxSpeed;
|
||||||
|
double speedLimit = rc.expctxWay.getMaxspeed() / 3.6f;
|
||||||
wayMaxspeed = rc.expctxWay.getMaxspeed() / 3.6f;
|
if (speedLimit > 0) {
|
||||||
if (wayMaxspeed == 0) {
|
maxSpeed = Math.min(maxSpeed, speedLimit);
|
||||||
wayMaxspeed = rc.maxSpeed;
|
|
||||||
}
|
}
|
||||||
wayMaxspeed = Math.min(wayMaxspeed, rc.maxSpeed);
|
|
||||||
|
|
||||||
double speed; // Travel speed
|
double speed = maxSpeed; // Travel speed
|
||||||
double f_roll = rc.totalMass * GRAVITY * (rc.defaultC_r + incline);
|
double f_roll = rc.totalMass * GRAVITY * (rc.defaultC_r + incline);
|
||||||
if (rc.footMode) {
|
if (rc.footMode) {
|
||||||
// Use Tobler's hiking function for walking sections
|
// Use Tobler's hiking function for walking sections
|
||||||
speed = rc.maxSpeed * 3.6;
|
speed = rc.maxSpeed * FastMath.exp(-3.5 * Math.abs(incline + 0.05));
|
||||||
speed = (speed * FastMath.exp(-3.5 * Math.abs(incline + 0.05))) / 3.6;
|
|
||||||
} else if (rc.bikeMode) {
|
} else if (rc.bikeMode) {
|
||||||
speed = solveCubic(rc.S_C_x, f_roll, rc.bikerPower);
|
speed = solveCubic(rc.S_C_x, f_roll, rc.bikerPower);
|
||||||
speed = Math.min(speed, wayMaxspeed);
|
speed = Math.min(speed, maxSpeed);
|
||||||
} else // all other
|
|
||||||
{
|
|
||||||
speed = wayMaxspeed;
|
|
||||||
}
|
}
|
||||||
float dt = (float) (dist / speed);
|
float dt = (float) (dist / speed);
|
||||||
totalTime += dt;
|
totalTime += dt;
|
||||||
|
|
Loading…
Reference in a new issue