 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
84 FXObject*, FXSelector,
void*) {
93 FXObject*, FXSelector,
void*) {
101 FXObject*, FXSelector,
void*) {
112 FXObject*, FXSelector ,
void*) {
121 FXObject*, FXSelector sel,
void*) {
150 std::vector<MSTrafficLightLogic*> logics = vars.
getAllLogics();
151 if (logics.size() > 1) {
152 std::vector<MSTrafficLightLogic*>::const_iterator i;
154 for (i = logics.begin(); i != logics.end(); ++i, ++index) {
156 new FXMenuCommand(ret, (
"Switch to '" + (*i)->getProgramID() +
"'").c_str(),
160 new FXMenuSeparator(ret);
164 new FXMenuCommand(ret,
"Show Phases",
nullptr, ret,
MID_SHOWPHASES);
166 if (act !=
nullptr) {
169 new FXMenuSeparator(ret);
176 new FXMenuCommand(ret, (
"phase name: " + name).c_str(),
nullptr,
nullptr, 0);
178 new FXMenuSeparator(ret);
230 for (MSTrafficLightLogic::LaneVectorVector::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
232 for (MSTrafficLightLogic::LaneVector::const_iterator j = lanes2.begin(); j != lanes2.end(); ++j) {
233 ret.
add((*j)->getShape()[-1]);
248 std::vector<MSTrafficLightLogic*> logics = vars.
getAllLogics();
267 if (curState.find_first_of(
"gG") == std::string::npos) {
271 int phaseIdx = (curPhaseIdx + 1) % phases.size();
272 std::vector<int> nextGreen;
273 while (phaseIdx != curPhaseIdx) {
274 const std::string& state = phases[phaseIdx]->getState();
275 for (
int linkIdx = 0; linkIdx < (int)state.size(); linkIdx++) {
278 nextGreen.push_back(linkIdx);
281 if (nextGreen.size() > 0) {
284 phaseIdx = (phaseIdx + 1) % phases.size();
287 for (std::vector<int>::iterator it_idx = nextGreen.begin(); it_idx != nextGreen.end(); it_idx++) {
289 for (MSTrafficLightLogic::LaneVector::const_iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
292 Position pos = (*it_lane)->getShape().back();
294 double rot =
RAD2DEG((*it_lane)->getShape().angleAt2D((
int)(*it_lane)->getShape().size() - 2)) - 90;
295 glRotated(rot, 0, 0, 1);
std::pair< SUMOTime, MSPhaseDefinition > getPhaseDef(const std::string &tlid) const
return the complete phase definition for a named traffic lights logic
virtual const Phases & getPhases() const =0
Returns the phases of this tls program.
void begin2TrackPhases()
Builds a GUITLLogicPhasesTrackerWindow which will receive new phases.
A window containing a gl-object's parameter.
int getCurrentDuration() const
std::string getCurrentPhaseName() const
GUIMainWindow * myApp
The main application.
const std::string & getProgramID() const
Returns this tl-logic's id.
static GUINet * getGUIInstance()
Returns the pointer to the unique instance of GUINet (singleton).
void buildSelectionPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to (de)select the object.
This window displays a phase diagram for a chosen tl-logic.
std::vector< MSPhaseDefinition * > Phases
Definition of a list of phases, being the junction logic.
GUITrafficLightLogicWrapper(MSTLLogicControl &control, MSTrafficLightLogic &tll)
Constructor.
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
void create()
Creates the window (FOX-Toolkit)
virtual int getCurrentPhaseIndex() const =0
Returns the current index within the program.
@ LINKSTATE_TL_GREEN_MINOR
The link has green light, has to brake.
@ LINKSTATE_TL_GREEN_MAJOR
The link has green light, may pass.
int getLinkIndex(const MSLink *const link) const
Returns the index of the given link within the according tls.
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
void closeBuilding(const Parameterised *p=0)
Closes the building of the table.
MSTrafficLightLogic * getActive(const std::string &id) const
Returns the active program of a named tls.
int getRunningDuration() const
@ MID_SWITCH_OFF
Show TLS phases - popup entry.
static void drawFilledCircle(double width, int steps=8)
Draws a filled circle around (0,0)
LinkState
The right-of-way state of a link between two lanes used when constructing a NBTrafficLightLogic,...
std::vector< MSLane * > LaneVector
Definition of the list of arrival lanes subjected to this tls.
std::vector< MSTrafficLightLogic * > getAllLogics() const
const std::map< std::string, std::string > & getParametersMap() const
Returns the inner key/value map.
TLSLogicVariants & get(const std::string &id) const
Returns the variants of a named tls.
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
void buildNameCopyPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds entries which allow to copy the name / typed name into the clipboard.
const std::string & getState() const
Returns the state within this phase.
void mkItem(const char *name, bool dynamic, ValueSource< T > *src)
Adds a row which obtains its value from a ValueSource.
@ MID_SHOW_DETECTORS
show/hide actuation detectors
A class that stores a 2D geometrical boundary.
A point in 2D or 3D with translation and scaling methods.
A fixed traffic light logic.
double x() const
Returns the x-position.
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
An actuated (adaptive) traffic light logic.
int getLinkIndex(const MSLink *const link) const
Returns the index of the given link.
The parent class for traffic light logics.
bool isActive(const MSTrafficLightLogic *tl) const
bool showDetectors() const
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
const LaneVectorVector & getLaneVectors() const
Returns the list of lists of all lanes controlled by this tls.
static const RGBColor & getLinkColor(const LinkState &ls)
map from LinkState to color constants
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void setShowDetectors(bool show)
void switchTo(const std::string &id, const std::string &programID)
Switches the named (id) tls to the named (programID) program.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
double y() const
Returns the y-position.
@ LINKSTATE_TL_YELLOW_MAJOR
The link has yellow light, may pass.
int getCurrentMaxDur() const
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
void buildShowParamsPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to open the parameter window.
@ MID_TRACKPHASES
Begin to track phases - menu entry.
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
void buildPositionCopyEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to copy the cursor position if geo projection is used,...
~GUITrafficLightLogicWrapper()
Destructor.
MSTrafficLightLogic & myTLLogic
The wrapped tl-logic.
Storage for all programs of a single tls.
std::vector< LaneVector > LaneVectorVector
Definition of a list that holds lists of lanes that do have the same attribute.
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
int getCurrentPhase() const
Boundary & grow(double by)
extends the boundary by the given amount
A class that stores and controls tls and switching of their programs.
@ LINKSTATE_TL_RED
The link has red light (must brake)
GUITLLogicPhasesTrackerWindow()
protected constructor for FOX
void setBeginTime(SUMOTime time)
Sets the time the display shall be shown as beginning at.
Stores the information about how to visualize structures.
void createTLWrapper(MSTrafficLightLogic *tll) override
creates a wrapper for the given logic
FXDEFMAP(GUIDialog_AppSettings) GUIDialog_AppSettingsMap[]
MSTrafficLightLogic & getTLLogic() const
GUITrafficLightLogicWrapperPopupMenuMap[]
bool gaming
whether the application is in gaming mode or not
const std::string & getID() const
Returns the id.
MSTrafficLightLogic * getActiveTLLogic() const
virtual const MSPhaseDefinition & getCurrentPhaseDef() const =0
Returns the definition of the current phase.
void showPhases()
Builds a GUITLLogicPhasesTrackerWindow which displays the phase diagram.
void switchTLSLogic(int to)
Builds a GUITLLogicPhasesTrackerWindow which displays the phase diagram.
MSTLLogicControl & myTLLogicControl
Reference to the according tls.
int getCurrentMinDur() const
const LaneVector & getLanesAt(int i) const
Returns the list of lanes that are controlled by the signals at the given position.
const std::string & getName() const