48 #include <mesosim/MELoop.h> 49 #include <mesosim/MESegment.h> 52 #ifdef CHECK_MEMORY_LEAKS 54 #endif // CHECK_MEMORY_LEAKS 66 for (MSEdgeVector::const_iterator e = edges.begin(); e != edges.end(); ++e) {
81 MESegment* seg = MSGlobals::gMesoNet->getSegmentForEdge(edge);
83 if (seg->getCarNumber() != 0) {
87 seg = seg->getNextSegment();
91 const std::vector<MSLane*>& lanes = edge.
getLanes();
92 for (std::vector<MSLane*>::const_iterator lane = lanes.begin(); lane != lanes.end(); ++lane) {
93 if (((**lane).getVehicleNumber() != 0)) {
103 const std::vector<MSTransportable*>& persons = edge.
getSortedPersons(timestep);
105 if (dump || persons.size() > 0 || containers.size() > 0) {
110 MESegment* seg = MSGlobals::gMesoNet->getSegmentForEdge(edge);
112 seg->writeVehicles(of);
113 seg = seg->getNextSegment();
117 const std::vector<MSLane*>& lanes = edge.
getLanes();
118 for (std::vector<MSLane*>::const_iterator lane = lanes.begin(); lane != lanes.end(); ++lane) {
126 for (std::vector<MSTransportable*>::const_iterator it_p = persons.begin(); it_p != persons.end(); ++it_p) {
131 of.
writeAttr(
"stage", (*it_p)->getCurrentStageDescription());
135 for (std::vector<MSTransportable*>::const_iterator it_c = containers.begin(); it_c != containers.end(); ++it_c) {
140 of.
writeAttr(
"stage", (*it_c)->getCurrentStageDescription());
150 of.
openTag(
"lane") <<
" id=\"" << lane.
myID <<
"\"";
152 for (std::vector<MSVehicle*>::const_iterator veh = lane.
myVehBuffer.begin();
156 for (MSLane::VehCont::const_iterator veh = lane.
myVehicles.begin();
174 const unsigned int personNumber =
static_cast<const MSVehicle&
>(veh).getPersonNumber();
175 if (personNumber > 0) {
178 const unsigned int containerNumber =
static_cast<const MSVehicle&
>(veh).getContainerNumber();
179 if (containerNumber > 0) {
static void write(OutputDevice &of, const MSEdgeControl &ec, SUMOTime timestep, int precision)
Writes the complete network state of the given edges into the given device.
static bool gOmitEmptyEdgesOnDump
Information whether empty edges shall be written on dump.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
VehCont myVehicles
The lane's vehicles. The entering vehicles are inserted at the front of this container and the leavin...
Representation of a vehicle in the micro simulation.
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
virtual SUMOReal getPositionOnLane() const =0
Get the vehicle's position along the lane.
std::string time2string(SUMOTime t)
virtual bool isOnRoad() const
Returns the information whether the vehicle is on a road (is simulated)
The base class for microscopic and mesoscopic vehicles.
const std::string & getID() const
Returns the id.
A road/street connecting two junctions.
void setPrecision(unsigned int precision=OUTPUT_ACCURACY)
Sets the precison or resets it to default.
std::vector< MSVehicle * > myVehBuffer
static void writeLane(OutputDevice &of, const MSLane &lane)
Writes the dump of the given lane into the given device.
Stores edges and lanes, performs moving of vehicle.
static SUMOReal naviDegree(const SUMOReal angle)
std::vector< MSTransportable * > getSortedContainers(SUMOTime timestep) const
Returns this edge's containers sorted by pos.
unsigned int getVehicleNumber() const
Returns the number of vehicles on this lane.
std::string myID
The name of the object.
virtual SUMOReal getSpeed() const =0
Returns the vehicle's current speed.
static void writeEdge(OutputDevice &of, const MSEdge &edge, SUMOTime timestep)
Writes the dump of the given edge into the given device.
Static storage of an output device and its base (abstract) implementation.
bool closeTag()
Closes the most recently opened tag.
static const bool gUseMesoSim
std::vector< MSEdge * > MSEdgeVector
static void writeVehicle(OutputDevice &of, const MSBaseVehicle &veh)
Writes the dump of the given vehicle into the given device.
Representation of a lane in the micro simulation.
std::vector< MSTransportable * > getSortedPersons(SUMOTime timestep) const
Returns this edge's persons sorted by pos.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
const MSEdgeVector & getEdges() const
Returns loaded edges.
const std::string & getID() const
Returns the name of the vehicle.