85 FXObject*, FXSelector,
void*) {
94 FXObject*, FXSelector,
void*) {
102 FXObject*, FXSelector,
void*) {
113 FXObject*, FXSelector ,
void*) {
122 FXObject*, FXSelector sel,
void*) {
151 std::vector<MSTrafficLightLogic*> logics = vars.
getAllLogics();
152 if (logics.size() > 1) {
153 std::vector<MSTrafficLightLogic*>::const_iterator i;
155 for (i = logics.begin(); i != logics.end(); ++i, ++index) {
157 new FXMenuCommand(ret, (
"Switch to '" + (*i)->getProgramID() +
"'").c_str(),
161 new FXMenuSeparator(ret);
165 new FXMenuCommand(ret,
"Show Phases",
nullptr, ret,
MID_SHOWPHASES);
167 if (act !=
nullptr) {
170 new FXMenuSeparator(ret);
177 new FXMenuCommand(ret, (
"phase name: " + name).c_str(),
nullptr,
nullptr, 0);
179 new FXMenuSeparator(ret);
201 static_cast<MSSimpleTrafficLightLogic&>(
myTLLogic).getPhases());
225 for (MSTrafficLightLogic::LaneVectorVector::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
227 for (MSTrafficLightLogic::LaneVector::const_iterator j = lanes2.begin(); j != lanes2.end(); ++j) {
228 ret.
add((*j)->getShape()[-1]);
244 std::vector<MSTrafficLightLogic*> logics = vars.
getAllLogics();
263 if (curState.find_first_of(
"gG") == std::string::npos) {
267 int phaseIdx = (curPhaseIdx + 1) % phases.size();
268 std::vector<int> nextGreen;
269 while (phaseIdx != curPhaseIdx) {
270 const std::string& state = phases[phaseIdx]->getState();
271 for (
int linkIdx = 0; linkIdx < (int)state.size(); linkIdx++) {
274 nextGreen.push_back(linkIdx);
277 if (nextGreen.size() > 0) {
280 phaseIdx = (phaseIdx + 1) % phases.size();
283 for (std::vector<int>::iterator it_idx = nextGreen.begin(); it_idx != nextGreen.end(); it_idx++) {
285 for (MSTrafficLightLogic::LaneVector::const_iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
288 Position pos = (*it_lane)->getShape().back();
290 double rot =
RAD2DEG((*it_lane)->getShape().angleAt2D((
int)(*it_lane)->getShape().size() - 2)) - 90;
291 glRotated(rot, 0, 0, 1);
The link has green light, may pass.
virtual const MSPhaseDefinition & getCurrentPhaseDef() const =0
Returns the definition of the current phase.
const std::string & getState() const
Returns the state within this phase.
void closeBuilding(const Parameterised *p=0)
Closes the building of the table.
Storage for all programs of a single tls.
void buildNameCopyPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds entries which allow to copy the name / typed name into the clipboard.
void switchTo(const std::string &id, const std::string &programID)
Switches the named (id) tls to the named (programID) program.
bool gaming
whether the application is in gaming mode or not
Show TLS phases - popup entry.
The link has green light, has to brake.
Stores the information about how to visualize structures.
double y() const
Returns the y-position.
const LaneVectorVector & getLaneVectors() const
Returns the list of lists of all lanes controlled by this tls.
void create()
Creates the window (FOX-Toolkit)
void mkItem(const char *name, bool dynamic, ValueSource< T > *src)
Adds a row which obtains its value from a ValueSource.
void begin2TrackPhases()
Builds a GUITLLogicPhasesTrackerWindow which will receive new phases.
double x() const
Returns the x-position.
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
MSTLLogicControl & myTLLogicControl
Reference to the according tls.
virtual int getCurrentPhaseIndex() const =0
Returns the current index within the program.
GUIMainWindow * myApp
The main application.
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.
static void drawFilledCircle(double width, int steps=8)
Draws a filled circle around (0,0)
void setShowDetectors(bool show)
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.
int getLinkIndex(const MSLink *const link) const
Returns the index of the given link.
A class that stores a 2D geometrical boundary.
FXDEFMAP(GUIDialog_AppSettings) GUIDialog_AppSettingsMap[]
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
void showPhases()
Builds a GUITLLogicPhasesTrackerWindow which displays the phase diagram.
const LaneVector & getLanesAt(int i) const
Returns the list of lanes that are controlled by the signals at the given position.
Begin to track phases - menu entry.
An actuated (adaptive) traffic light logic.
A class that stores and controls tls and switching of their programs.
std::vector< MSTrafficLightLogic * > getAllLogics() const
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
std::pair< SUMOTime, MSPhaseDefinition > getPhaseDef(const std::string &tlid) const
return the complete phase definition for a named traffic lights logic
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
GUITrafficLightLogicWrapperPopupMenuMap[]
show/hide actuation detectors
const std::string & getProgramID() const
Returns this tl-logic's id.
static GUINet * getGUIInstance()
Returns the pointer to the unique instance of GUINet (singleton).
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.
~GUITrafficLightLogicWrapper()
Destructor.
void switchTLSLogic(int to)
Builds a GUITLLogicPhasesTrackerWindow which displays the phase diagram.
LinkState
The right-of-way state of a link between two lanes used when constructing a NBTrafficLightLogic, in MSLink and GNEInternalLane.
void createTLWrapper(MSTrafficLightLogic *tll) override
creates a wrapper for the given logic
MSTrafficLightLogic & myTLLogic
The wrapped tl-logic.
Boundary & grow(double by)
extends the boundary by the given amount
bool showDetectors() const
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
std::vector< MSPhaseDefinition * > Phases
Definition of a list of phases, being the junction logic.
virtual const Phases & getPhases() const =0
Returns the phases of this tls program.
std::vector< MSLane * > LaneVector
Definition of the list of arrival lanes subjected to this tls.
std::vector< LaneVector > LaneVectorVector
Definition of a list that holds lists of lanes that do have the same attribute.
The link has yellow light, may pass.
int getLinkIndex(const MSLink *const link) const
Returns the index of the given link within the according tls.
The link has red light (must brake)
bool isActive(const MSTrafficLightLogic *tl) const
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.
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.
const std::map< std::string, std::string > & getParametersMap() const
Returns the inner key/value map.
The parent class for traffic light logics.
void setBeginTime(SUMOTime time)
Sets the time the display shall be shown as beginning at.
TLSLogicVariants & get(const std::string &id) const
Returns the variants of a named tls.
const std::string & getName() const
GUITLLogicPhasesTrackerWindow()
protected constructor for FOX
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
A window containing a gl-object's parameter.
static const RGBColor & getLinkColor(const LinkState &ls)
map from LinkState to color constants
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.