56 const std::string& name,
59 : myID(id), myNode(-1), myName(name), myEdge(edge), myDisturbance(by) {}
82 DictType::iterator i =
myDict.find(
id);
93 DictType::iterator i =
myDict.find(
id);
102 std::vector<int> ret;
103 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
104 if ((*i).second->crosses(poly)) {
105 ret.push_back((*i).second->myID);
136 if (pc ==
nullptr && bc ==
nullptr) {
145 std::string id1 = toString<int>(e1->
getID()) +
"x" + toString<int>(e2->
getID());
146 std::string id2 = toString<int>(e2->
getID()) +
"x" + toString<int>(e1->
getID());
149 NBNode* splitNode = node1 ==
nullptr ? node2 : node1;
150 assert(node1 ==
nullptr || node2 ==
nullptr);
151 if (splitNode ==
nullptr) {
168 if (mayDriveFrom !=
nullptr && mayDriveTo !=
nullptr && mustStopFrom !=
nullptr && mustStopTo !=
nullptr) {
178 }
else if (pc !=
nullptr && bc ==
nullptr) {
198 std::string id_pcie = toString<int>(pc->
getToEdgeID());
229 }
else if (bc !=
nullptr && pc ==
nullptr) {
240 std::string nid1 = e->
getID() +
"[0]";
241 std::string nid2 = e->
getID() +
"[1]";
250 std::string id_bcie = toString<int>(bc->
getToEdgeID());
316 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
325 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
#define WRITE_WARNINGF(...)
#define WRITE_WARNING(msg)
A class that stores a 2D geometrical boundary.
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
double xmin() const
Returns minimum x-coordinate.
double xmax() const
Returns maximum x-coordinate.
bool check(const NBEdgeCont &ec)
checks whether the edges are still valid
static const NBConnection InvalidConnection
A container for districts.
Storage for edges, including some functionality operating on multiple edges.
NBEdge * retrieve(const std::string &id, bool retrieveExtracted=false) const
Returns the edge that has the given id.
NBEdge * retrievePossiblySplit(const std::string &id, bool downstream) const
Tries to retrieve an edge, even if it is splitted.
bool splitAt(NBDistrictCont &dc, NBEdge *edge, NBNode *node)
Splits the edge at the position nearest to the given node.
The representation of a single edge during network building.
NBNode * getToNode() const
Returns the destination node of the edge.
const std::string & getID() const
EdgeVector getConnectedEdges() const
Returns the list of outgoing edges unsorted.
NBNode * getFromNode() const
Returns the origin node of the edge.
Container for nodes during the netbuilding process.
NBNode * retrieve(const std::string &id) const
Returns the node with the given name.
Represents a single node (junction) during network building.
void addSortedLinkFoes(const NBConnection &mayDrive, const NBConnection &mustStop)
add shorted link FOES
NBEdge * getPossiblySplittedOutgoing(const std::string &edgeid)
get possibly splitted outgoing edge
NBEdge * getPossiblySplittedIncoming(const std::string &edgeid)
get possibly splitted incoming edge
static bool dictionary(int id, NIVissimAbstractEdge *e)
Position crossesEdgeAtPoint(NIVissimAbstractEdge *c) const
int getFromEdgeID() const
static bool dictionary(int id, NIVissimConnection *o)
virtual ~NIVissimDisturbance()
static int refusedProhibits
static void reportRefused()
NIVissimExtendedEdgePoint myDisturbance
NIVissimDisturbance(int id, const std::string &name, const NIVissimExtendedEdgePoint &edge, const NIVissimExtendedEdgePoint &by)
std::map< int, NIVissimDisturbance * > DictType
static void dict_SetDisturbances()
static bool dictionary(const std::string &name, const NIVissimExtendedEdgePoint &edge, const NIVissimExtendedEdgePoint &by)
static std::vector< int > getWithin(const AbstractPoly &poly)
NIVissimExtendedEdgePoint myEdge
NBConnection getConnection(NBNode *node, int aedgeid)
bool addToNode(NBNode *node, NBDistrictCont &dc, NBNodeCont &nc, NBEdgeCont &ec)
A temporary storage for edges imported from Vissim.
static bool dictionary(int id, const std::string &name, const std::string &type, int noLanes, double zuschlag1, double zuschlag2, double length, const PositionVector &geom, const NIVissimClosedLanesVector &clv)
Adds the described item to the dictionary Builds the edge first.
Position getGeomPosition() const
double getPosition() const
A point in 2D or 3D with translation and scaling methods.