47 #ifdef CHECK_MEMORY_LEAKS
49 #endif // CHECK_MEMORY_LEAKS
62 const std::vector<int>& connectors,
63 const std::vector<int>& disturbances,
65 : myID(id), myNodeID(nodeid), myTLID(tlid),
66 myConnectors(connectors), myDisturbances(disturbances),
67 myNBNode(0), myAmEdgeSplit(amEdgeSplitOnly) {}
77 DictType::iterator i =
myDict.find(
id);
89 const std::vector<int>& connectors,
90 const std::vector<int>& disturbances,
91 bool amEdgeSplitOnly) {
97 nodeid, tlid, connectors, disturbances, amEdgeSplitOnly);
105 DictType::iterator i =
myDict.find(
id);
124 return toString<int>(
myID);
126 return toString<int>(
myID) +
"LSA " + toString<int>(
myTLID);
139 std::vector<int>::iterator i, j;
161 if (crossings.size() == 0) {
193 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
194 (*i).second->buildNBNode(nc);
209 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
215 if (ret != -1 && (*i).first != ret) {
231 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
237 if (ret != -1 && ret != (*i).first) {
253 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
255 into << endl << c->
myID <<
":";
263 into <<
"=======================" << endl;
283 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
284 const std::vector<int>& disturbances = (*i).second->myDisturbances;
286 for (std::vector<int>::const_iterator j = disturbances.begin(); j != disturbances.end(); j++) {
288 disturbance->
addToNode(node, dc, nc, ec);
297 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
static int getFromNode(int edgeid)
bool insert(const std::string &id, const Position &position, NBDistrict *district)
Inserts a node into the map.
static void dict_recheckEdgeChanges()
static bool dictionary(int id, NIVissimAbstractEdge *e)
NIVissimNodeCluster(int id, int nodeid, int tlid, const std::vector< int > &connectors, const std::vector< int > &disturbances, bool amEdgeSplitOnly)
A container for districts.
bool addToNode(NBNode *node, NBDistrictCont &dc, NBNodeCont &nc, NBEdgeCont &ec)
static bool dictionary(int id, NIVissimNodeCluster *o)
Position getToGeomPosition() const
bool crossesEdge(NIVissimAbstractEdge *c) const
static void setCurrentVirtID(int id)
static void dict_addDisturbances(NBDistrictCont &dc, NBNodeCont &nc, NBEdgeCont &ec)
A point in 2D or 3D with translation and scaling methods.
virtual void buildGeom()=0
Storage for edges, including some functionality operating on multiple edges.
static bool dictionary(int id, const std::string &name, const NIVissimExtendedEdgePoint &edge, const NIVissimExtendedEdgePoint &by, SUMOReal timegap, SUMOReal waygap, SUMOReal vmax)
std::map< int, NIVissimNodeCluster * > DictType
static int getToNode(int edgeid)
static void _debugOut(std::ostream &into)
std::string getNodeName() const
std::vector< int > myConnectors
static void buildNBNodes(NBNodeCont &nc)
static bool dictionary(int id, const std::string &name, const NIVissimExtendedEdgePoint &from_def, const NIVissimExtendedEdgePoint &to_def, const PositionVector &geom, Direction direction, SUMOReal dxnothalt, SUMOReal dxeinordnen, SUMOReal zuschlag1, SUMOReal zuschlag2, SUMOReal seglength, const std::vector< int > &assignedVehicles, const NIVissimClosedLanesVector &clv)
Represents a single node (junction) during network building.
Position crossesEdgeAtPoint(NIVissimAbstractEdge *c) const
void buildNBNode(NBNodeCont &nc)
void push_back_noDoublePos(const Position &p)
NBNode * retrieve(const std::string &id) const
Returns the node with the given name.
Container for nodes during the netbuilding process.
Position getPolygonCenter() const
Returns the arithmetic of all corner points.
Position getFromGeomPosition() const
static void reportRefused()
NBNode * getNBNode() const
int getFromEdgeID() const