SUMOReal GUILane::getColorValue(size_t activeScheme) const { switch (activeScheme) { case 1: return gSelected.isSelected(getType(), getGlID()) || gSelected.isSelected(GLO_EDGE, dynamic_cast<GUIEdge*>(myEdge)->getGlID()); case 2: return (SUMOReal)myPermissions; case 3: return getSpeedLimit(); case 4: return getBruttoOccupancy(); case 5: return getNettoOccupancy(); case 6: return firstWaitingTime(); case 7: return getEdgeLaneNumber(); case 8: return getCO2Emissions() / myLength; case 9: return getCOEmissions() / myLength; case 10: return getPMxEmissions() / myLength; case 11: return getNOxEmissions() / myLength; case 12: return getHCEmissions() / myLength; case 13: return getFuelConsumption() / myLength; case 14: return getHarmonoise_NoiseEmissions(); case 15: { return getStoredEdgeTravelTime(); } case 16: { MSEdgeWeightsStorage& ews = MSNet::getInstance()->getWeightsStorage(); if (!ews.knowsTravelTime(myEdge)) { return -1; } else { SUMOReal value(0); ews.retrieveExistingTravelTime(myEdge, 0, value); return 100 * myLength / value / getSpeedLimit(); } } case 17: { return 1 / myLengthGeometryFactor; } } return 0; }
double GUIVehicle::getColorValue(int activeScheme) const { switch (activeScheme) { case 8: return getSpeed(); case 9: // color by action step if (isActionStep(SIMSTEP)) { // Upcoming simstep is actionstep (t was already increased before drawing) return 1.; } else if (isActive()) { // Completed simstep was actionstep return 2.; } else { // not active return 0.; } case 10: return getWaitingSeconds(); case 11: return getAccumulatedWaitingSeconds(); case 12: return getLastLaneChangeOffset(); case 13: return getLane()->getVehicleMaxSpeed(this); case 14: return getCO2Emissions(); case 15: return getCOEmissions(); case 16: return getPMxEmissions(); case 17: return getNOxEmissions(); case 18: return getHCEmissions(); case 19: return getFuelConsumption(); case 20: return getHarmonoise_NoiseEmissions(); case 21: if (getNumberReroutes() == 0) { return -1; } return getNumberReroutes(); case 22: return gSelected.isSelected(GLO_VEHICLE, getGlID()); case 23: return getLaneChangeModel().isOpposite() ? -100 : getBestLaneOffset(); case 24: return getAcceleration(); case 25: return getTimeGapOnLane(); case 26: return STEPS2TIME(getDepartDelay()); case 27: return getElectricityConsumption(); case 28: return getTimeLossSeconds(); case 29: return getLaneChangeModel().getSpeedLat(); } return 0; }