67 #ifdef CHECK_MEMORY_LEAKS 69 #endif // CHECK_MEMORY_LEAKS 89 myLastSimDuration(0), myLastIdleDuration(0),
90 myLastVehicleMovementCount(0), myOverallVehicleCount(0), myOverallSimDuration(0) {
148 for (std::vector<MSTrafficLightLogic*>::const_iterator i = logics.begin(); i != logics.end(); ++i) {
161 if (links.size() == 0) {
168 MSTrafficLightLogic::LinkVectorVector::const_iterator j;
169 for (j = links.begin(); j != links.end(); ++j) {
170 MSTrafficLightLogic::LinkVector::const_iterator j2;
171 for (j2 = (*j).begin(); j2 != (*j).end(); ++j2) {
238 std::vector<GUIGlID> ret;
240 if (!(*i)->isInner() || includeInternal) {
241 ret.push_back((*i)->getGlID());
250 std::vector<GUIGlID> ret;
251 std::vector<std::string> ids;
253 std::string sid = (*i).second->getMicrosimID();
254 if (find(ids.begin(), ids.end(), sid) == ids.end()) {
255 ret.push_back((*i).second->getGlID());
267 for (std::vector<SumoXMLTag>::const_iterator i = types.begin(); i != types.end(); ++i) {
269 for (std::map<std::string, MSDetectorFileOutput*>::const_iterator j = dets.begin(); j != dets.end(); ++j) {
285 for (std::map<std::string, MSJunction*>::const_iterator i = junctions.begin(); i != junctions.end(); ++i) {
292 const std::vector<MSLane*>& lanes = edge->
getLanes();
293 for (std::vector<MSLane*>::const_iterator j = lanes.begin(); j != lanes.end(); ++j) {
294 b.
add((*j)->getShape().getBoxBoundary());
298 const float cmin[2] = { (float)b.
xmin(), (float)b.
ymin() };
299 const float cmax[2] = { (float)b.
xmax(), (float)b.
ymax() };
303 throw ProcessError(
"Network size exceeds 1 Lightyear. Please reconsider your inputs.\n");
310 const float cmin[2] = { (float)b.
xmin(), (float)b.
ymin() };
311 const float cmax[2] = { (float)b.
xmax(), (float)b.
ymax() };
421 ret->
mkItem(
"loaded vehicles [#]",
true,
423 ret->
mkItem(
"insertion-backlogged vehicles [#]",
true,
425 ret->
mkItem(
"departed vehicles [#]",
true,
427 ret->
mkItem(
"running vehicles [#]",
true,
429 ret->
mkItem(
"arrived vehicles [#]",
true,
431 ret->
mkItem(
"collisions [#]",
true,
433 ret->
mkItem(
"teleports [#]",
true,
436 ret->
mkItem(
"loaded persons [#]",
true,
438 ret->
mkItem(
"running persons [#]",
true,
440 ret->
mkItem(
"jammed persons [#]",
true,
499 throw ProcessError(
"A gui-network was not yet constructed.");
531 const std::vector<MSLane*>& lanes = (*i)->getLanes();
532 for (std::vector<MSLane*>::const_iterator j = lanes.begin(); j != lanes.end(); ++j) {
533 static_cast<GUILane*
>(*j)->updateColor(s);
538 (*i)->updateColor(s);
int myLastSimDuration
The step durations (simulation, /*visualisation, */idle)
Boundary myBoundary
The networks boundary.
Position getJunctionPosition(const std::string &name) const
returns the position of a junction
int getEndedVehicleNo() const
Returns the number of removed vehicles.
The class responsible for building and deletion of vehicles (gui-version)
SUMOReal getAvgTimeLoss() const
std::vector< GUIJunctionWrapper * > myJunctionWrapper
Wrapped MS-junctions.
int getRunningVehicleNo() const
Returns the number of build and inserted, but not yet deleted vehicles.
SUMOReal getRTFactor() const
Returns the simulation speed as a factor to real time.
Storage for geometrical objects extended by mutexes.
int getLoadedVehicleNo() const
Returns the number of build vehicles.
friend class GUITrafficLightLogicWrapper
void unlock()
release exclusive access to the simulation state
int getLinkTLID(MSLink *link) const
SUMOReal getHeight() const
Returns the height of the boundary (y-axis)
int getLoadedNumber() const
Returns the number of build transportables.
MSVehicleControl * myVehicleControl
Controls vehicle building and deletion;.
int size() const
Returns the number of items within the container.
Stores the information about how to visualize structures.
LayeredRTree myGrid
The visualization speed-up.
T get(const std::string &id) const
Retrieves an item.
void initTLMap()
Initialises the tl-logic map and wrappers.
SUMOReal getAvgWaitingTime() const
bool logSimulationDuration() const
Returns whether duration shall be logged.
SUMOVehicle * getVehicle(const std::string &id) const
Returns the vehicle with the given id.
SUMOReal ymin() const
Returns minimum y-coordinate.
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
GUIMEVehicleControl * getGUIMEVehicleControl()
Returns the vehicle control.
The class responsible for building and deletion of vehicles (gui-version)
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
void initGUIStructures()
Initialises gui wrappers.
void lock()
grant exclusive access to the simulation state
Links2LogicMap myLinks2Logic
The link-to-logic-id map.
SUMOReal ymax() const
Returns maximum y-coordinate.
SUMOReal getWidth() const
Returns the width of the boudary (x-axis)
const std::string & getID() const
Returns the id.
void buildShowParamsPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to open the parameter window.
std::vector< GUIDetectorWrapper * > myDetectorDict
A detector dictionary.
long myOverallVehicleCount
static SUMOReal getTotalLength(bool includeInternal, bool eachLane)
SUMOReal getUPS() const
Returns the update per seconds rate.
void buildPositionCopyEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position.
const LinkVectorVector & getLinks() const
Returns the list of lists of all affected links.
A class that stores a 2D geometrical boundary.
SUMOReal xmin() const
Returns minimum x-coordinate.
void setIdleDuration(int val)
Sets the duration of the last step's idle part.
The simulated network and simulation perfomer.
void setNetObject(GUIGlObject *object)
Sets the given object as the "network" object.
static OptionsCont & getOptions()
Retrieves the options.
Representation of a lane in the micro simulation (gui-version)
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Logics2WrapperMap myLogics2Wrapper
The traffic light-to-wrapper map.
A road/street connecting two junctions (gui-version)
long long int myVehiclesMoved
The overall number of vehicle movements.
GUIGlID createTLWrapper(MSTrafficLightLogic *tll)
creates a wrapper for the given logic and returns the GlID
std::vector< LinkVector > LinkVectorVector
Definition of a list that holds lists of links that do have the same attribute.
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
SUMOReal getAvgDuration() const
static GUINet * getGUIInstance()
Returns the pointer to the unique instance of GUINet (singleton).
std::vector< GUIGlID > getTLSIDs() const
Returns the gl-ids of all traffic light logics within the net.
A point in 2D or 3D with translation and scaling methods.
MSTrafficLightLogic * getActive(const std::string &id) const
Returns the active program of a named tls.
MSTLLogicControl & getTLSControl()
Returns the tls logics control.
MSVehicleControl & getVehicleControl()
Returns the vehicle control.
const IDMap & getMyMap() const
MSDetectorControl * myDetectorControl
Controls detectors;.
static GUIGlObjectStorage gIDStorage
A single static instance of this class.
MSTLLogicControl * myLogics
Controls tls logics, realizes waiting on tls rules;.
static void clearDictionary()
Clears the dictionary (the objects will not be deleted)
std::vector< MSTrafficLightLogic * > myTLLogicWrappers
Wrapped TL-Logics.
const Position & getPosition() const
std::vector< GUIGlID > getJunctionIDs(bool includeInternal) const
std::string toString(const T &t, std::streamsize accuracy=OUTPUT_ACCURACY)
SUMOReal myVersion
the network version
int getSimDuration() const
Returns the duration of the last step's simulation part (in ms)
MSTransportableControl & getPersonControl()
Returns the person control.
SUMOReal getMeanUPS() const
Returns the update per seconds rate.
int getWholeDuration() const
Returns the duration of the last step (sim+visualisation+idle) (in ms)
SUMOReal getMeanRTFactor(int duration) const
Returns the simulation speed as a factor to real time.
void unlock()
release mutex lock
void setSimDuration(int val)
Sets the duration of the last step's simulation part.
static std::vector< GUIGlID > getIDs(bool includeInternal)
std::vector< GUIEdge * > myEdgeWrapper
Wrapped MS-edges.
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Boundary & grow(SUMOReal by)
extends the boundary by the given amount
static const SUMOReal SIDEWALK_OFFSET
the offset for computing person positions when walking on edges without a sidewalk ...
void Insert(const float a_min[2], const float a_max[2], GUIGlObject *const &a_dataId)
Insert entry (delegate to appropriate layer)
MSTransportableControl * myContainerControl
Controls container building and deletion;.
MSJunctionControl * myJunctions
Controls junctions, realizes right-of-way rules;.
A MSNet extended by some values for usage within the gui.
int getWaitingVehicleNo() const
Returns the number of waiting vehicles.
SUMOReal xmax() const
Returns maximum x-coordinate.
void add(SUMOReal x, SUMOReal y, SUMOReal z=0)
Makes the boundary include the given coordinate.
void addAdditionalGLObject(GUIGlObject *o)
Adds an additional object (detector/shape/trigger) for visualisation.
const std::vector< SumoXMLTag > getAvailableTypes() const
Returns the list of available detector types.
MSInsertionControl & getInsertionControl()
Returns the insertion control.
MSTransportableControl * myPersonControl
Controls person building and deletion;.
A mutex encapsulator which locks/unlocks the given mutex on construction/destruction, respectively.
const Boundary & getBoundary() const
returns the bounder of the network
bool vehicleExists(const std::string &name) const
returns the information whether the vehicle still exists
long myOverallSimDuration
GUIVehicleControl * getGUIVehicleControl()
Returns the vehicle control.
SUMOReal getAvgDepartDelay() const
GUIGlID getGlID() const
Returns the numerical id of the object.
The parent class for traffic light logics.
static void updateAll()
Updates all instances (passes values)
void simulationStep()
Performs a single simulation step (locking the simulation)
SUMOReal getAvgRouteLength() const
static void fill(std::vector< GUIEdge *> &netsWrappers)
Boundary getBoundary() const
Returns the boundary of the junction.
The class responsible for building and deletion of vehicles.
int getDepartedVehicleNo() const
Returns the number of inserted vehicles.
void simulationStep()
Performs a single simulation step.
int getRunningNumber() const
Returns the number of build and inserted, but not yet deleted transportables.
The edge is an internal edge.
const NamedObjectCont< MSDetectorFileOutput * > & getTypedDetectors(SumoXMLTag type) const
Returns the list of detectors of the given type.
GUINet(MSVehicleControl *vc, MSEventControl *beginOfTimestepEvents, MSEventControl *endOfTimestepEvents, MSEventControl *insertionEvents)
Constructor.
void guiSimulationStep()
Some further steps needed for gui processing.
void mkItem(const char *name, bool dynamic, ValueSource< unsigned > *src)
Adds a row which obtains its value from an unsigned-ValueSource.
void closeBuilding()
Closes the building of the table.
int getCollisionCount() const
return the number of collisions
int getLinkTLIndex(MSLink *link) const
A window containing a gl-object's parameter.
std::vector< MSTrafficLightLogic * > getAllLogics() const
Returns a vector which contains all logics.
int getTeleportCount() const
return the number of teleports (including collisions)
Stores time-dependant events and executes them at the proper time.
long myLastVehicleMovementCount
int getIdleDuration() const
Returns the duration of the last step's idle part (in ms)
MFXMutex myLock
The mutex used to avoid concurrent updates of the vehicle buffer.
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
MSTransportableControl & getContainerControl()
Returns the container control.
Class passing values from a GUIGlObject to another object.
int getJammedNumber() const
Returns the number of times a transportables was jammed.
GUI-version of the transportable control for building gui persons and containers. ...