49 class NBJunctionTypeIO;
88 std::pair<unsigned int, unsigned int>
getSizes()
const;
98 const NBEdge*
const possProhibitedFrom,
const NBEdge*
const possProhibitedTo)
const;
108 bool mustBrake(
const NBEdge*
const from,
const NBEdge*
const to,
int fromLane,
bool includePedCrossings)
const;
126 const NBEdge*
const from2,
const NBEdge*
const to2)
const;
138 const NBEdge*
const possProhibitedFrom,
const NBEdge*
const possProhibitedTo,
139 bool regardNonSignalisedLowerPriority)
const;
164 int pos,
const bool checkLaneFoes)
const;
189 int fromLane,
int toLane,
bool mayDefinitelyPass,
const bool checkLaneFoes)
const;
194 int fromLane,
int toLane,
const bool checkLaneFoes)
const;
int getIndex(const NBEdge *const from, const NBEdge *const to) const
Returns the index to the internal combination container for the given edge combination.
void computeLeftOutgoingLinkCrossings(bool leftHanded, NBEdge *from, NBEdge *to)
std::vector< bool > LinkInfoCont
bool mustBrakeForCrossing(const NBEdge *const from, const NBEdge *const to, const NBNode::Crossing &crossing) const
Returns the information whether the described flow must brake for the given crossing.
int writeCrossingResponse(OutputDevice &od, const NBNode::Crossing &crossing, int pos) const
writes the response of a certain crossing Returns the next link index within the junction ...
NBRequest(const NBEdgeCont &ec, NBNode *junction, const EdgeVector &all, const EdgeVector &incoming, const EdgeVector &outgoing, const NBConnectionProhibits &loadedProhibits)
A SUMO-compliant built logic for a traffic light.
bool forbids(const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, bool regardNonSignalisedLowerPriority) const
Returns the information whether "prohibited" flow must let "prohibitor" flow pass.
The representation of a single edge during network building.
NBNode * myJunction
the node the request is assigned to
The base class for traffic light logic definitions.
std::vector< LinkInfoCont > CombinationsCont
const EdgeVector & myOutgoing
NBRequest & operator=(const NBRequest &s)
Invalidated assignment operator.
void writeLogic(std::string key, OutputDevice &into, const bool checkLaneFoes) const
std::string getResponseString(const NBEdge *const from, const NBEdge *const to, int fromLane, int toLane, bool mayDefinitelyPass, const bool checkLaneFoes) const
Writes the response of a certain link.
size_t distanceCounterClockwise(NBEdge *from, NBEdge *to)
const EdgeVector & myIncoming
static void reportWarnings()
reports warnings if any occured
bool rightTurnConflict(const NBEdge *from, const NBEdge *to, int fromLane, const NBEdge *prohibitorFrom, const NBEdge *prohibitorTo, int prohibitorFromLane) const
return whether the given laneToLane connection is a right turn which must yield to a bicycle crossing...
void buildBitfieldLogic(bool leftHanded)
bool mustBrake(const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo) const
Returns the information whether "prohibited" flow must let "prohibitor" flow pass.
bool laneConflict(const NBEdge *from, const NBEdge *to, int toLane, const NBEdge *prohibitorFrom, const NBEdge *prohibitorTo, int prohibitorToLane) const
return whether the given laneToLane connections prohibit each other under the assumption that the edg...
Storage for edges, including some functionality operating on multiple edges.
std::string getFoesString(NBEdge *from, NBEdge *to, int fromLane, int toLane, const bool checkLaneFoes) const
void setBlocking(bool leftHanded, NBEdge *from1, NBEdge *to1, NBEdge *from2, NBEdge *to2)
std::map< NBEdge *, LaneVector > OccupiedLanes
size_t numLinks() const
return to total number of edge-to-edge connections of this request-logic
std::map< NBConnection, NBConnectionVector > NBConnectionProhibits
Definition of a container for connection block dependencies Includes a list of all connections which ...
int writeLaneResponse(OutputDevice &od, NBEdge *from, int lane, int pos, const bool checkLaneFoes) const
writes the response of a certain lane Returns the next link index within the junction ...
std::vector< NBEdge * > EdgeVector
A storage for options typed value containers)
friend std::ostream & operator<<(std::ostream &os, const NBRequest &r)
prints the request
const std::vector< NBNode::Crossing > & myCrossings
Represents a single node (junction) during network building.
bool foes(const NBEdge *const from1, const NBEdge *const to1, const NBEdge *const from2, const NBEdge *const to2) const
Returns the information whether the given flows cross.
A definition of a pedestrian crossing.
Static storage of an output device and its base (abstract) implementation.
static size_t myGoodBuilds
void resetCooperating()
reset foes it the number of lanes matches (or exceeds) the number of incoming connections for an edge...
CombinationsCont myForbids
std::pair< unsigned int, unsigned int > getSizes() const
returns the number of the junction's lanes and the number of the junction's links in respect...
void computeRightOutgoingLinkCrossings(bool leftHanded, NBEdge *from, NBEdge *to)