GUIParameterTableWindow* GUIEdge::getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent) { GUIParameterTableWindow* ret = 0; #ifdef HAVE_INTERNAL ret = new GUIParameterTableWindow(app, *this, 16); // add edge items ret->mkItem("length [m]", false, (*myLanes)[0]->getLength()); ret->mkItem("allowed speed [m/s]", false, getAllowedSpeed()); ret->mkItem("occupancy [%]", true, new FunctionBinding<GUIEdge, SUMOReal>(this, &GUIEdge::getBruttoOccupancy, 100.)); ret->mkItem("mean vehicle speed [m/s]", true, new FunctionBinding<GUIEdge, SUMOReal>(this, &GUIEdge::getMeanSpeed)); ret->mkItem("flow [veh/h/lane]", true, new FunctionBinding<GUIEdge, SUMOReal>(this, &GUIEdge::getFlow)); ret->mkItem("#vehicles", true, new CastingFunctionBinding<GUIEdge, SUMOReal, unsigned int>(this, &GUIEdge::getVehicleNo)); ret->mkItem("vehicle ids", false, getVehicleIDs()); // add segment items MESegment* segment = getSegmentAtPosition(parent.getPositionInformation()); ret->mkItem("segment index", false, segment->getIndex()); ret->mkItem("segment length [m]", false, segment->getLength()); ret->mkItem("segment allowed speed [m/s]", false, segment->getMaxSpeed()); ret->mkItem("segment jam threshold [%]", false, segment->getRelativeJamThreshold()); ret->mkItem("segment occupancy [%]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getRelativeOccupancy)); ret->mkItem("segment mean vehicle speed [m/s]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getMeanSpeed)); ret->mkItem("segment flow [veh/h/lane]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getFlow)); ret->mkItem("segment #vehicles", true, new CastingFunctionBinding<MESegment, SUMOReal, size_t>(segment, &MESegment::getCarNumber)); ret->mkItem("segment leader leave time", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getEventTimeSeconds)); // close building ret->closeBuilding(); #else UNUSED_PARAMETER(app); UNUSED_PARAMETER(parent); #endif return ret; }
GUIParameterTableWindow* GUIEdge::getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent) { GUIParameterTableWindow* ret = 0; ret = new GUIParameterTableWindow(app, *this, 18); // add edge items ret->mkItem("length [m]", false, (*myLanes)[0]->getLength()); ret->mkItem("allowed speed [m/s]", false, getAllowedSpeed()); ret->mkItem("brutto occupancy [%]", true, new FunctionBinding<GUIEdge, SUMOReal>(this, &GUIEdge::getBruttoOccupancy, 100.)); ret->mkItem("mean vehicle speed [m/s]", true, new FunctionBinding<GUIEdge, SUMOReal>(this, &GUIEdge::getMeanSpeed)); ret->mkItem("flow [veh/h/lane]", true, new FunctionBinding<GUIEdge, SUMOReal>(this, &GUIEdge::getFlow)); ret->mkItem("routing speed [m/s]", true, new FunctionBinding<MSEdge, SUMOReal>(this, &MSEdge::getRoutingSpeed)); ret->mkItem("#vehicles", true, new CastingFunctionBinding<GUIEdge, SUMOReal, int>(this, &GUIEdge::getVehicleNo)); ret->mkItem("vehicle ids", false, getVehicleIDs()); // add segment items MESegment* segment = getSegmentAtPosition(parent.getPositionInformation()); ret->mkItem("segment index", false, segment->getIndex()); ret->mkItem("segment queues", false, segment->numQueues()); ret->mkItem("segment length [m]", false, segment->getLength()); ret->mkItem("segment allowed speed [m/s]", false, segment->getEdge().getSpeedLimit()); ret->mkItem("segment jam threshold [%]", false, segment->getRelativeJamThreshold() * 100); ret->mkItem("segment brutto occupancy [%]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getRelativeOccupancy, 100)); ret->mkItem("segment mean vehicle speed [m/s]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getMeanSpeed)); ret->mkItem("segment flow [veh/h/lane]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getFlow)); ret->mkItem("segment #vehicles", true, new CastingFunctionBinding<MESegment, SUMOReal, int>(segment, &MESegment::getCarNumber)); ret->mkItem("segment leader leave time", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getEventTimeSeconds)); ret->mkItem("segment headway [s]", true, new FunctionBinding<MESegment, SUMOReal>(segment, &MESegment::getLastHeadwaySeconds)); // close building ret->closeBuilding(); return ret; }