@Override
    public void init(final BExpressionContextWay expctxWay, final BExpressionContextNode expctxNode, final Map<String, String> extraParams) {
        if (!initDone) {
            ctxWay = expctxWay;
            ctxNode = expctxNode;
            wayIdxMaxspeed = ctxWay.getOutputVariableIndex("maxspeed", false);
            wayIdxMaxspeedExplicit = ctxWay.getOutputVariableIndex("maxspeed_explicit", false);
            wayIdxMinspeed = ctxWay.getOutputVariableIndex("minspeed", false);
            nodeIdxMaxspeed = ctxNode.getOutputVariableIndex("maxspeed", false);
            initDone = true;
        }

        params = extraParams;

        turnAngleDecayTime = getParam("turnAngleDecayTime", 5.f);
        fRoll = getParam("f_roll", 232.f);
        fAir = getParam("f_air", 0.4f);
        fRecup = getParam("f_recup", 400.f);
        pStandby = getParam("p_standby", 250.f);
        outsideTemp = getParam("outside_temp", 20.f);
        recupEfficiency = getParam("recup_efficiency", 0.7f);
        totalweight = getParam("totalweight", 1640.f);
        vmax = getParam("vmax", 80.f) / 3.6;
        leftWaySpeed = getParam("leftWaySpeed", 12.f) / 3.6;
        rightWaySpeed = getParam("rightWaySpeed", 12.f) / 3.6;

        pw = 2. * fAir * vmax * vmax * vmax - pStandby;
        cost0 = (pw + pStandby) / vmax + fRoll + fAir * vmax * vmax;
    }
Container for link between two Osm nodes

@author ab
main/src/main/java/cgeo/geocaching/brouter/core/KinematicModel.java