47 #ifdef CHECK_MEMORY_LEAKS
49 #endif // CHECK_MEMORY_LEAKS
63 const std::vector<int>& connectors,
64 const std::vector<int>& disturbances,
66 : myID(id), myNodeID(nodeid), myTLID(tlid),
67 myConnectors(connectors), myDisturbances(disturbances),
68 myNBNode(0), myAmEdgeSplit(amEdgeSplitOnly) {}
78 DictType::iterator i =
myDict.find(
id);
90 const std::vector<int>& connectors,
91 const std::vector<int>& disturbances,
92 bool amEdgeSplitOnly) {
98 nodeid, tlid, connectors, disturbances, amEdgeSplitOnly);
106 DictType::iterator i =
myDict.find(
id);
125 return toString<int>(
myID);
127 return toString<int>(
myID) +
"LSA " + toString<int>(
myTLID);
140 std::vector<int>::iterator i, j;
162 if (crossings.size() == 0) {
194 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
195 (*i).second->buildNBNode(nc);
210 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
216 if (ret != -1 && (*i).first != ret) {
232 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
238 if (ret != -1 && ret != (*i).first) {
254 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
256 into << std::endl << c->
myID <<
":";
264 into <<
"=======================" << std::endl;
284 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
285 const std::vector<int>& disturbances = (*i).second->myDisturbances;
287 for (std::vector<int>::const_iterator j = disturbances.begin(); j != disturbances.end(); j++) {
289 disturbance->
addToNode(node, dc, nc, ec);
298 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